第六章 Python函数

这篇具有很好参考价值的文章主要介绍了第六章 Python函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录
第一章 Python 基础知识
第二章 python 字符串处理
第三章 python 数据类型
第四章 python 运算符与流程控制
第五章 python 文件操作
第六章 python 函数
第七章 python 常用内建函数
第八章 python 类(面向对象编程)
第九章 python 异常处理
第十章 python 自定义模块及导入方法
第十一章 python 常用标准库
第十二章 python 正则表达式
第十三章 python 操作数据库



函数定义与调用

函数:是指一段可以直接被另一段程序或代码引用的程序或代码。

在编写代码时,常将一些常用的功能模块编写成函数,放在函数库中供公共使用,可减少重复编写程序段和简写代码结构

语法:
def 函数名称(参数1,参数2,…):
<代码块>
return <表达式>

# 示例
def hello():
    print("hello world!!!")
hello()  # 调用函数

def h2():
    return "123"
print(h2())

第六章 Python函数,python3 基础知识,python,开发语言

函数参数

接受函数

<示例:求和函数
def f(a, b):
return a + b
print(f(1,2)) # 按参数位置赋值
print(f(b=2,a=1)) # 按对应关系赋值

示例:生成序列列表
def seq(n):
result = []
x = 0
while x < n:
result.append(x)
x += 1
return result
print(seq(9))

# 传参
def h2(n):
    # return "hello %s" %{n}
    return f"hello {n}"
print(h2('wang'))
# 求和
def SUM(a,b):
    c = a+b
    return c
print(SUM(3,4))
print(SUM(a=1,b=2))
# 生成序列列表
def seq(n):
    result = []
    x = 0
    while x <= n:
        result.append(x)
        x += 1
    return result
print(seq(9))

第六章 Python函数,python3 基础知识,python,开发语言

参数默认值

参数默认值:预先给参数定义默认值,如果调用函数时没指定该值,则用默认值。
示例:
def f(a, b=2):
return a + b
print(f(1))
print(f(1,3))

# 求和
def SUM(a,b=2):
    c = a+b
    return c
print(SUM(3))
print(SUM(3,7))
print(SUM(a=1))

第六章 Python函数,python3 基础知识,python,开发语言

接受任意数量参数

前面学习的是固定参数数量,当不知道有多少个参数时可以再参数前面加 *,表示可接受任意多个参数
*name 接受任意多个参数,并放到一个元组中
**name 接受一个键值,并存储为字典

示例:传入多个参数,计算总和
def func(*seq):
x = 0
for n in seq:
x +=n
return x

print(func(1,2,3))

示例:传入多个键值,进行处理
def func(**computer):
for k,v in computer.items():
print(“名称:%s\t价格:%s” %(k,v))

func(主机=5000,显示器=1000,鼠标=60,键盘=150)

# 参数默认值
def func(*sq):
    print(sq)
func(1,2,3,4,5,6)
print('==========')
def func(**sq):
    print(type(sq))
    print(sq)
func(a=1,b=2,c=3,d=4,e=5,f=6)
print('==========')
def func(*args,**kwargs):
    print(args)
    print(kwargs)
func(1,2,3,4,a=1,b=2,c=3)
print('==========')
def func(*seq):
    x = 0
    for n in seq:
        x +=n
    return x

print(func(1,2,3))
print('==========')
def func(**computer):
    for k,v in computer.items():
        print("名称:%s\t价格:%s" %(k,v))

func(主机=5000,显示器=1000,鼠标=60,键盘=150)

第六章 Python函数,python3 基础知识,python,开发语言

匿名函数(Lambda)

匿名函数:没有名字的函数,使用lambda关键字定义,一般仅用于单个表达式。

示例:求和函数
s = lambda a,b:a+b
print(s(1,2))
等价于:
def func(a,b)
return a+b

# 匿名函数(Lambda)
s= lambda a,b:a+b
print(s(6,7))

t = lambda x: "偶数" if x % 2 == 0 else "奇数"
print(t(7))
print(t(6))

第六章 Python函数,python3 基础知识,python,开发语言

作用域

