我是python的新手,我正在试图弄清楚如何询问用户输入,然后使用该输入从一副牌中选择一张特定的牌。这就是我到目前为止所拥有的
cardfaces = []
suits = ["Hearts", "Diamonds", "Clubs", "Spades"]
royals = ["J", "Q", "K", "A"]
deck = []
for i in range(2,11):
cardfaces.append(str(i))
for j in range(4):
cardfaces.append(royals[j])
for k in range(4):
for l in range(13):
card = (cardfaces[l] + " of " + suits[k])
deck.append(card)
for m in range(52):
print(deck[m])
pick=input('Pick a card 1-52 :')
答案 0 :(得分:1)
在我看来,您需要做的就是访问所选卡片。
chosen_card = deck[int(pick)-1]
你需要做更多吗?我通常认为您希望套牌是(套装,等级)对的列表,而不是字符串描述。您可以使用当前代码选择卡片描述,但卡座并不能轻松将这些描述转换回您可以操作的特征。
答案 1 :(得分:1)
我认为您的问题是,一旦玩家选择了一个号码,您就不知道如何访问所选卡片。
如果是这样,那么您已经接近解决方案了!
当玩家输入数字时,您已将其存储为pick
变量中的字符串。接下来的步骤是:
Python有一个built-in int
function,用于将选择字符串转换为整数。
您的deck
变量是一个列表,要从Python中的列表中获取项目,您可以按索引请求该项目。索引是表示该项目位置的数字:
animals = ["cat", "dog", "fish", "pterodactyl]
print(animals[0]) # "cat"
print(animals[1]) # "dog"
print(animals[2]) # "fish"
将此添加到您的代码应该可以解决问题:
pick = int(pick)
card = deck[pick]
print("Your card is", card)
答案 2 :(得分:1)
你快到了!您需要做的就是从deck
获取卡片。
pick = input('Pick a card 1-52 :')
card = deck[int(pick)-1]
print("You chose: The {}".format(card))
(Psst!记住,列表从索引0
开始,这就是你必须从-1
开始的原因)