创建从卡片名称映射到关联号码的字典,例如:card_names = {'ace': 1, 'jack': 11, 'queen': 12, 'king': 13}
for i in range(2, 11):
card_names[str(i)] = i
然后将所有Guess_number = int(Guess_number)行替换为以下内容:
^{pr2}$
如果Guess_number在这之后是None,这意味着他们提供了一个无效的值,因为找不到卡名或提供的号码太低/太高。在
编辑:解释一定不够清楚,以下是我建议的修改后的完整代码:import random
SUITS = ("D", "H", "C", "S")
suit = random.choice(SUITS)
number = random.randint( 1,13)
card_names = {'ace': 1, 'jack': 11, 'queen': 12, 'king': 13}
for i in range(2, 11):
card_names[str(i)] = i
guessCount = 0
Guess_Suit = input("Start by guessing the Suit: ")
guessCount = guessCount + 1
while guessCount < 9:
Guess_Suit = Guess_Suit.upper()
guessCount = guessCount + 1
if Guess_Suit == suit:
print("Correct!")
break
elif Guess_Suit != suit:
print('Wrong')
Guess_Suit = input("Guess the Suit again: ")
Guess_number = input("Now Guess the card number or name of the face card:")
Guess_number = card_names.get(Guess_number.lower().strip())
guessCount = guessCount + 1
while guessCount < 9:
if Guess_number is None:
print("The card you picked is invalid")
Guess_number = input("Pick another one: ")
Guess_number = card_names.get(Guess_number.lower().strip())
guessCount = guessCount + 1
elif Guess_number == number:
print("THATS IT YOU WON")
break
else:
print('Wrong')
Guess_number = input("Pick another one: ")
Guess_number = card_names.get(Guess_number.lower().strip())
guessCount = guessCount + 1