作用域:限制一个变量或一段代码可用范围。好处是提高程序逻辑的局部性,减少名字冲突
第六章 Python函数,python3 基础知识,python,开发语言

  • Local(局部作用域):在函数中定义的变量
  • Enclosed(嵌套作用域):一般出现在函数中嵌套一个函数时,在外部函数中的作用域称为嵌套作用域(闭包常见)
  • Global(全局作用域):文件顶层定义的变量
  • Built-in(内置作用域):系统内解释器定义的变量,例如关键字
# 作用域
a = 2 # 全局变量
def func():
    b = 3 # 局部变量
    print(b)
    global c # 把C定义为了全局变量
    c = 4
func()
print(a)
print(c)

# 嵌套
x = 123
def outer():
    x = 456
    def inner():
        print(x)
    return inner()
outer()

# 内置变量
import builtins
print(dir(builtins))

第六章 Python函数,python3 基础知识,python,开发语言

闭包

闭包:你可以简单粗暴地理解为闭包就是一个定义在函数内部的函数,闭包使的变量即使脱离了该函数的作用域范围也依然能被访问到。像上面所说的嵌套函数也是闭包的一种形式(将内部嵌套定义的函数作为返回值)

示例:
def outer():
x = 1
def inner():
print(x) # 1
return inner # 不加括号,便是返回函数体
sf = outer()
sf() #调用,等同于outer()()

在一个外部函数内定义了一个函数,内部函数里引用外部函数的变量,并且外部函数的返回值是内函数的引用,这样就构成了一个闭包,并且满足了闭包的三个条件:
1.两层以上嵌套关系
2.内部函数调用外部函数定义的变量
3.外部函数返回内部函数体对象,而不是函数体结果(加括号)

# 闭包
x = 123
def outer():
    x = 456
    def inner():
        print(x)
    return inner
s = outer()
s()
outer()()

第六章 Python函数,python3 基础知识,python,开发语言

函数装饰器

函数装饰器作用:装饰器本质上是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象

应用场景:记录日志、性能测试、权限校验等

无参数

示例:装饰器使用

# 函数装饰器:无参数
def hello():
    print("我是原函数")
def decorator(func):
    def f():
        print("记录一下开始")
        func()
        print("记录一下结束")
    return f
dec = decorator(hello) # 装饰器传入函数
dec()                  # 调佣内部函数
# decorator(hello)()

第六章 Python函数,python3 基础知识,python,开发语言

Python提供一个更简洁引用装饰器的方法:语法糖"@"
示例:
@decorator
def hello():
print(“我是原函数”)
hello

# 函数装饰器:无参数
def decorator(func):
    def f():
        print("记录一下开始")
        func()
        print("记录一下结束")
    return f
@decorator
def hello():
    print("我是原函数")
hello()
print("==========")
@decorator
def hello2():
    print("hello word")
hello2()

带参数

示例:
def decorator(func):
def f(msg):
print(“原函数开始执行了”)
func(msg)
print(“原函数执行结束了”)
return f

@decorator
def hello(msg):
print(msg)

hello(“我是原函数”)

# 函数装饰器:无参数
def decorator(func):
    def f(*name,**msg):
        print("记录一下开始")
        func(*name,**msg)
        print("记录一下结束")
    return f
@decorator
def hello(*name,**msg):
    print(name,msg)
    print("我是原函数")
hello(1,2,3,4,5,6,7,a=1,b=2,c=3)
print("==========")
@decorator
def hello2():
    print("hello word")
hello2()

第六章 Python函数,python3 基础知识,python,开发语言


总结

以上就是今天学习的内容,本文仅仅简单介绍了python3 的函数的定义和调用,以及函数参数,作用域,闭包,函数装饰器。文章来源地址https://www.toymoban.com/news/detail-742543.html

