繁体   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