03. python 函数编程(简单)
python函数编程
1. 全局、局部变量
# 这里只用global
name = 'wesley' # 全局
def change_name(): # 如果不是global申明, 函数里面的是局部
global name # 参数不可以是name
print(name)
change_name()
print(name)
2. 返回值
def stu_register(name,age):
print(age)
if age>20:
return False
else:
return True
stu_register("wesley", 20)
if stu_register:
print("年龄合格")
else:
print("不合格")
3. 高阶函数
"""
高阶函数满足其一:
接收一个或者多个函数作为输入
return 返回另外一个函数
"""
def add(x, y, f): #f是abs函数(绝对值)
return f(x) + f(y)
res = add(3, -6, abs) #abs是绝对值
print(res)
4. 非固定参数函数
# def stu_register(name, age, *args): #*args会把多传入的参数变成一个元组的形式
# print(name, age, args)
#
# stu_register("wesley", 20) #wesley 20 ()
# stu_register("wesley", 20, "java", "python") #wesley 20 ('java', 'python')
def stu_register(name, age, *args, **kwargs): #会把多传入的参数变成一个dict形式
print(name, age, args, kwargs)
stu_register("wesley",20) #wesley 20 () {}
stu_register("wesley", 20, 'java', 'python', sex='male', address='guangxi') #wesley 20 ('java', 'python') {'sex': 'male', 'address': 'guangxi'}
5. 递归
# 内部调用自身
# def calc(n):
# print(n)
# if int(n/2) == 0:
# return n
# return calc(int(n/2))
# calc(10)
def calc(n):
v = int(n/2)
print(v)
if v > 0: # 出口
calc(v)
print(n) # 全部递归之后才输出
calc(10)
6. 匿名函数
def calc1(x, y):
return x**y
print(calc1(2, 3))
# 匿名函数,结果相同
calc2 = lambda x,y:x**y
print(calc2(2, 3))
# 匿名函数结合其它函数一起使用, map x=1, 2, 3
res = map(lambda x:x**2, [1, 2, 3])
print(res)
for item in res:
print(item) # 1, 4, 9
7. 函数嵌套
name = 'wesley' #不会调用最内层函数
def change_name():
name = 'leo'
def chage_name2():
name = 'linda'
print(name)
print(name)
change_name()
print(name)
# name = 'wesley'
# def change_name():
# name = 'leo'
# def chage_name2():
# name = 'linda'
# print(name)
# chage_name2() #函数中调用函数
# print(name)
# change_name()
# print(name)
再坚持一下下,会越来越优秀

浙公网安备 33010602011771号