尝试在Python中使用几个if语句运行循环

时间:2013-03-24 02:52:30

标签: python loops if-statement

我正在学习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。 感谢。

3 个答案:

答案 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"