Python之函数基础知识点

本文介绍了Python中的函数知识,包括递归调用如coutdown函数,lambda表达式的匿名函数,以及map函数的应用。还探讨了变量的作用域,包括局部、全局、内建作用域,并展示了如何使用global和nonlocal关键字来处理不同作用域的变量。
摘要由CSDN通过智能技术生成

看了一些关于python中函数的知识点,写在pycharm中了,运行着进行理解。

# 以下代码均可运行 自行运行
# 6.4 函数的递归调用
def coutdown(n):
    if n <= 0:
        print('Blastoff')
    else:
        print(n)
        coutdown(n-1)
coutdown(3)

def print_n(s,n):
    if n <= 0:
        return
    print(s)
    print_n(s,n-1)
print_n(1,3)

# 匿名函数:lambda表达式

def make_incrementor(n):
    return lambda x:x+n
f = make_incrementor(42)
print(f(0))
print(f(1))

# map()函数
def square(x):
    return x*x
list_a = [1,2,3]
list_b = map(square,list_a)
for _ in list_b:
    print(_)

def f(x,y):
    return  x*y

list_a = list(map(f,[1,2,3],[4,5,6]))
print(list_a)
list_b = list(map(f,[1,2,3],[4,5]))
print(list_b)

# 变量作用域
# 变量的作用域决定了在那一部分程序可以访问那个特定的变量名称。Python语言的作用一共有四种,分别是:
'''
L (local):局部作用域
E (enclosing):闭包函数外的函数中
G (global):全部作用域
B (built-in):内建作用域
由L-E-G-B的规则查找,即在局部找不到,便会去在局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找
'''
"""
x = int(2.1) # 内建
g_count = 0 # 全局
def outer():
    o_count = 1 # 闭包函数外的函数中
def inner():
    i_count = 2 # 局部作用域
"""
# 全局变量和局部变量
total = 0 # 全局变量
def sum(a,b):
    total = a + b # 局部变量
    print(total)
    return total
sum(10,20)
print("函数外是全局变量:",total)

# global 和 nonlocal 关键字
# 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字
num = 1
def fun1():
    global num #需要用关键字global声明
    print(num)
    num = 123
    print(num)
fun1()

# 如果要修改嵌套作用域(enclosing作用域,外部非全局作用域)中的变量则需要使用nonlocal关键字。例如:
def outer():
    num = 10
    def inner():
        nonlocal num  # nonlocal关键字声明
        num = 100
        print(num)
    inner()
    print(num)
outer()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XF鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值