Python 不接受函数变量

Python not accepting function variable

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

回溯(最后一次调用): 文件“/Users/jim/Desktop/Python/TextWindow.py”,第 7 行,在模块中 阅读(姓名)

NameError: 名称 'name' 未定义

def Writeline(string):
    print(string)

def Read(name):
    name = input()

Read(name)

Writeline(name)

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

def Writeline(string):
    print(string)

def Read():
    return input()

name = Read()
Writeline(name)

编辑

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

首先,查看@Erica 作为评论提供的 link。

这里有些地方出了问题。

  1. 您实际上还没有在可以使用的范围内定义变量 "name"。
  2. 您正在将名称传递给函数 Read(),而您可能不想传递任何开头的变量。
  3. 我想你想要 raw_input(),而不是 input()(这只适用于 python 2.x,因为我没有看到 3.x 标签)

您需要做的是将变量 "name" 赋值给 Read() 函数的 return。

如以下:

def WriteLine(s):
    print(s)

def Read():
    r = raw_input()
    return r

name = Read()
WriteLine(name)