为什么不是';我的一个变量没有定义吗-Python 2.7
因此,我对python还是相当陌生,我正在尝试创建一个“单词猜测”程序,其中一部分是创建一个函数,该函数接受输入的字母,然后将其与字母列表进行比较,但是它似乎无法识别我在为什么不是';我的一个变量没有定义吗-Python 2.7,python,python-2.7,Python,Python 2.7,因此,我对python还是相当陌生,我正在尝试创建一个“单词猜测”程序,其中一部分是创建一个函数,该函数接受输入的字母,然后将其与字母列表进行比较,但是它似乎无法识别我在中对变量“guess”的定义,而(guess!=ans):,对此有何想法? (以下是我的代码作为参考): 错误: Name错误:第5行没有定义名称“guess”Python是一种解释语言,解释器依靠缩进来区分不同的代码块。 如果你不知道那是什么,你可以阅读以下内容: 代码中的问题存在于while循环中。 因为变量“guess”
中对变量“guess”的定义,而(guess!=ans):
,对此有何想法?
(以下是我的代码作为参考):
错误:
Name错误:第5行没有定义名称“guess”
Python是一种解释语言,解释器依靠缩进来区分不同的代码块。
如果你不知道那是什么,你可以阅读以下内容:
代码中的问题存在于while循环中。
因为变量“guess”在函数main的范围内,所以只有“main”中的其他变量和函数才能看到它
此外,您的字母列表也有一个问题,因为每个字符都应该在引号(“”或“”)中,否则python将它们解释为甚至没有定义的变量
while循环位于另一个作用域,即“全局”作用域,这就是为什么程序无法识别“guess”变量的原因。
你的循环是无限的,因为“猜测”总是不同于“答案”不变。
如果你能用更好的方式表达你想要完成的事情,我可以帮你
def main():
ans = str("a")
guess = str("null")
letterList=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
while (guess != ans):
if(letterList[0] == ans):
guess = letterList[0]
那是正确的吗?我看起来像
,而循环在main
之外,这意味着它在调用main
之前运行,并且在一个既没有定义ans
也没有定义guess
的范围内运行。此外,letterList
的定义几乎肯定是无效的(除非您为A
、B
等绑定了全局名称)。确保您提供的是实际代码;我猜这是一个打字错误,但我们无法知道你是否在草率地将其缩减为a。你必须提供一个。如果收到错误,请提供完整的错误消息,包括堆栈跟踪。顺便说一句,你真的不应该学习Python2,Python2被认为是生命的正式终结。您真的应该学习Python 3。Python 3现在是Python。现在使用Python2的唯一好理由就是使用Python1的理由基本相同。。。因为你是因为传统软件而被迫这么做的。@ShadowRanger啊!就这样,我太傻了,太谢谢你了@胡安帕,阿里维拉加,对不起!我不知道!它仍然应该运行,但我也会编辑它,包括我的错误!很抱歉,我还在学习堆栈交换,我也意识到Python 2是过时的,但是我正在学习的编程课程是选修下一级课程的先决条件,该课程将教授Python 3.x这是一门糟糕的课程:(教新用户一种死板的方言是一种犯罪。啊,谢谢你,我没有看到这一点!对不起,我还是个新手!我的荣幸。我们都从某个地方开始;)
def main():
ans = str("a")
guess = str("null")
letterList=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
while (guess != ans):
if(letterList[0] == ans):
guess = letterList[0]