Python基础入门 --- 7.函数

news/2024/7/5 3:44:00

Python基础入门

第七章:

7.函数

7.1 函数多返回值

按照返回值顺序,写对应顺序的多个变量接收,变量之间用逗号分隔,支持不同数据类型return

def test_return():
    return 1,"hello", True

x, y, z = test_return()
print(x) # 1
print(y) # hello
print(z) # True
7.2 函数多种传参方式

参数种类:

  • 位置参数

  • 关键字参数

  • 缺省参数

  • 不定长参数

7.2.1 位置参数

概念:调用函数时根据函数定义的参数位置来进行传递参数。

def Student(name, sex, age):
    print(f"我的名字是{name},性别是{sex},今年{age}岁") # 我的名字是小明,性别是男,今年18岁
Student("小明", "男", 18)

补充:传递的参数和定义的参数顺序及个数需相同。

7.2.2 关键字参数

概念:函数调用时通过‘键=值’形式传递参数。

作用:让函数更加清晰、易使用,清除了参数的顺序需求。

def Student(name, sex, age):
    print(f"我的名字是{name},性别是{sex},今年{age}岁")
Student(name = "小明", age = 20, sex = "男")
Student(sex = "女", age = 18, name = "小红")
Student( "小李", age = 19, sex = "男")

补充:函数调用时,如有位置参数,位置参数须在关键字参数前,但关键字参数之间不分先后顺序。

7.2.3 缺省参数

概念:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,函数调用时可不传该默认参数的值,所有位置参数必须出现在默认参数前,包括函数定义以及调用。

作用:函数调用时没传递参数,就会使用默认值用缺省参数对应的值。

补充:函数调用时,如果为缺省参数传值则修改默认参数值,否则使用该默认值。

7.2.4 不定长参数

概念:不定长参数也叫可变参数,用于不确定调用时会传递多少个参数(可不传参)的场景。

作用:函数调用时不确定参数个数时,可用不定长参数

类型

  • 位置传递

  • 关键字传递

位置传递
def Student(*args):
    print(args)
Student("小明", "211515", 20) # ('小明', '211515', 20)
Student("小红",  18)          # ('小红', 18)

补充:传进的所有参数都会被args变量收集,其会根据传进参数的位置合并成一个元组,args是元组类型,这就是位置传递。

关键字传递
def Student(**kwargs):
    print(kwargs) # {'name': '小明', 'sex': '男', 'age': 18}
Student(name="小明", sex="男", age=18)

补充:参数是‘键=值’形式的形式情况下,所有的‘键=值’都会被kwargs接受,会根据‘键=值’组成字典。

7.3 匿名函数
7.3.1 函数作为参数传递

作用:传入计算逻辑,并非传入数据。

# 定义一个函数,接收另一个函数作为传入参数
def test(calculate):
    ret = calculate(10, 20)
    print(ret)

# 定义一个函数,作为参数传入另一个函数
def calculate(x, y):
    return x + y;

# 调用并传入参数
test(calculate) # 30

这是种计算逻辑的传递,并非数据的传递。不仅是相加、相除、等任何逻辑都可自行定义并作为函数传入。

7.3.2 Lambda匿名函数

函数定义

  • def关键字,可定义带有名称的函数

  • lamda关键字,可定义匿名函数(无名称)

有名称的函数,可基于名称重复使用。

无名称的匿名函数,只可临时使用一次。

语法结构:lamba 传入参数:函数体(一行代码)

  • lamba为关键字,表示定义匿名函数

  • 传入参数表示匿名参数的形式参数

  • 函数体为函数的执行逻辑,只能写一行代码,无法写多行。

# 定义一个函数,接收其他函数输入
def test(calculate):
    ret = calculate(10, 20)
    print(ret)

# 通过lambda匿名函数的形式,将匿名函数作为参数传入
为参数传入
test(lambda x, y: x + y) # 30

下一章:Python基础入门 — 6.数据容器


http://lihuaxi.xjx100.cn/news/2109261.html

相关文章

从零到一构建短链接系统(七)

1.convention目录下创建exception目录,并创建AbstractException类, ClientException类,ServiceException类,RemoteException类 /*** 抽象项目中三类异常体系,客户端异常、服务端异常以及远程服务调用异常** see Clien…

ch6文件操作和异常处理

os.listdir(path) 函数详解 功能: os.listdir(path) 函数用于返回指定目录下的所有文件和文件夹的名字列表,但不包括 . 和 ..。 参数: path: 要列出的目录的路径。 返回值: 一个包含目录下所有文件和文件夹名字的列表。 示例: import ospath "/home/u…

Unicode转码 [ASIS 2019]Unicorn shop1

打开题目 我们买最贵的试试看,结果提示只能输入一个字符 抓包分析一下看看 从中可以发现源代码是如何处理price的 使用的是unicodedata.numeric() 但是我们查看页面源代码,发现页面的编码是utf-8编码 所以,前端html使用的是utf-8&#xff0…

2024全国水科技大会【联合主办】福州水务集团有限公司

福州水务成立于2008年11月,AA信用评级,注册资本21.2亿元。下属各级企业70多家(包括3家国家级高新技术企业、1家A股上市企业)。集团主营供水、排水、环保、温泉文旅、综合服务五大板块,旗下运营自来水厂17座&#xff0c…

python 常用装饰器

文章目录 property的介绍与使用作用使用场景装饰方法防止属性被修改 实现setter和getter的行为 staticmethod 与 classmethod作用代码示例 两者区别使用区别代码演示 abstractmethod参考资料 property的介绍与使用 python的property是python的一种装饰器,是用来修饰…

【No.10】蓝桥杯构造法|两道例题(C++)

什么是构造 构造题 要求解题者通过观察问题的结构和规律,找到一种通用的方法或模式,使得在问题规模增大时,依然能够高效地得到答案。 在解决构造题时,以下几点思考是很重要的: 观察问题规模的增长:了解问题随着规模的增大&…

使用 mypy 做 type check

前言 完残!😂,最近看之前写的 Python 代码老得琢磨这比变量的类型是啥(Python 无类型系统xxx),不愧是我写的! 看段之前写的实现迭代器模式的代码: # 抽象迭代器类 class Iterator(…

HTML世界之标签Ⅴ

目录 一、meter 标签 二、nav 标签 三、noscript 标签 四、object 标签 五、ol 标签 六、optgroup 标签 七、option 标签 八、output 标签 九、param 标签 十、pre 标签 十一、picture 标签 一、meter 标签 <meter> 标签定义度量衡。仅用于已知最大和最小值的…