Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
Udacity python代码测试_Python_Loops_Project_Infinite - Fatal编程技术网

Udacity python代码测试

Udacity python代码测试,python,loops,project,infinite,Python,Loops,Project,Infinite,我目前正在学习Udacity的编程开发入门课程。作为本课程的一部分,我必须创建一个填空游戏。游戏的结构如下: 要求用户根据难度选择一个级别。一旦用户决定他/她想要玩什么级别,参数:问题、该问题的答案、空白列表和索引0将传递给函数问题验证 在问题验证功能。我们根据索引评估用户输入是否与答案中包含的内容匹配。例如,如果我正在填写第一个空格,那么我的answerinput必须等于答案[0]的输入。如果没有,则用户有4次尝试使其正确。如果用户没有,游戏将退出。一旦用户选择了正确的答案,就会将其传递给函数

我目前正在学习Udacity的编程开发入门课程。作为本课程的一部分,我必须创建一个填空游戏。游戏的结构如下:

要求用户根据难度选择一个级别。一旦用户决定他/她想要玩什么级别,参数:问题、该问题的答案、空白列表和索引0将传递给函数问题验证

在问题验证功能。我们根据索引评估用户输入是否与答案中包含的内容匹配。例如,如果我正在填写第一个空格,那么我的answerinput必须等于答案[0]的输入。如果没有,则用户有4次尝试使其正确。如果用户没有,游戏将退出。一旦用户选择了正确的答案,就会将其传递给函数TRAVENSE

下面是问题验证的代码

函数遍历作为参数:问题;该问题的答案清单;并以指数作为参数。基于此信息,此函数将相应地填写问题空格,并将其传递回问题验证,以供用户填写下一个空格。当所有空格都填满时,程序停止

这是遍历的代码

我已经在我的代码中写了注释,进一步详细说明了我在这里概述的内容

这是完整的代码

代码似乎工作得很好,在填补第四个空白之前,它一直在做我希望它做的事情。在这一点上,如果我选择了错误的答案,然后返回并选择正确的答案。它承认我选择了正确的答案,但随后再次提示我输入答案。这是一个无限的循环,我无法理解为什么它会发生在这里,而在填补之前的空白时它却不起作用

下面是再次提示的屏幕截图:


我一辈子都不明白为什么:

正如齐帕所指出的,除非你尝试的次数用完了,否则你永远不会打破146行else语句中的while循环。单行修复是在遍历函数的第98行之后简单地放一个出口

请在问题中加上a。问题应该是独立的;我们不必离开现场去弄清楚你的问题是什么。欢迎来到Stack Overflow!我建议您阅读有关如何调试自己的代码的提示。作为一名有抱负的程序员,调试是最重要的技能之一。另外,请花几分钟时间阅读,并在此处获取改进问题的提示。在else语句中,您永远不会中断while循环。我可以做些什么来改进我撰写问题的方式?可能会尝试遵循其他用户发布的规则。此外,请提出一个简洁且范围尽可能有限的问题。例如,我一辈子都不明白为什么[我的程序运行不正常]不是一个好问题,如果它是一个问题的话。不幸的是,虽然您提供了解决方案所需的所有信息,但问题的范围太大;尽可能地调试您的程序,然后询问需要解释的问题。此外,与其在此处解释程序,不如在代码中对其进行注释!:如果我的回答有助于解决您的问题/回答您的问题,请选择它作为接受的答案!