2017-03-31 35 views
0

我是新来的python,我想弄清楚如何让用户输入,然后使用该输入从一副纸牌中选择特定的卡片。这是我到目前为止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

你的问题是不是很不够具体。到目前为止你的代码有什么问题?你有错误吗?有没有一些功能,你不能找到语法? –

回答

1

它看起来好像你所需要做的就是访问选定的卡。

chosen_card = deck[int(pick)-1] 

您需要对此采取更多措施吗?我通常会认为你希望这个套牌是(套装,排名)对的列表,而不是字符串描述。您可以使用当前的代码选择卡片说明,但卡座没有简单的方法将这些描述恢复为您可以操纵的特征。

+1

如果有人输入52,这不会抛出IndexOutOfBounds吗? –

+0

好点。固定。 – Prune

+0

现在你会得到一个'TypeError':P –

1

我假设你的问题是,你不知道如何访问选定的卡,一旦玩家选择一个数字。

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

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

  1. 转换该字符串为整数,并
  2. 发现在甲板位置的卡。

Python有一个built-in int function,将pick从一个字符串转换为一个整数。

您的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) 
1

你几乎没有!所有你需要做的是从deck中取出卡片。

pick = input('Pick a card 1-52 :') 

card = deck[int(pick)-1] 

print("You chose: The {}".format(card)) 

(嘘!请记住,名单开始在指数0,这就是为什么你从它必须-1