簡體   English   中英

嘗試在Python中運行帶有多個if語句的循環

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM