Python 我有一个赢得比赛的while循环';因为某种原因我不能工作

Python 我有一个赢得比赛的while循环';因为某种原因我不能工作,python,loops,while-loop,Python,Loops,While Loop,我很难让这个while循环正常工作,如果您有任何帮助/建议,我将不胜感激 以下是循环(不是完整的程序): 随机导入 当你或敌人的生命值>=10时: 打印(“他还在攻击你。”) 打印(“您可以: “a-道奇” “b-反击”) 战斗\u选择\u 1\u 1=输入(“你做什么?”) 如果战斗\u选择\u 1\u 1==“a”: d20_1_1=random.randint(1,20) 如果d20\u 1\u 1>=10: 打印(“你躲开了攻击”) elif d20_1_1而不是: while your

我很难让这个while循环正常工作,如果您有任何帮助/建议,我将不胜感激

以下是循环(不是完整的程序):

随机导入
当你或敌人的生命值>=10时:
打印(“他还在攻击你。”)
打印(“您可以:
“a-道奇”
“b-反击”)
战斗\u选择\u 1\u 1=输入(“你做什么?”)
如果战斗\u选择\u 1\u 1==“a”:
d20_1_1=random.randint(1,20)
如果d20\u 1\u 1>=10:
打印(“你躲开了攻击”)
elif d20_1_1而不是:

while your_health or enemy_health >= 10:
我想你的意思是:

while your_health >= 10 or enemy_health >= 10:
你拥有的是“while(your health或敌军health)大于10”中的正规英语,但计算机语言的语法要严格一点

对计算机来说,这意味着“while(your health)或(敌方health大于10)”,在真值的上下文中,许多语言只会将非零值视为真值。Python确实遵循这一惯例

从联机Python文档的列表:

在布尔运算的上下文中,以及当控制流语句使用表达式时,以下值被解释为false:false、None、所有类型的数值零,以及空字符串和容器(包括字符串、元组、列表、字典、集合和冻结集)所有其他值均被解释为真。

(我的粗体字)。因此,声明:

while your_health or enemy_health >= 10:
是有效的(假设它是数字的,并且您的代码中从不让它降到零以下,根据其预期用途的合理假设):

换句话说,只要玩家有任何生命值,循环就会继续,而不是10个或更多生命值。

而不是:

while your_health or enemy_health >= 10:
我想你的意思是:

while your_health >= 10 or enemy_health >= 10:
你拥有的是“while(your health或敌军health)大于10”中的正规英语,但计算机语言的语法要严格一点

对计算机来说,这意味着“while(your health)或(敌方health大于10)”,在真值的上下文中,许多语言只会将非零值视为真值。Python确实遵循这一惯例

从联机Python文档的列表:

在布尔运算的上下文中,以及当控制流语句使用表达式时,以下值被解释为false:false、None、所有类型的数值零,以及空字符串和容器(包括字符串、元组、列表、字典、集合和冻结集)所有其他值均被解释为真。

(我的粗体字)。因此,声明:

while your_health or enemy_health >= 10:
是有效的(假设它是数字的,并且您的代码中从不让它降到零以下,根据其预期用途的合理假设):


换句话说,只要你的玩家有任何生命值,循环就会继续,而不是10个或更多生命值。

请比“不起作用”更具体一些。预期的行为是什么以及会发生什么?记住选择对你最有帮助的答案(点击它旁边的绿色复选标记)。请比“不起作用”更具体。预期的行为是什么以及会发生什么?请记住选择对您最有帮助的答案(单击它旁边的绿色复选标记)。