函数
函数
函数定义和类型
def 函数名称(参数): 函数体代码 return 返回值
局部变量、全局变量
函数缺省参数、不定长参数、命名参数
递归函数及应用
匿名函数及应用
python内置函数
enumerate()
Last updated
def print_user_info():
print("name:zhangsan")
print("age:20")
print_user_info()def print_user_info2(name, age):
print("name:{}".format(name))
print("age:{}".format(age))
name = "zhangsan"
age = 20
print_user_info2(name, age)# 返回单个值
def x_y_sum(x,y):
res = x + y
return res
# 返回多个值
def x_y_comp(x,y):
rs1 = x + y
rs2 = x - y
rs3 = x * y
rs4 = x / y
# rs = (rs1, rs2, rs3, rs4)
# return rs
return rs1, rs2, rs3, rs4
z = x_y_sum(10, 40)
print(z)
z = x_y_comp(4, 2)
print(z)# (6, 2, 8, 2.0)
print(type(z))# <class 'tuple'># 全局变量
g_name = "zhangsan"
def get_name1():
print(g_name)
def get_name2():
print(g_name)
get_name1()
print("--------")
get_name2()g_age = 25
def change_age():
g_age = 35
print("函数内:",g_age)
change_age()# 函数内: 35
print("--------")
print(g_age)# 25g_age = 25
def change_age():
global g_age# 必须使用global关键字声明
print("修改之前:",g_age)
g_age = 35
print("修改之后:",g_age)
change_age()# 修改之前: 25 修改之后: 35
print("--------")
print(g_age)# 35g_num1 = 100
def print_global_num():
print("g_num1:{}".format(g_num1))
print("g_num2:{}".format(g_num2))
print("g_num3:{}".format(g_num3))
g_num2 = 200
print_global_num()
g_num3 = 300# 在调用函数之后,没有被定义g_num1 = 100
g_num2 = 200
g_num3 = 300
def print_global_num1():
print("g_num1:{}".format(g_num1))
def print_global_num2():
print("g_num2:{}".format(g_num2))
def print_global_num3():
print("g_num3:{}".format(g_num3))
print_global_num1()
print_global_num2()
print_global_num3()g_num_list = [1,2,3]
g_info_dict = {"name":"zhangsan", "age":20}
def update_info():
g_num_list.append(4)# 并没有使用global关键字
g_info_dict["gender"] = "male"
def get_info():
for num in g_num_list:
print(num,end= " ")
for key,value in g_info_dict.items():
print("{}:{}".format(key, value))
update_info()
get_info()
# 1 2 3 4
# name:zhangsan
# age:20
# gender:maledef x_y_sum(x, y=20):
rs = x + y
print("{}+{}={}".format(x,y,rs))
x_y_sum(10, 30)# 10+30=40
x_y_sum(10)# 10+20=30def x_y_sum(x=10, y=20):
rs = x + y
print("{}+{}={}".format(x, y, rs))
num1 = 15
num2 = 12
x_y_sum(y=num1, x=num2)
# 12+15=27# 计算任意数字的和
def any_num_sum(x, y=10, *args):
print("args:{}".format(args))
rs = x + y
if len(args) > 0:
for arg in args:
rs += arg
print("计算结果:{}".format(rs))
# any_num_sum(20)
# any_num_sum(20,30)
any_num_sum(20,30,40,50)
# args:(40, 50) 元组
# 计算结果:140# 缴五险一金
def social_comp(basic_money, **proportion):
print("缴费基数:{}".format(basic_money))
print("缴费比例:{}".format(proportion))
social_comp(8000, e=0.1, a=0.12)
# 缴费基数:8000
# 缴费比例:{'e': 0.1, 'a': 0.12}# 工资计算器
def salary_comp(basic_money, *other_money, **proportion):
print("基本工资:{}".format(basic_money))
print("其他福利:{}".format(other_money))
print("计费比例:{}".format(proportion))
other_money = (500,200,100,1000)
proportion_dict = {"e":0.2, "m":0.1, "a":0.12}
# 注意要用*和**来拆包,不然就会把最后两个都当作元组进行封装了
salary_comp(8000, *other_money, **proportion_dict)
# 基本工资:8000
# 其他福利:(500, 200, 100, 1000)
# 计费比例:{'e': 0.2, 'm': 0.1, 'a': 0.12}# 阶乘
'''
1! = 1
1! = 2*1!
3! = 3*2!
'''
# for循环计算阶乘
def recursive_for(num):
rs = num
for i in range(1,num):
rs *= i
return rs
# 递归计算阶乘
def recursive(num):
if num > 1:
return num * recursive(num-1)
else:
return num
num = recursive_for(4)
print(num)
num = recursive(4)
print(num)# 匿名函数
sum = lambda x,y: x+y
print(sum(10,20))# 30
print(type(sum))# <class 'function'>def x_y_comp(x,y,func):
rs = func(x,y)
print("计算结果:{}".format(rs))
x_y_comp(3,5,lambda x,y:x+y)# 计算结果:8
x_y_comp(3,5,lambda x,y:x*y)# 计算结果:15user_info = [{"name":"zhangsan","age":20},{"name":"lisi","age":15},{"name":"wangwu","age":30},]
print(user_info)
# 按照年龄的降序排列,默认是升序
user_info.sort(key=lambda info:info["age"], reverse=True)
print(user_info)enumerate(sequence, [start=0])seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1)) # 下标从 1 开始
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print i, element
#0 one
#1 two
#2 three