[英]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.