我正在写一个游戏大酒杯的代码,其中输出将打印每个值为0-51的列表,然后是游戏大酒杯中的对应值。我的代码看起来是这样的:功能不能返回我想要的
#cards.py
def cardInfo(cardNumber):
if cardNumber == 0 or 13 or 26 or 39: #if the card is an ace
bjValue = 11 #the value is 11 of whatever suit
elif 1 <= cardNumber <= 8: #if card is 2-9
bjValue = cardNumber + 1 #the value is itself of clubs
elif 9 <= cardNumber <= 12: #if card is 10-king
bjValue = 10 #value is 10 of clubs
elif 14 <= cardNumber <= 21: #the same as above for the rest
bjValue = cardNumber - 12 #with respect to higher suits
elif 22 <= cardNumber <= 25:
bjValue = 10
elif 27 <= cardNumber <= 34:
bjValue = cardNumber - 25
elif 35 <= cardNumber <= 38:
bjValue = 10
elif 40 <= cardNumber <= 47:
bjValue = cardNumber - 38
elif 48 <= cardNumber <= 51:
bjValue = 10
total = (cardNumber, bjValue)
return total
def main():
for cardValue in range(0,52):
stuff = cardInfo(cardValue)
print (stuff)
main()
当我运行程序时,它输出作为它应该第一个数字,并给出(0,11)
,(1,11)
等等。
问题是根据cardInfo
函数中的if
和elif
语句,第二个值没有返回,而是为每次迭代提供相同的值。它应该返回与if语句中指定的值相对应的值,但它只是返回第一个if语句中给出的值。任何人都可以解释为什么这是或如何解决它?