[Python公开课]零基础玩转Python基础篇----第七节:Python中的高级函数

简介: [Python公开课]零基础玩转Python基础篇----第七节:Python中的高级函数

网络异常,图片无法展示
|

📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 🏅🏅🏅CSDN Python领域优质创作者,大二在读,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++) 💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺 🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈 🌟🌟🌟✨✨✨

前言: 📢📢📢【Python公开课】系列课程是针对Python入门&进阶打造的一全套课程,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘 【报团取暖】🆘🆘🆘 🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡

@TOC

1️⃣ 学习目标----提前知💞💞💞

☀️☀️☀️一个崇高的目标,只要不渝地追求,就会成为壮举!

  1. 学习Python的闭包
  2. 了解什么是装饰器及其用法
  3. 掌握常见Python内置函数

2️⃣ 学习任务----我能行🍻🍻🍻

🏅🏅🏅穷且益坚,不坠青云之志!

⚽️01 闭包

闭包定义:Python函数是支持嵌套的。 如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被称为闭包。闭包需要满足如下3个条件:

  • 存在于两个嵌套关系的函数中,并且闭包是内部函数;
  • 内部函数引用了外部函数的变量(自由变量);
  • 外部函数会把内部函数的函数名称返回。

闭包示例:

网络异常,图片无法展示
|

⚽️02 装饰器

装饰器的概念

假设我们已经开发了一个本有的函数,后续可能会增加临时的需求,例如插入日志,我们可以增加一个包裹函数,由它来负责这些额外的需求,这个包裹函数就是 装饰器装饰器主要应用在如下场景:

  1. 引入日志;
  2. 函数执行时间统计;
  3. 执行函数前预备处理;
  4. 执行函数后清理功能;
  5. 权限校验;
  6. 缓存。

装饰器是一个函数,它需要接收一个参数,该参数表示被修饰的函数。例如,有如下一个装饰器函数:

def myDectoration(func):
    def inner():
        print("正在执行内部函数")
        func()
    return inner
def printMessage():
    print("--------欢迎您-------")
pm = myDectoration(printMessage)
pm()
# 正在执行内部函数
# --------欢迎您-------
  • 装饰器是个嵌套函数
  • 内部函数是一个闭包。
  • 外部函数接收的是被修饰的 函数(func)

通过在函数定义的前面添加@符号和装饰器名,实现装饰器对函数的包装。给f1函数加上装饰器,示例如下:

@w1
def f1():
    print(’f1')

此时,程序会自动编译生成调用装饰器函数的代码,等价于:

f1 = w1(f1)

多个装饰器

多个装饰器应用在一个函数上,调用顺序是从下至上

@w1
@w2
def f1():
    print(‘---f1---’)

执行顺序: 先执行@w2,后执行@w1

装饰有参数的函数

看看下面的代码,运行结果是什么呢?

def w1(func):
  def inner(a,b):
    print('开始验证权限')
    func(a,b)
  return inner
@w1
def tes(a,b):
    print('a=%d,b=%d'%(a,b))
tes(1,2)
# 开始验证权限
# a=1,b=2

⚽️03 常见Python内置函数

map函数

map函数会根据提供的函数对指定的序列做 映射。 map函数的定义如下:

map(function, iterable,…)

第1个参数是函数的名称;第2个参数表示支持迭代的容器或者迭代器。 map函数的作用是以参数序列中的每个元素分别调用function函数,把每次调用后返回的结果保存为对象。

func = lambda x:x+2
result = map(func, [1,2,3,4,5])
print(list(result))

filter函数

filter函数会对指定序列执行 过滤操作。 filter函数的定义如下:

filter(function,iterable)

第1个参数可以是函数的名称;第2个参数表示的是序列、支持迭代的容器或迭代器。

func = lambda x:x%2
result = filter(func, [1, 2, 3, 4, 5])
print(list(result))

3️⃣ 本章小结----知难易🏆🏆🏆

😊😊😊人生是跋涉,也是旅行;是等待,也是重逢;是探险,也是寻宝;是眼泪,也是歌声!

本章继续带大家探讨了函数的高级内容,包括 闭包、装饰器,以及与序列相关的3个内置函数。通过对本章内容的学习,大家应该对函数有了更深地理解,并能够熟练地应用到开发中。

4️⃣ 小试牛刀----习题讲解🌈🌈🌈

🏃 🏃 🏃本期问题

✍第一题

1.将一个正整数分解质因数。例如:输入90,打印出90=233*5。

# -*-coding:utf-8 -*-
# @Author:到点了,心疼徐哥哥
# 奥利给干!!!
# 14.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
num = int(input('请输入:'))
for i in range(2, num):
    while num!=1:
        if num % i == 0:
            num = num / i
            if num==1:
                print('%d'%i,end='')
            else:
                print('%d*'%i,end='')
        else:
            break

✍第二题

2.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

a = int(input('请输入一个数:'))
b = int(input('请输入多少个数相加:'))
c=0
d = 0
for i in range(b):
    c=c+a*10**i
    d += c
print(d)
目录
相关文章
|
9天前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
159 99
|
9天前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
143 98
|
13天前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
3月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
267 0
|
2月前
|
Python
Python 函数定义
Python 函数定义
101 1
|
21天前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
110 0
|
2月前
|
数据挖掘 数据处理 C++
Python Lambda:从入门到实战的轻量级函数指南
本文通过10个典型场景,详解Python中Lambda匿名函数的用法。Lambda适用于数据处理、排序、条件筛选、事件绑定等简洁逻辑,能提升代码简洁性和开发效率。同时提醒避免在复杂逻辑中过度使用。掌握Lambda,助你写出更高效的Python代码。
122 0
|
3月前
|
索引 Python 容器
[oeasy]python096_列表_计数函数_count
本教程详细介绍了Python中列表的计数方法`count`,包括其基本用法、与`len`函数的区别,以及如何结合索引操作查找和删除特定元素。同时探讨了字符串对象的`count`方法,并通过实例演示了如何统计字符出现次数。
64 7
|
3月前
|
机器学习/深度学习 数据处理 索引
Python内置函数:面试通关的49个秘密武器
本文精选49个Python高频面试内置函数,涵盖数值处理、类型转换、序列操作、字典集合、函数式编程及高级特性,结合真实代码案例解析底层逻辑与应用场景,助你提升开发效率,轻松应对技术面试。
62 1
|
2月前
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。

推荐镜像

更多