函数
文章目录
一、引例
# 计算字符串长度,代码如下:
str1 = "aaa"
str2 = "aaaa"
str3 = "aaaaa"
def fun(str):
count = 0
for i in str:
count += 1
print(count)
fun(str1)
fun(str2)
fun(str3)
二、函数的定义
def fun()
print("Hello!")
fun()
三、函数参数的传入
# 两数相加,代码如下:
def add(a, b):
print(f"{a}+{b}的结果是:{a+b}")
add(1, 2)
# 温度检测,代码如下:
a = int(input())
def fun(a):
if a <= 37:
print("体温正常")
else:
print("体温异常")
fun(a)
四、函数的返回值
# 两数相加,代码如下:
def add(a, b):
c = a + b
return c
d = add(1,2)
print(d)
# 温度检测,代码如下:
a = int(input())
def fun(a):
if a <= 37:
print("体温正常")
else:
print("体温异常")
fun(a)
五、函数的说明文档
def add(a, b):
"""
add函数实现两数相加
:paprm a: 形参a表示相加的其中一个数字
:paprm b: 形参b表示相加的其中一个数字
:return: 返回结果值
"""
c = a + b
return c
d = add(1,2)
print(d)
六、函数的嵌套调用
函数A调用函数B,当函数B全部执行完成后才继续执行A
七、参数的作用域
局部>嵌套外层>全局>内置
局部参数出了函数后,将会重新赋为全局变量,global可以将函数内定义的局部变量变为全局变量
num = 100
def fun():
global num
num = 200
print(num)
八、函数的多返回值
若一个函数有上下两行return,则只会返回第一行的值
def fun():
return 1, "Python", True
x, y, z = fun()
九、函数的多种传参方式
1.位置参数
根据定义的参数位置来传递参数
def fun(name, score)
print(f"姓名:{name},分数:{score}")
fun(stu1, 100)
2.关键字参数
键等于值,可以不按定义参数的顺序
位置参数和关键字参数混用时,位置参数需要放在前面
def fun(name, score)
print(f"姓名:{name},分数:{score}")
fun(name = "stu1", score = 100)
3.不定长参数
可变参数,不确定调用时是否使用参数以及使用参数的个数
分为位置传递和关键字传递
# 位置传递的不定长,以元组形式存在
def fun(*args):
print(args)
fun('Tom')
fun('Tom', 18)
# 关键字传递的不定长,以字典形式存在
def fun(**kwargs):
print(kwargs)
fun(name= 'Tom', age = 20)
4.缺省参数
设定某些参数为默认值,默认值需要写在最后面
def fun(name, score,age = '20')
print(f"姓名:{name},分数:{score}")
fun(name = "stu1", score = 100)
十、函数作为参数传递
1.函数作为函数的参数
将函数作为参数传入另一个函数 ,是计算逻辑的传递,而非数据的传递。
常见的函数:计算逻辑确定,数据不确定
函数传递:数据确定,执行逻辑不确定
def add(x, y):
return x + y
def fun(function):
result = function(1, 2)
print(result)
fun(add)
2.lambda匿名函数
def关键字,定义有名称函数
lambda关键字,定义匿名函数(无名称),函数体只能写一行
有名称的函数,可以基于名称重复使用;无名称的匿名函数,只可临时使用一次。
def fun(add):
result = add(1, 2)
print(result)
fun(lambda x, y: x + y)