函数的作用
--函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段
--函数能提高应用的模块性和代码的重复利用率
--python内置函数:内置函数 — Python 3.8.14 文档
函数定义
def:函数定义关键词
function_name:函数名称
():参数列表放置的位置,可以为空
parameter_list:可选,指定向函数中传递的参数
comments:可选,为函数指定注释
function_boby:可选,指定函数体
# 函数定义
# def:函数定义关键词
# function_name:函数名称
# ():参数列表放置的位置,可以为空
# parameter_list:可选,指定向函数中传递的参数
# comments:可选,为函数指定注释
# function_boby:可选,指定函数体
# def function_name([parameter_list]):
# ['''comments''']
# [function_boby]
# 定义函数
def func_demo():
# 函数体
print('这是一个函数')
# 定义传参数的函数
def fuc_demo(a, b, c):
'''这是一个携带参数的函数'''
print(f"传入的参数为a={a},b={b},c={c}")
定义函数的注意事项
缩进:python是通过严格的缩进来判断代码快儿
--函数体和注释相对已def关键字必须保持一定的缩进,一般都是4个空格
--pycharm自动格式化快捷键:ctrl+alt+L
定义空函数
--使用pass语句占位
--写函数注释comments
函数调用
function_name:函数名称
parameter_value:可选,指定各个参数的值
# 定义函数
def func_demo():
# 函数体
print('这是一个函数')
# 函数调用
# function_name:函数名称
# parameter_value:可选,指定各个参数的值
func_demo()
参数传递
形式参数:定义函数时,函数名称后面括号中的参数
实际参数:调用函数时,函数名称后面括号中的参数
# 参数传递
# 形式参数:定义函数时,函数名称后面括号中的参数
# 实际参数:调用函数时,函数名称后面括号中的参数
# a,b,c为形式参数
def demo_test(a, b, c):
return
# 1,2,3为实际参数
demo_test(1, 2, 3)
位置参数
数量必须与定义时一致
位置必须与定义时一致
# 位置参数
# 数量必须与定义时一致
# 位置必须与定义时一致
def demo_test(a, b, c):
return
# 1传给a ,2传给b ,3传给c
demo_test(1, 2, 3)
关键字传参数
使用形式参数的名字确认输入的参数值
不需要与形式参数的位置完全一致
# 关键字传参数
# 使用形式参数的名字确认输入的参数值
# 不需要与形式参数的位置完全一致
def demo_test(name, age):
if age >= 18:
print(f"{name} 已经成年")
else:
print(f"{name}没有成年")
demo_test(age=18,name="han")
默认参数
加在形式参数的最后面,且给与默认值,且为不可变对象
# 关键字传参数
# 使用形式参数的名字确认输入的参数值
# 不需要与形式参数的位置完全一致
def demo_test(name, age, melo="man"):
if age >= 18:
print(f"{melo} {name} 已经成年")
else:
print(f"{melo} {name}没有成年")
demo_test(age=18, name="han")
函数返回值
# 函数返回值
def sum(a, b):
result = a + b
return result
sum1 = sum(2, 5)
print(sum1)
*args
# *args 接收任意多个实际参数,并将其放到一个元组中
# 其中"*"星号,在定义函数时,压缩任意数量元素的左右;有在调用函数时,有解包的作用。
# 定义函数
def send_language(*args):
print(args)
# 调用函数
send_language("go", "python")
send_language("go", "python", "java")
a = ["go", "python", "java", "php"]
send_language(*a)
**kwargs
# **kwargs
# 接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典中
# 使用已经存在字典作为函数的可变参数,可以在字典的名称前加**
# 定义函数
def print_info(**kwargs):
print(kwargs)
# 调用函数
print_info(tom=18, lili=19)
print_info(tom=18, lili=19, tim=17)
b = {"tom": 18, "lili": 19, "tim": 17}
print_info(**b)
匿名函数
--没有名字的函数
--用lambda表达式创建匿名函数
使用场景
--需要一个函数,但是又不想费神其余命名这个函数
--通常在这个函数只是用一次的场景
--可以指定短小的回调函数
# lambda 表达式
# result 调用表达式
# a 为 传递的参数
result = lambda a: a + 2
# 变量a
a = 3
print(f"参数{a}执行lambda表达式后输出结果为{result(a)}")