[英]Trying in Python to get a loop running with several if statments
我正在学习Python,却迷失了atm:
from random import randint
x = 10
y = 4
hit = randint(1,100)
while x > 0:
if hit >= 50:
print "you hit for %d" % y
x -= y
elif hit < 50:
print "you miss"
我正在尝试做的是得到一个循环,如果我命中或如果我错过直到x = 0,则每次运行一个“新”循环。谢谢。
你有你的x -=y
仅在有条件的分支之一,这意味着如果hit < 50
x-=y
永远不会运行,这将导致无限循环,你需要将其更改为:
while x > 0:
hit = randint(1,100)
if hit >= 50:
print "you hit for %d" % y
elif hit < 50:
print "you miss"
x -= y
您还将randint
置于循环之外,因此hit
始终是相同的值。
再次查看您的代码, x
似乎是hp,并且当hp耗尽时循环将结束,因此在这种情况下,您的x-=y
很好。
如果每次循环都需要一个不同的随机数,请将随机数生成放入循环中。 while x > 0:
和if hit >= 50:
之间移动hit = randint(1,100)
。
如果在循环外部声明了hit
,则该值将永远保持不变,或者在循环3次后结束程序,或者永不结束。 必须是这样的:
while x > 0:
hit = random.randint(1,100)
if hit >= 50:
print "You hit for %d" % y
x -= y
elif hit < 50:
print "You missed"
虽然不是必须的,但是因为1到100之间的随机整数是<或> = 50,所以养成防御性编程的习惯是很好的,因此可以在下面的其他语句中输入:
else:
print "Error, something is wrong"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.