在Python中使用函数的新手

在Python中使用函数的新手,python,function,Python,Function,我试图理解为什么没有定义newNameList: ListofNames1 = ['Mark', 'Andrew'] ListofNames2 = ['Anjela', 'Lora'] names = ListofNames1 def greeting(names): newNameList = [] for item in names: newNameList.append(str(names)) return (names) print(gree

我试图理解为什么没有定义
newNameList

ListofNames1 = ['Mark', 'Andrew']

ListofNames2 = ['Anjela', 'Lora']

names = ListofNames1

def greeting(names):
    newNameList = []
    for item in names:
        newNameList.append(str(names))
    return (names)
print(greeting(names))

def function2(newNameList):
    for each in newNameList:
        newNameList2.append(newNameList.upper())
    return (newNameList2)

print(function2(newNameList)) 
输出

['Mark', 'Andrew']
...
NameError: name 'newNameList' is not defined.
名称错误出现在代码的最后一行。

是的,您可以这样做

例如:

def使用问候语功能(名称):
新建列表名称=问候语(名称)
现在,
new\u list\u name
具有
问候语
功能的输出,您可以在以后的功能中使用它。

是的,您可以这样做

例如:

def使用问候语功能(名称):
新建列表名称=问候语(名称)

现在
new\u list\u name
具有
greeting
函数的输出,您可以在以后的函数中使用它。

newNameList
仅在
function2
的范围内定义。由于
print
语句未在
function2
的同一级别缩进,因此
newNameList
对其不可见。在顶级范围中定义的三个变量是
ListofNames1
ListofNames1
names
。在
print
语句中,只有这三个变量可以传递给
function2

newNameList
仅在
功能2
的范围内定义。由于
print
语句未在
function2
的同一级别缩进,因此
newNameList
对其不可见。在顶级范围中定义的三个变量是
ListofNames1
ListofNames1
names
。在
print
语句中,只有这三个变量可以传递给
function2

NameError: name 'newNameList' is not defined. 
告诉你怎么了。您应该在
问候语()
函数之外定义
newNameList

我已经重写了您的代码:

ListofNames1=['Mark','Andrew']
ListofNames2=['Anjela','Lora']
名称=名称列表1
newNameList=[]
def问候语(姓名):
对于名称中的项目:
newNameList.append(名称)
返回名称
打印(问候语(姓名))
def功能2(新名称列表):
newNameList2=[]
对于newNameList中的每一项:
追加(str(newNameList.upper())
返回newNameList2
打印(功能2(新名称列表))
在列表上使用
upper()
方法是行不通的。首先将其转换为
str

告诉你怎么了。您应该在
问候语()
函数之外定义
newNameList

我已经重写了您的代码:

ListofNames1=['Mark','Andrew']
ListofNames2=['Anjela','Lora']
名称=名称列表1
newNameList=[]
def问候语(姓名):
对于名称中的项目:
newNameList.append(名称)
返回名称
打印(问候语(姓名))
def功能2(新名称列表):
newNameList2=[]
对于newNameList中的每一项:
追加(str(newNameList.upper())
返回newNameList2
打印(功能2(新名称列表))

在列表上使用
upper()
方法是行不通的。首先将其转换为
str

也许提供更多的上下文会很有用,下面是代码:def greeting(names):newNameList=[]用于names:newNameList.append(str(names))return(names)print(greeting(names))def function2(newNameList):用于newNameList中的每个项:newNameList2.append(newNameList.upper())return(newNameList2)print(function2(newNameList))输出['Mark','Andrew']newNameList2.append(newNameList.upper())return(newNameList2)--->print(function2(newNameList))NameError:name'newNameList'未定义,因此我不确定缺少什么请将代码添加到问题中并正确格式化,以允许用户帮助您。否则,这根本不可能做到。也许提供更多的上下文会很有用,下面是代码:def greeting(names):newNameList=[]对于names:newNameList.append(str(names))return(names)print(greeting(names))def function2(newNameList):对于newNameList中的每个项:newNameList2.append(newNameList.upper())return(newNameList2)print(function2(newNameList))输出['Mark','Andrew']newNameList2.append(newNameList.upper())return(newNameList2)--->print(function2(newNameList))name错误:名称“newNameList”未定义,因此我不确定缺少什么请将您的代码添加到您的问题中并正确格式化,以允许用户帮助您。否则,这根本不可能。def greeting(names):newNameList=[]对于names中的项:newNameList.append(str(names))return(names)print(greeting(names))def function2(newNameList):对于newNameList中的每个项:newNameList2.append(newNameList.upper())return(newNameList2)print(function2(newNameList))输出['Mark','Andrew']newNameList2.append(newNameList.upper())返回(newNameList2)--->打印(function2(newNameList))名称错误:名称“newNameList”未定义,因此我不确定我缺少什么。请在问题本身中添加格式正确的代码。对不起,这是我第一次使用它,也许可以查看我刚刚上传的图像帮助?感谢您抽出时间思考问候语(名称):newNameList=[]对于名称中的项:newNameList.append(str(names))return(names)print(问候语(names))def function2(newNameList):对于newNameList中的每个项:newNameList2.append(newNameList.upper())return(newNameList2)print(function2(newNameList))输出['Mark','Andrew']newNameList2.append(newNameList.upper()))return(newNameList2)--->print(function2(newNameList))name错误:名称“newNameList”未定义,因此我不确定我遗漏了什么。请在问题本身中添加格式正确的代码。抱歉,这是我第一次使用它,也许可以查看我刚刚上传的图像帮助?谢谢您的时间