我正在尝试用Python编写一个程序,当用户按回车键时,计算机会显示一张随机卡。同一张卡片不能打印两次。到目前为止我的代码是:
from random import *
used = []
number = randint(1,13)
if number == 11:
number = 'Jack'
elif number == 12:
number = 'Queen'
elif number == 13:
number = 'King'
suit = randint(1,4)
if suit == 1:
suit = 'Hearts'
elif suit == 2:
suit = 'Spades'
elif suit == 3:
suit = 'Diamonds'
elif suit == 4:
suit = 'Clubs'
end = False
while end == False :
get = raw_input('Press enter to get a card')
if get == 'end':
end == True
continue
card = number , suit
for i in (used):
if card == i:
continue
used.append(card)
print card
到目前为止,每次用户按 Enter 时它只会输出相同的卡片,并且当用户输入“end”时程序不会结束。有人能找出其中的错误吗?
最佳答案
问题是在 while 循环中您分配
card = number, suit
但是 number
和 suit
在您进入循环之前已选择一次,因此永远不会改变。每次循环时都需要重新分配number
和suit
。
此外,您正在迭代 used
中的卡片,但最初那里没有卡片,因此该循环永远不会执行。由于将 card
添加到 used
的唯一位置是在 for
循环内,因此它永远不会向 used
添加任何内容.
关于Python-随机卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33108840/