函数
记录学习持续更新
前言
常见的函数处理
一、使用
1.形参和实参
代码如下(示例):
def greedy():
print("hello")
def greedy_usr(name):
print("hello " + str(name))
greedy()
greedy_usr("leo")
函数定义里里面的参数为形参,调用时候为实参
2.函数默认值
def greedy_usr_defalue(name, age = 18):
print("hello " + "welcome "+ str(age) + " " + str(name))
实参没有给值时,调用默认的参数18
greedy_usr_defalue("leo")
#输出:
hello welcome 18 leo
当给了实参时,调用实参的值
greedy_usr_defalue("leo", 23)
#输出:
hello welcome 23 leo
3、实参可选
def greedy_usr_defalue(name, age = ""):
if age:
print("hello " + "welcome "+ str(age) + " " + str(name))
else:
print("hello " + "welcome")
将可选的形参移至形参列表末尾处
greedy_usr_defalue("leo")
#输出:
hello welcome
4、返回多个值
def greedy_retuen_list(name, age):
return_list = []
return_list.append(name)
return_list.append(age)
return return_list
re_list = greedy_retuen_list('leo', 18)
print(re_list[0])
print(re_list[1])
#输出:
leo
18
def greedy_retuen_dict(name, age):
return_dict = {}
return_dict["name"] = name
return_dict["age"] = age
return return_dict
re_dict = greedy_retuen_dict('leo', 19)
print(re_dict)
#输出:
{'name': 'leo', 'age': 19}
5、函数中不修改源列表中的元素方法
import copy
def greedy(usr_list):
#usr_list_copy = usr_list[:]
usr_list_copy = usr_list.copy()
print(usr_list)
usr_list_copy.remove(2)
print(usr_list)
print(usr_list_copy)
greedy(ur_list)
print(ur_list)
#输出:
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 3, 4]
[1, 2, 3, 4]
6、传递任意数量的实参(元组)
def greedy(*usr_list):
#usr_list_copy = usr_list[:]
for i in usr_list:
print(i)
ur_list = (1 ,2 , 3, 4)
greedy(ur_list)
print(ur_list)
#输出:
(1, 2, 3, 4)
(1, 2, 3, 4)
*usr_list让python创建一个tuple空元组,并将收到的所有值封装在这个元组中。
7、传递任意数量的实参(字典)
def greedy(**usr_list):
new_ditc = {}
for k, v in usr_list.items():
new_ditc[k] = v
return new_ditc
dict1 = greedy(name = "leo", age = 18)
print(dict1)
#输出:
{"name":"leo", "age": 18}
如果要带上参数的名称,使用 ** args,如果不需要带,用 * args,如果两个一起用,一定是 * args在**args前面:
Def A(*args,**args):
调用:
A(‘age1’,age2’,name = “ou”, name2 = “an”)