Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python的循环问题_Python_Loops_While Loop - Fatal编程技术网

python的循环问题

python的循环问题,python,loops,while-loop,Python,Loops,While Loop,我正在尝试循环一个战斗菜单。虽然它还没有完成,但我在循环它时遇到了问题。我希望菜单保持循环,直到myhp或hp低于0。所以我用了“当我的hp>0或hp>0时: 它不起作用,我做错了什么 def fightmode(name, hp, dmg, gold): print '\n\n\nYou are in a fight with %s' %name print '%s has %sHP' %(name, hp) while myhp > 0 or hp > 0: hp = h

我正在尝试循环一个战斗菜单。虽然它还没有完成,但我在循环它时遇到了问题。我希望菜单保持循环,直到myhp或hp低于0。所以我用了“当我的hp>0或hp>0时:

它不起作用,我做错了什么

def fightmode(name, hp, dmg, gold):
print '\n\n\nYou are in a fight with %s' %name
print '%s has %sHP' %(name, hp)
while myhp > 0 or hp > 0:
    hp = hp - mydmg
    print '\n\t1. Attack \n\t2. Guard \n\t3. Run away.'
    opt1= ''
    allowed = ["1", "2", "3"]
    while opt1 not in allowed:
        opt1 = raw_input("\nWhat will you do? ")
        if opt1 == "1":
            print "You have inflicted %d damage on %s. %s's HP is %s" %(mydmg, name, name, hp)
if myhp > 0 :
    print"myhp"
if hp > 0 :
    print"theirhp"

没关系,我想我明白了。我把“或”改为“和”,它似乎在工作。 这是正确的方法吗?

因为在循环删除时,直到布尔表达式为true并在表达式为false之后停止


因此,您需要在myhp<0或hp<0时编写

现在您需要
myhp
hp
为真,while循环才能继续。 因此,如果其中一个降到0,因此“变为False”,那么另一个仍然为true,并保持循环

那你怎么能做点什么呢??(您已经猜对了…请改用


因此,myhp>0或hp>0:
应为
,而myhp>0和hp>0:
(请注意,
被替换为
!)

解释“不工作”的含义。您希望它做什么,它做什么?请重新格式化您的代码,使其显示为有效的Python。不要使用制表符,而是使用四个空格进行缩进。是的,它是。您的while循环需要运行,直到其中一个降到0以下,而不是两个都降到0以下。