我继续得到NameError:名字'a'没有定义?

时间:2014-01-02 21:48:10

标签: python

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用户

3 个答案:

答案 0 :(得分:4)

您未分配给a;你用双==来测试相等性:

a == 3

由于您未向a分配任何内容,尚未与3进行比较,因此会产生NameError

删除一个=符号来代替:

a = 3

这一切都假定您的代码的 rest 正确缩进以匹配您的其余功能:

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)

答案 1 :(得分:1)

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

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()

答案 2 :(得分:0)

我想你想要以下代码:

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,并堆栈溢出!