Python学习_我该怎么使用函数及函数中传递列表

为了说明什么是函数就先用一个例子吧:

#比如我定义一个求和运算
def sum_1(x,y):
    a=x+y
    return a
print(sum_1(2,5))

输出:7

注意:函数是使用def定义的,def后边是函数名,括号中是参数,括号中的参数也可以为空
当你需要使用这个函数的时候就可以直接调用了
sum_1()函数是带有参数的,调用时也必须有参数,并且参数需要按照定义时的参数顺序,如上调用就是x=2,y=5,这叫做位置参数,就是必须体现先后顺序
如果不想按照顺序输入参数,可以采用一下形式:sum_1(y=5,x=2),不影响输出结果,这里不够明显,可以换成其他的函数,比如打印英语人名,区分firstname和lastname,就比较明显了

1、函数中传递列表
以班里新来了三个同学为例,做成列表,对三位同学表示欢迎:

#定义一个函数,将names列表作为函数的形参(定义函数时的参数叫形参)
def student(names):        
    for name in names:
        message='欢迎 '+name+' 同学加入高一三班'
        print(message)

std_names=['yangmi','zhaoliying','tangyan']
#调用函数,并将列表作为函数的实参(调用函数时的参数叫实参)
student(std_names)    

输出:
欢迎 yangmi 同学加入高一三班
欢迎 zhaoliying 同学加入高一三班
欢迎 tangyan 同学加入高一三班
2、在函数中修改列表
以点名为例,点名前站一列,点名后站到另一列,学习怎么在函数中修改列表

#打印点名的信息,需要使用到循环,和pop()删除列表元素及append()添加列表元素
def roll_call(student_l,student_r):
    while student_l:
        current_call=student_l.pop()
        print(current_call+'同学到了吗')
        student_r.append(current_call)

#打印已经点过名的队列
def call_over(student_r):
    for name in student_r:
        print(name)

student_l=['yangmi','zhaoliying','tangyan']
student_r=[]

roll_call(student_l,student_r)
call_over(student_r)

输出:
tangyan同学到了吗
zhaoliying同学到了吗
yangmi同学到了吗
tangyan
zhaoliying
yangmi

注意:在设计函数时,尽量让一个函数只实现一个具体的工作

练习
1、建一个学生列表,并将列表传递给函数,并打印每个学生的名字

def show_student(students):
    for student in students:
        print(student+'是一个学生')

students=['yangmi','zhaoliying','tangyan','zhangjiaxin']        
show_student(students)

输出:
yangmi是一个学生
zhaoliying是一个学生
tangyan是一个学生
zhangjiaxin是一个学生
2、结合上例增加一个函数,添加说明是三好学生的说明,并打印验证

def show_student(students):
    for student in students:
        print(student)

def make_great(students):
    i=0
    for student in students:
        student=student+'是三好学生'
        students[i]=student
        i=i+1
    return students

students=['yangmi','zhaoliying','tangyan','zhangjiaxin']
make_great(students)
show_student(students)

输出:
yangmi是三好学生
zhaoliying是三好学生
tangyan是三好学生
zhangjiaxin是三好学生
3、由于修改时我不想修改原始列表,因此增加一个副本进行修改,将副本和原始列表都输出

def show_student(students):
    for student in students:
        print(student)

def make_great(students):
    i=0
    for student in students:
        student=student+'是三好学生'
        students[i]=student
        i=i+1
 #   print(students)
    return students

students=['yangmi','zhaoliying','tangyan','zhangjiaxin']
students_2=students[:]
make_great(students_2)
show_student(students_2)
show_student(students)

输出:
yangmi是三好学生
zhaoliying是三好学生
tangyan是三好学生
zhangjiaxin是三好学生
yangmi
zhaoliying
tangyan
zhangjiaxin

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值