我正在学习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。 感谢。
答案 0 :(得分:2)
您的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
就可以了。
答案 1 :(得分:2)
如果每次循环都需要不同的随机数,请将随机数生成放在循环中。在hit = randint(1,100)
和while x > 0:
之间移动if hit >= 50:
。
答案 2 :(得分:0)
如果在循环之外声明hit
,则值将永远保持不变,要么在循环后三次结束程序,要么永无止境。必须是这样的:
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的随机整数是<1。或者&gt; = = 50,养成防御性编程的习惯是好的,所以也许放在这个小小的声明中:
else:
print "Error, something is wrong"