python的循环问题
我正在尝试循环一个战斗菜单。虽然它还没有完成,但我在循环它时遇到了问题。我希望菜单保持循环,直到myhp或hp低于0。所以我用了“当我的hp>0或hp>0时: 它不起作用,我做错了什么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
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以下。