文章目录
Python核心编程 — 函数基础
1.初始函数
函数概念:在编写程序的过程中,有某一功能代码出现多次,为了提高编写的效率以及代码的重用,把具有独立功能的代码块组织为一个小模块,这就是函数。
函数定义:
语法:def 函数名():
执行代码
函数调用:
语法:函数名()
在函数调用前,必须先定义。
函数说明文档:函数内容的第一行可用字符串进行函数说明
def add(x , y): # 定义函数
"""
该函数进行两个整型数据进行相加,并返回相加后的值
"""
return x + y
result = add(10, 20) # 调用函数
print(result) # 30
2.函数参数
参数:函数为了实现某项特定的功能,得到实现功能所需要的数据。
参数分类:
-
必选参数
-
默认参数[缺省参数]
-
可变参数[不定长参数]
-
关键字参数
2.1 必选参数
def Mul(x, y ): # 形式参数:意义上的一种参数,在定义时不占内存地址
sum = x*y
print(sum)
# 在调用函数时必选参数是必须要赋值
Mul(10, 5) # 实际参数:意义上的一种参数,在定义时不占内存地址
# Mul(20) # 报错
2.2 默认参数
def Mul(x, y=5): # 默认参数始终存在于参数列表中的尾部
print(f"默认参数使用={x*y}") # 100
# 默认参数调用,在调用时如果没赋值,就会使用定义函数时给定的默认值
Mul(20)
2.3 可变参数
def PrintInfo(*args):
print(args) # ('Hello',)
str = "Hello"
PrintInfo(str)
2.4 关键字参数
def Student(name, sex, age):
print(f"我的名字是{name},性别是{sex},今年{age}岁")
Student(name = "小明", age = 20, sex = "男")
Student(sex = "女", age = 18, name = "小红")
Student( "小李", age = 19, sex = "男")
2.5 函数多返回值
按照返回值顺序,写对应顺序的多个变量接收,变量之间用逗号分隔,支持不同数据类型return
def test_return():
return 1,"hello", True
x, y, z = test_return()
print(x) # 1
print(y) # hello
print(z) # True
2.6 嵌套调用
def func_2():
print("----- 2 -----")
def func_1():
print("----- 1 -----")
# 调用func_2函数
func_2()
# 调用完函数会回到该语句
print("----- 3 -----")
# 调用func_1函数
func_1()
2.7 匿名函数
2.7.1 函数作为参数传递
作用:传入计算逻辑,并非传入数据。
# 定义一个函数,接收另一个函数作为传入参数
def test(calculate):
ret = calculate(10, 20)
print(ret)
# 定义一个函数,作为参数传入另一个函数
def calculate(x, y):
return x + y;
# 调用并传入参数
test(calculate) # 30
这是种计算逻辑的传递,并非数据的传递。不仅是相加、相除、等任何逻辑都可自行定义并作为函数传入。
2.7.2 Lambda匿名函数
函数定义:
-
def关键字,可定义带有名称的函数
-
lamda关键字,可定义匿名函数(无名称)
有名称的函数,可基于名称重复使用。
无名称的匿名函数,只可临时使用一次。
语法结构:lamba 传入参数:函数体(一行代码)
-
lamba为关键字,表示定义匿名函数
-
传入参数表示匿名参数的形式参数
-
函数体为函数的执行逻辑,只能写一行代码,无法写多行。
# 定义一个函数,接收其他函数输入
def test(calculate):
ret = calculate(10, 20)
print(ret)
# 通过lambda匿名函数的形式,将匿名函数作为参数传入
test(lambda x, y: x + y) # 30