papapalongtime 发表于 2020-10-24 21:42:24

def 中return的用法求助

papapalongtime 发表于 2020-10-24 21:43:33

如果是return s
run的结果是什么都没有 这是为什么

昨非 发表于 2020-10-24 21:57:43

return s后
你再调用change函数,是有返回值的,只不过没有显示
你改成
print(change(spam))
就好了

笨鸟学飞 发表于 2020-10-24 22:01:41

本帖最后由 笨鸟学飞 于 2020-10-24 22:02 编辑

spam = ['apples','bananas','tofu','cats'] #执行顺序1,初始化列表
def change(data):
    length = len(spam)   #执行顺序3,函数内外部变量混用可不是好习惯
    s = ''               
    for i in range(length):
      s = s + str(spam) + ',' #这个str()函数多余了,本来列表内就是变量
    s = s + 'and' +str(data[-1])
    print(s)            #打印变量S后函数结束,因为无返语句,默认返回None

change(spam)         #执行顺序2,调用函数并传入参数列表spam      
#========因此你想问的是什么?==========
a = change(spam)
print(a)
print(type(a))
#=========执行结果如下:
PS G:\Python作业> & C:/Users/QingMo/AppData/Local/Programs/Python/Python38-32/python.exe g:/Python作业/temp.py
apples,bananas,tofu,cats,andcats
apples,bananas,tofu,cats,andcats
None
<class 'NoneType'>
#=====如果加return语句===========
spam = ['apples','bananas','tofu','cats'] #执行顺序1,初始化列表
def change(data):
    length = len(spam)   #执行顺序3,变量混用可不是好习惯,length=4
    s = ''               
    for i in range(length):
      s = s + str(spam) + ',' #这个str()函数多余了,本来列表内就是变量
    s = s + 'and' +str(data[-1])
    print(s)            #打印变量S后函数结束,因为无返语句,默认返回None
    return s

change(spam)         #执行顺序2,调用函数并传入列表spam      
#========因此你想问的是什么?==========
a = change(spam)
print(a)
print(type(a))
#=========执行结果如下============
PS G:\Python作业> & C:/Users/QingMo/AppData/Local/Programs/Python/Python38-32/python.exe g:/Python作业/temp.py
apples,bananas,tofu,cats,andcats
apples,bananas,tofu,cats,andcats
apples,bananas,tofu,cats,andcats
<class 'str'>

页: [1]
查看完整版本: def 中return的用法求助