Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/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
Python一直在说NameError:没有定义名称'name'_Python - Fatal编程技术网

Python一直在说NameError:没有定义名称'name'

Python一直在说NameError:没有定义名称'name',python,Python,我试图从Codeacademy复制以下代码: def main(): name = raw_input("What is your name?") age = raw_input("How old are you?") color = raw_input("What is your favorite color?") print "Ah, so your name is %s, your quest is %s, " \ "and your favorite color

我试图从Codeacademy复制以下代码:

def main():
    name = raw_input("What is your name?")
    age = raw_input("How old are you?")
    color = raw_input("What is your favorite color?")

print "Ah, so your name is %s, your quest is %s, " \
"and your favorite color is %s." % (name, age, color)
if __name__ == '__main__':
    main()
姓名、年龄和颜色都是本地的。因此,您不能在函数之外访问它们

我认为最好的解决方案是将打印行缩进一级:

name = raw_input("What is your name?")
quest = raw_input("What is your quest?")
color = raw_input("What is your favorite color?")

print "Ah, so your name is %s, your quest is %s, " \
"and your favorite color is %s." % (name, quest, color)
现在,它与name、age和color位于同一范围内,可以很好地访问它们。

name、age和color都是main的本地属性。因此,您不能在函数之外访问它们

我认为最好的解决方案是将打印行缩进一级:

name = raw_input("What is your name?")
quest = raw_input("What is your quest?")
color = raw_input("What is your favorite color?")

print "Ah, so your name is %s, your quest is %s, " \
"and your favorite color is %s." % (name, quest, color)

现在,它与name、age和color位于同一范围内,可以很好地访问它们。

Print应该位于main函数的范围内,以便访问其变量:

def main():
    name = raw_input("What is your name?")
    age = raw_input("How old are you?")
    color = raw_input("What is your favorite color?")

    print "Ah, so your name is %s, your quest is %s, " \
        "and your favorite color is %s." % (name, age, color)
if __name__ == '__main__':
    main()

这应该可以。

打印应该在主功能的范围内,以便访问其变量:

def main():
    name = raw_input("What is your name?")
    age = raw_input("How old are you?")
    color = raw_input("What is your favorite color?")

    print "Ah, so your name is %s, your quest is %s, " \
        "and your favorite color is %s." % (name, age, color)
if __name__ == '__main__':
    main()
这应该可以。

设置名称的唯一时间是在调用main函数时。调用main函数的唯一时间是在调用print函数之后,因为print语句不是main的一部分。因此,名称是未定义的

如果要复制codeacademy代码,则需要调整print语句的缩进,使其与原始输入语句处于同一级别。这是因为python使用缩进量来知道一行代码属于哪个块。您希望打印语句与输入语句位于同一块中

例如:

def main():
    name = raw_input("What is your name?")
    age = raw_input("How old are you?")
    color = raw_input("What is your favorite color?")

    print "Ah, so your name is %s, your quest is %s, " \
    "and your favorite color is %s." % (name, age, color)

if __name__ == '__main__':
    main()
设置名称的唯一时间是调用main函数时。调用main函数的唯一时间是在调用print函数之后,因为print语句不是main的一部分。因此,名称是未定义的

如果要复制codeacademy代码,则需要调整print语句的缩进,使其与原始输入语句处于同一级别。这是因为python使用缩进量来知道一行代码属于哪个块。您希望打印语句与输入语句位于同一块中

例如:

def main():
    name = raw_input("What is your name?")
    age = raw_input("How old are you?")
    color = raw_input("What is your favorite color?")

    print "Ah, so your name is %s, your quest is %s, " \
    "and your favorite color is %s." % (name, age, color)

if __name__ == '__main__':
    main()