Python-卡片选择

时间:2017-03-31 21:07:18

标签: python loops input

我是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 :')

3 个答案:

答案 0 :(得分:1)

在我看来,您需要做的就是访问所选卡片。

chosen_card = deck[int(pick)-1]

你需要做更多吗?我通常认为您希望套牌是(套装,等级)对的列表,而不是字符串描述。您可以使用当前代码选择卡片描述,但卡座并不能轻松将这些描述转换回您可以操作的特征。

答案 1 :(得分:1)

我认为您的问题是,一旦玩家选择了一个号码,您就不知道如何访问所选卡片。

如果是这样,那么您已经接近解决方案了!

当玩家输入数字时,您已将其存储为pick变量中的字符串。接下来的步骤是:

  1. 将该字符串转换为整数,
  2. 在牌组中的那个位置找到卡片。
  3. 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开始的原因)