Python-For循环不是';t踢入(21点游戏)
我刚刚开始学习python,我的第一个项目是基于文本的21点游戏 潘德是牌手,托托是牌手牌的总数 for循环似乎在第一次迭代后退出。当我在循环后打印pTotal和pHand时,每次只显示第一张卡的值 代码: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
任何帮助都将不胜感激 我想你想要的是
#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])