1.函数目的
目的: 封装一定的功能,比如系统print就封装了打印函数;
减少重复代码的编写;提升代码的复用;提高代码的可读性;参数传递和返回值;分解复杂任务;
2.函数定义(声明)
定义:def 函数名(): pass 又叫方法。
3.函数调用
调用:函数名(),执行一个函数方法。
# 函数方法
# 定义 def 函数名():pass
def name():
print("kong")
# 函数调用
# 调用 函数名()
name()
4.函数形参
形参:形式参数,在函数定义时出现在()中的变量,形参是一个变量,需要使用实参赋值。
# 形参 形式参数 是一个变量 需要使用实参赋值
# 在函数定义时出现在()中
def sister(num):
for i in range(num):
print("ying")
# 实参 实际参数
# 在函数调用时出现在()中
sister(5)
print("------------")
sister(2)
5.函数实参
实参:实际参数,在函数调用时出现在()中的数值。
# 形参 形式参数 是一个变量 需要使用实参赋值
# 在函数定义时出现在()中
def sister(num):
for i in range(num):
print("ying")
# 实参 实际参数
# 在函数调用时出现在()中
sister(5)
print("------------")
sister(2)
6.函数返回值
函数返回值:函数的执行结果。如果没有写return,返回None;return 可以返回多个数据,会将多个数据放入元组返回;return代表函数执行结束 后续代码不在执行;函数一旦返回后续代码不在执行 return 在函数内部可以终止无数层循环。
s = "输入数字"
s = input(s)
num = int(s)
print(num)
# 函数的返回值
# 执行print 返回None 如果函数没有return 默认返回None
print("hello")
# 执行max 返回数字
r = max(1, 2)
print(r)
def my_print():
print("haha")
# my_print 内部没有return 默认返回None
my_print()
def my_max(a, b):
# return 代表函数功能执行结束 后续代码不再执行
return 1, 2, 3, a + b
# 变量r用于接受函数计算结果
r = my_max(1, 2)
print(r)
7.函数的参数类型
位置参数(Positional Arguments):按照参数的位置顺序传递给函数,可以有任意多个位置参数。
关键字参数(Keyword Arguments):通过参数名来传递给函数,可以有任意多个关键字参数。
默认参数(Default Arguments):给参数指定默认值,在调用函数时如果没有传递对应参数,则使用默认值。
可变参数(Variable Arguments):接收任意数量的位置参数,可以使用*来定义。
关键字可变参数(Keyword Variable Arguments):接收任意数量的关键字参数,可以使用**来定义。
def my_fun(n, *args, info="hh", tips="xfmm", msg="xx", **kwargs):
"""
:param tips: 关键字参数
:param n:位置参数 按位置赋值
:param args:可变元组参数
:param info:关键字参数
:param msg:关键字参数
:param kwargs:字典参数
:return:
"""
for name in args:
print(f"{n}{args}{info}{msg}{tips}{kwargs}")
my_fun(1, "xk", "xx", msg="xhkl", info="jh", more1="ldjh", more2="yqjh")
8.匿名函数
匿名函数也被称为lambda函数。匿名函数是一种没有名称的函数,可以在任何需要函数对象的地方使用,通常用于一次性的简单函数。匿名函数可以作为其他函数的参数传递,也可以作为其他函数的返回值。
lambda关键字定义匿名函数的语法:lambda 参数列表: 表达式。
特点:只能包含单个表达式,不能包含多个语句或复杂的逻辑;返回值就是表达式的结果。