萌新求助一个简单的函数定义问题,望大佬们不要嘲笑
为什么Python说我的这个great_magican没有定义呀magicans=['Liuqian','Pual Frid','Manu Coco']
def show_magicans(magicans):
for magican in magicans:
print(magican)
show_magicans(magicans)
def make_great(great_magican,magicans):
while magicans:
great_magican=magicans.pop
print(great_magican)
make_great(great_magican,magicans) 这样试试:
magicans=['Liuqian','Pual Frid','Manu Coco']
def show_magicans(magicans):
for magican in magicans:
print(magican)
show_magicans(magicans)
def make_great(great_magican,magicans):
while magicans:
great_magican=magicans.pop()
print(great_magican)
make_great(great_magican,magicans)
改成这样试试看,你的 pop 函数忘记加括号了吧?
magicans = ['Liuqian', 'Pual Frid', 'Manu Coco']
def show_magicans(magicans):
for magican in magicans:
print(magican)
show_magicans(magicans)
def make_great(great_magican, magicans):
while magicans:
great_magican = magicans.pop()
print(great_magican)
make_great(show_magicans, magicans) 本帖最后由 sunrise085 于 2020-7-21 12:53 编辑
不知道你的这个程序中的make_great()函数的目的是要干什么,但是在调用该函数的时候,第一个参数的确没有定义。
magicans=['Liuqian','Pual Frid','Manu Coco']
def show_magicans(magicans):#这三行是一个函数定义,函数有一个参数,注意这里的magicans是形参
for magican in magicans:
print(magican)
show_magicans(magicans)#这一行是函数调用,该参数在第一行定义过了,这里的magicans是实参
def make_great(great_magican,magicans): #这四行是函数定义,函数有两个形参
while magicans:
great_magican=magicans.pop # 这里估计你是打算从列表magicans中pop一个元素赋值给great_magican,pop函数需要在后面加小括号。另外great_magican在这里赋值,其实就没必要作为参数传入了,反正外面也没有定义过这个变量,而且也没有进行返回。
print(great_magican)
make_great(great_magican,magicans) #这一行是函数调用,调用函数的时候第一个参数是没有定义过的。第二个参数在第一行定义过了。
你的程序有点乱,函数定义和主程序的代码穿插着写,有点乱,而且也不利于自己理解。可以调整一下。
改过之后的样子
def show_magicans(magicans):#第一个函数定义
for magican in magicans:
print(magican)
def make_great(magicans):#第二个函数定义,这里去掉了那个没有用到的参数
while magicans:
great_magican=magicans.pop()#这里帮你修改了
print(great_magican)
#从这里开始,是主程序。先是定义了一个列表,然后调用show_magicans()函数,最后调用了make_great()函数
magicans=['Liuqian','Pual Frid','Manu Coco']
show_magicans(magicans)
make_great(magicans)
我修改了你的代码以实现你想要的功能。
满意请设置最佳答案!!
magicans=['Liuqian','Pual Frid','Manu Coco']
def show_magicans(magicans):
for magican in magicans:
print(magican)
show_magicans(magicans)
print('------------------分割线-------------------')
def make_great(magicans):
while magicans:
great_magican=magicans.pop()
print(great_magican)
make_great(magicans)
zltzlt 发表于 2020-7-21 10:41
这样试试:
谢谢大佬
Twilight6 发表于 2020-7-21 10:43
改成这样试试看,你的 pop 函数忘记加括号了吧?
谢谢 sunrise085 发表于 2020-7-21 12:47
不知道你的这个程序中的make_great()函数的目的是要干什么,但是在调用该函数的时候,第一个参数的确没有定 ...
谢谢答主,问题解决了
初学者,还不太会,代码确实很乱,谢谢指出
页:
[1]