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)
posted @ 2021-07-07 14:47  超暖  阅读(218)  评论(0)    收藏  举报