Python一直在说NameError:没有定义名称'name'
我试图从Codeacademy复制以下代码: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
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()