带有中断的python嵌套循环

焦耳的

我正在学习python,我正在尝试制作这种文本游戏,并被困在while循环上...我正在尝试做的是拥有可以使用的东西列表,并将用户的raw_input与该列表进行比较(如果他们选择了正确的话) 5次尝试中的1次继续,否则死于消息。这是我的代码:

def die(why):
    print why
    exit(0)

#this is the list user's input is compared to
tools = ["paper", "gas", "lighter", "glass", "fuel"]
#empty list that users input is appended to
yrs = []
choice = None
print "You need to make fire"

while choice not in tools:
    print "Enter what you would use:"
    choice = raw_input("> ")
    yrs.append(choice)
    while yrs < 5:
        print yrs
        die("you tried too many times")
    if choice in tools:
        print "Well done, %s was what you needeed" % choice
        break

但是选择没有被添加到列表中yrs,它仅使用一个while循环,但是它将永久消失或直到用户输入输入工具列表中的一项为止,但是id希望将其限制为5次尝试,然后使用以下命令输入:die("You tried too many times")但是它给了我第一次尝试后立即消逝的消息。。。我正在搜索这个论坛,没有找到满意的答案,请帮助我

瓦里索普

尝试

if len(yrs) < 5: 
   print yrs
else:
   die("you tried many times")

而不是一会儿。条件

yrs < 5

总是返回false,因为它yrs是一个列表,您正在将其与整数进行比较。这意味着while yrs < 5永远不会执行循环,因为条件yrs < 5永远不会成立。您的程序将跳过此循环并调用该die()函数,这将使其立即退出。这就是为什么您应该die像上面的代码片段一样放入条件语句的原因

请注意,如果您改为写:

 while len(yrs) < 5:
     print yrs

这也将是不正确的,因为条件len(yrs) < 5True在第一次检查时求值,因此您将陷入无限循环,在该循环中,用户将无法提供任何输入,len(yrs) < 5取决于条件的长度

您可能想在一个语句中将yrs长度与5进行比较if(如上所述),以查看用户的尝试次数是否大于5。如果尝试的次数不超过5,则代码流应继续进行最终检查(if choice in tools... ),然后再重复外while循环,以使用户能够进行另一次尝试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有验证的 Python 嵌套循环问题

来自分类Dev

Python - 带有 CSV 的嵌套循环

来自分类Dev

带有嵌套 for 循环的 Python 代码太慢

来自分类Dev

带有嵌套for循环的脚本

来自分类Dev

带有嵌套循环条件的Python Pandas切片

来自分类Dev

带有嵌套after()函数的Python ForLoop在循环之后发生

来自分类Dev

确定带有中断的循环的大O

来自分类Dev

嵌套循环的中断缩进

来自分类Dev

嵌套循环的中断缩进

来自分类Dev

嵌套 for 循环,中断

来自分类Dev

如何使用带有嵌套列表的循环?

来自分类Dev

打印带有嵌套循环的棋盘。[Java]

来自分类Dev

带有索引的并行嵌套循环

来自分类Dev

比较带有嵌套循环的数组

来自分类Dev

退出带有嵌套循环的shell脚本

来自分类Dev

带有嵌套循环的JQuery异步Promise

来自分类Dev

带有局部变量的嵌套循环

来自分类Dev

带有while循环的嵌套游标

来自分类Dev

Python,嵌套循环进入函数中断-传递-继续-返回

来自分类Dev

奇数嵌套循环无法正确中断(Python 3.x)

来自分类Dev

如何在带有嵌套循环的Python中制作此形状?

来自分类Dev

Python - 在一个带有嵌套 for 循环的 CSV 文件中搜索字符串

来自分类Dev

对于在带有嵌套循环的文件中不要再次迭代 - Python

来自分类Dev

带有循环的Python doctest

来自分类Dev

带有文件的Python For循环

来自分类Dev

带有if语句的Python for循环

来自分类Dev

带有字典的 Python FOR 循环

来自分类Dev

ExtJS:如何为带有嵌套循环的XTemplate使用itemSelector?

来自分类Dev

GNU并行,带有嵌套的for循环和多个命令