Python不接受函数变量

时间:2016-01-06 17:57:41

标签: python python-3.x nameerror

每当我运行代码时,python都会出现错误消息:

追踪(最近一次通话): 文件"" /Users/jim/Desktop/Python/TextWindow.py" ;,第7行,在模块中 读(名称)

NameError:name' name'未定义

def Writeline(string):
    print(string)

def Read(name):
    name = input()

Read(name)

Writeline(name)

2 个答案:

答案 0 :(得分:3)

我假设您希望Read读取一个字符串,然后将其传递给Writeline。在这种情况下,Read必须返回一个值。 Python字符串是不可变的,因此您必须返回您读取的字符串以在函数外部访问它:

def Writeline(string):
    print(string)

def Read():
    return input()

name = Read()
Writeline(name)

修改

请记住,input()在Pythons 2和3中做了不同的事情。在Python 3中,它做了你想要的。在Python 2中raw_input()是读入输入的函数。 input()将尝试评估您输入的任何Python代码行。

答案 1 :(得分:0)

首先,浏览@Erica提供的链接作为评论。

这里出现了一些问题。

  1. 你还没有真正定义变量" name"在可以使用的范围内。
  2. 如果您可能不希望传入任何变量,那么您的名字就是传入函数Read()。
  3. 我认为你想要raw_input(),而不是input()(这只适用于python 2.x,因为我没有看到3.x标签)
  4. 您需要做的是分配变量" name"是Read()函数的返回。

    如下:

    def WriteLine(s):
        print(s)
    
    def Read():
        r = raw_input()
        return r
    
    name = Read()
    WriteLine(name)