使用cli慢慢处理Blackjack模拟器。我刚刚开始它,所以我不太深入,但我已经得到了奇怪的输出:有时当我运行下面的代码时,它给我一个正常的输出(如4 of Clubs, 9 of Spades
)但有时它给出了我输出c of Diamonds
或i of Clubs
。由于我没有在c
函数中定义i
或Card
的任何内容,我无法弄清楚为什么它会给我这种输出。任何人都可以向我解释这个吗?
import random
def Card():
cardValue = random.randint(2,10)
suits = ["Clubs", "Diamonds", "Hearts", "Spades"]
special = ['Ace', 'King', 'Queen', 'Jack']
special = random.choice(special)
suit = random.choice(suits)
special = random.choice(special)
randO = random.randint(1,52)
if randO > 16:
print(cardValue,'of',suit)
else:
if special == 'Ace':
cardValue = 11
print(special,'of',suit)
else:
cardValue = 10
print(special,'of',suit)
Card()
Card()
答案 0 :(得分:1)
您经常使用special
。
special = ['Ace', 'King', 'Queen', 'Jack']
现在,special是一个列表。
special = random.choice(special)
现在它已经" Ace"或者" King"或"女王"或者"杰克"。
suit = random.choice(suits)
special = random.choice(special)
现在当你再次执行这一行时,它意味着"从special
中选择一个随机字符是"。
给special
一个更好的名字 - 不要用它来表示一个列表和一个单词 - 而且你不需要两次拨打random.choice(special)
。