繁体   English   中英

我不断收到NameError:未定义名称'a'吗?

[英]I keep on getting NameError: name 'a' is not defined?

def main():
   a == 3
   b = a + 1
   c = b + 1
   print(a)

if (a<0):
    print(a<0)
    print(c)

else:
    print('a is not less than 0')
    print(a)

我观看了有关Python编程的可汗学院视频#1,并尝试复制它,但它始终显示上面的错误。 感谢您的帮助,我是python的初学者

你是不是分配给a ; 相反,您正在使用double ==测试是否相等:

a == 3

既然你没有分配到任何a尚未与比较3 ,在一个结果NameError

删除一个=号来分配:

a = 3

所有这些都假定您的其余代码正确缩进以匹配其余功能:

def main():
    a = 3
    b = a + 1
    c = b + 1
    print(a)

    if (a<0):
        print(a<0)
        print(c)

    else:
        print('a is not less than 0')
        print(a)

==用于比较测试。 您需要使用=进行变量分配:

a = 3

另外,按照您的代码当前的状态, main外部的内容将无法访问a因为它在函数中是本地的。 因此,您需要将其缩进一级:

def main():
   a = 3
   b = a + 1
   c = b + 1
   print(a)

   if (a<0):
       print(a<0)
       print(c)

    else:
       print('a is not less than 0')
       print(a)

main()

我认为您需要以下代码:

def main():

    a = 3
    b = a + 1
    c = b + 1
    print(a)
    if (a<0):

        print(a<0)
        print(c)

    else:

       print('a is not less than 0')
       print(a)

main()

您希望if语句位于您要创建的函数中,在本例中为main()。 否则,将不会定义“ a”,因为它位于函数main()中。 欢迎使用python,并开始堆栈溢出!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM