Python For循环不执行(每次列表中出现“11”时尝试更改变量)21点
我需要编码一种方法来确定21点手牌是否为半身像,如果不是,我需要返回手牌的总和。我的for循环似乎不起作用。如果手上有一个11(Ace),并且手的原始和大于21,我试图从手的和中减去10。我知道现在变量'newsum'将被打印两次。这是为了确定for循环是否正常运行Python For循环不执行(每次列表中出现“11”时尝试更改变量)21点,python,Python,我需要编码一种方法来确定21点手牌是否为半身像,如果不是,我需要返回手牌的总和。我的for循环似乎不起作用。如果手上有一个11(Ace),并且手的原始和大于21,我试图从手的和中减去10。我知道现在变量'newsum'将被打印两次。这是为了确定for循环是否正常运行 blackjack = [5,11,7] newsum = sum(blackjack) if sum(blackjack) <= 21: print(sum(blackjack)) elif sum(blackjac
blackjack = [5,11,7]
newsum = sum(blackjack)
if sum(blackjack) <= 21:
print(sum(blackjack))
elif sum(blackjack) > 21:
for n in blackjack:
if n == 11:
newsum = newsum - 10
print(newsum)
break
newsum <= 21
if newsum <= 21:
print(newsum)
else:
print("BUST")
blackjack=[5,11,7]
newsum=sum(21点)
如果和(21点)21:
对于21点中的n:
如果n==11:
newsum=newsum-10
印刷品(新闻)
打破
newsum我相信您的for循环正在执行,只是您的break语句在第一次循环时就脱离了循环。您可能希望将break语句缩进if语句。尝试以下操作:
blackjack = [5, 11, 7]
newsum = sum(blackjack)
if sum(blackjack) >= 21:
for card in blackjack:
if card == 11:
newsum = newsum - 10
if newsum >= 21:
print(f"BUST (Your Hand: {sum(blackjack)})")
else:
print("Your Hand:", newsum)
else:
print("Your Hand:", sum(blackjack))
实际上,您只需要删除break语句。您的循环似乎在检查blackjack
结构中是否存在11
——为什么不直接使用in
操作符呢?为什么会增加时间复杂度?您希望得到什么结果?这就是问题所在,谢谢!