Python-For循环不是';t踢入(21点游戏)

Python-For循环不是';t踢入(21点游戏),python,if-statement,for-loop,blackjack,Python,If Statement,For Loop,Blackjack,我刚刚开始学习python,我的第一个项目是基于文本的21点游戏 潘德是牌手,托托是牌手牌的总数 for循环似乎在第一次迭代后退出。当我在循环后打印pTotal和pHand时,每次只显示第一张卡的值 代码: 任何帮助都将不胜感激 我想你想要的是 #using x as a list item for x in pHand: if x[0] == '1' or x[0] == 'J' or x[0] == 'Q' or x[0] == 'K': pTotal += 10

我刚刚开始学习python,我的第一个项目是基于文本的21点游戏

潘德是牌手,托托是牌手牌的总数

for循环似乎在第一次迭代后退出。当我在循环后打印pTotal和pHand时,每次只显示第一张卡的值

代码:


任何帮助都将不胜感激

我想你想要的是

#using x as a list item
for x in pHand:

    if x[0] == '1' or x[0] == 'J' or x[0] == 'Q' or x[0] == 'K':
        pTotal += 10
    elif x[0] == 'A':
        pTotal += 11
    else:
        pTotal += int(x[0])
for in循环使用
x
作为每个值的临时变量,遍历
pHand
中的项。在您的情况下,在第一次迭代中,您有
x=deck[0]
。在第二次迭代中,您有
x=deck[1]

在您发布的代码中,您试图使用
x
作为索引,这很好,只要您为循环使用正确的值

#using x as an index
for x in range(0, len(pHand)):

    if deck[x][0] == '1' or deck[x][0] == 'J' or deck[x][0] == 'Q' or deck[x][0] == 'K':
        pTotal += 10
    elif deck[x][0] == 'A':
        pTotal += 11
    else:
        pTotal += int(deck[x][0])

第一张牌是什么?第一张单卡或前两张卡添加为
[deck[0],deck[1]]
。如果是第二种情况,则for循环运行正常。不,只打印了[deck[0]。不过,我必须说,这是一个很棒的初学者问题:);我在python中只有一周的时间了:P
#using x as an index
for x in range(0, len(pHand)):

    if deck[x][0] == '1' or deck[x][0] == 'J' or deck[x][0] == 'Q' or deck[x][0] == 'K':
        pTotal += 10
    elif deck[x][0] == 'A':
        pTotal += 11
    else:
        pTotal += int(deck[x][0])