为什么不是';我的一个变量没有定义吗-Python 2.7

为什么不是';我的一个变量没有定义吗-Python 2.7,python,python-2.7,Python,Python 2.7,因此,我对python还是相当陌生,我正在尝试创建一个“单词猜测”程序,其中一部分是创建一个函数,该函数接受输入的字母,然后将其与字母列表进行比较,但是它似乎无法识别我在中对变量“guess”的定义,而(guess!=ans):,对此有何想法? (以下是我的代码作为参考): 错误: Name错误:第5行没有定义名称“guess”Python是一种解释语言,解释器依靠缩进来区分不同的代码块。 如果你不知道那是什么,你可以阅读以下内容: 代码中的问题存在于while循环中。 因为变量“guess”

因此,我对python还是相当陌生,我正在尝试创建一个“单词猜测”程序,其中一部分是创建一个函数,该函数接受输入的字母,然后将其与字母列表进行比较,但是它似乎无法识别我在
中对变量“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]