到了这里,关于第六章 Python函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《python语言程序设计基础》(第二版)第六章课后习题参考答案

    第六章 组合数据类型 6.1 随机密码生成 6.2 重复元素判定 6.3 重复元素判定续 6.4 文本字符分析 6.5 生日悖论分析 6.6 《红楼梦》人物统计 注:上述代码仅供参考,若有问题可在评论区留言! 《红楼梦》及人物名单TXT (百度云链接失效可在评论区留言) 链接:https://pan.baidu.c

    2024年02月05日
    浏览(56)
  • python头歌-python第六章作业

    第1关 列表的属性与方法 第2关 推导式与生成器 第3关 列表的合并与排序 第4关 二维列表排序 第5关 动物重量排序 第6关 身份证号升位 第7关 完美立方数 第8关 约瑟夫环问题 第9关 统计英文文件中的单词数

    2024年04月22日
    浏览(33)
  • Python第六章作业

    目录 第1关 列表的属性与方法 第2关 推导式与生成器 第3关 列表的合并与排序 第4关 二维列表排序 第5关 动物重量排序 第6关 身份证号升位 第7关 完美立方数 第8关 约瑟夫环问题 第9关 文本分析(2)——统计英文文件中的单词数 第1关 列表的属性与方法 初始化一个空

    2024年02月05日
    浏览(47)
  • 【头歌-Python】Python第六章作业(初级)

    初始化一个空列表,输入一个正整数 n。 接下来,你将被要求输入 n 个指令,每得到一个指令后,根据指令的字符串进行对应的功能操作。 指令形式及对应功能如下: 第一行输入一个正整数 n‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪

    2024年02月08日
    浏览(49)
  • [Python物联网]Python基础知识和语法--控制流和函数--Python快速上手开发物联网上位机程序

    目录 一、前言         二、条件语句 三、循环语句         1.for循环         2.while循环 四、函数 五、总结         Python的控制流语句允许程序根据特定条件执行不同的代码块。Python中的常见控制流语句包括 条件语句 和 循环语句 。在本篇文章中,我们将讨论

    2024年02月04日
    浏览(68)
  • 系统学习Python——装饰器:函数装饰器-[添加装饰器参数:基础知识]

    分类目录:《系统学习Python》总目录 前面文章介绍的计时器装饰器有效运行,但是如果它可配置性更强的话,就会更好一一一例如提供一个输出标签并且可以打开或关闭跟踪消息,这些在一个多用途工具中可能很有用。装饰器参数在这里派上了用场:对它们适当编写后,我们

    2024年02月22日
    浏览(38)
  • 第六章 矩阵函数

    就是 f ( x ) 变成了 f ( A ) 就是 f(x) 变成了 f(A) 就是 f ( x ) 变成了 f ( A ) 难点在于 A k A^k A k 不好算。 解决方案是利用 J o r d a n Jordan J or d an 标准型来做。 f ( A ) = P d i a g ( f ( J 1 ) , f ( J 2 ) , … , f ( J r ) ) P − 1 Large f(A) = Pdiag(f(J_1),f(J_2),dots,f(J_r))P^{-1} f ( A ) = P d ia g ( f ( J 1 ​

    2024年02月04日
    浏览(35)
  • python数据分析与应用:第六章课后实训--应用sklearn分析竞标数据(全)

    实验时间 2023-04-26 (gcc的同学不要抄袭呀!) 一、实验目的 1、掌握skleam转换器的用法。 2、掌握训练集、测试集划分的方法。 3、掌握使用sklearm进行PCA降维的方法。 4、掌握 sklearn 估计器的用法。 5、掌握聚类模型的构建与评价方法。 6、掌握分类模型的构建与评价方法。

    2024年02月08日
    浏览(100)
  • python数据分析与应用:使用scikit-learn构建模型分析 第六章实训(1,2)

    有问题可以加我微信交流学习,bmt1014 (gcc的同学不要抄袭呀!) 一、实验目的 1、掌握skleam转换器的用法。 2、掌握训练集、测试集划分的方法。 3、掌握使用sklearm进行PCA降维的方法。 4、掌握 sklearn 估计器的用法。 5、掌握聚类模型的构建与评价方法。 6、掌握分类模型的构

    2024年02月09日
    浏览(51)
  • (数字图像处理MATLAB+Python)第六章图像平滑-第一节:图像平滑概述和空间域平滑滤波

    图像平滑(Image Smoothing) :是一种数字图像处理技术,用于减少图像中的 噪声 和 不规则性 ,使图像更加平滑和连续。在图像中,噪声通常表现为不规则的、突出的像素值,这可能会导致图像细节丢失,使其难以进行分析和处理。图像平滑技术可以通过对像素值进行滤波来

    2023年04月24日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包