无法找到适用于此处问题的任何内容。如果有,请指向我。 无论如何,作为一个新的python,我无法理解为什么我的输出在这里不断重复。
from random import randint
dollars = int(input("How many dollars do you have? "))
maxdollars = dollars
countatmax = 0
count = 0
while dollars > 0:
count += 1
diceone = randint(0, 6)
dicetwo = randint(0, 6)
if diceone + dicetwo == 7:
dollars + 4
else:
dollars - 1
if dollars != maxdollars:
mostdollars = dollars
countatmax = count
print "You are broke after " + str(count) + " rolls.\n" + \
"You should have quit after " + str(countatmax) + \
" rolls when you had $" + str(maxdollars) + "."
答案 0 :(得分:2)
是的,就像卡琳所说的那样,你并没有用这些陈述来改变美元的价值:
if diceone + dicetwo == 7:
dollars + 4
else:
dollars - 1
因为"美元"永远不会改变,你的while循环将永远循环(美元总是大于零)假设用户输入正值
答案 1 :(得分:0)
在你的代码中,
while dollars > 0:
count += 1
diceone = randint(0, 6)
dicetwo = randint(0, 6)
if diceone + dicetwo == 7:
dollars + 4
else:
dollars - 1
dollars + 4
只是在美元金额上加4。因此,如果初始金额为100美元,那么 dollars + 4
将始终等于104美元。 dollars - 1
也是如此。对于这种情况,它总是等于99美元。
为了更好地理解它,试试这个:dollars = dollars + 4
这将花费之前的美元金额(现在说是104美元),加上4美元,然后将该金额存回自身,更新金额现在为108美元。
由于美元金额从未减少,因此会发生无限循环。
此快捷方式是dollars+=4
或dollars-=1