# 函数的命名
'''
命名规则:
字母数字下划线,首字符不能为数字
严格区分大小写
不能为关键字和中文
'''
# 定义函数
def func():
print()
func() #函数调用
# 收集参数
'''
1、普通收集参数:可以收集单体的实参和形参变量
参数:
*args => arguments
args:形成一个元组
'''
#例一:正向传参
res = [1, 2, 3, 4]
res1 = 10
def func(*args):
print(args)
func(res, res1)
#([1,2,3,4,5],10)
#例二:反向传参
res = [1, 2, 3]
res1 = 4
def func(a, b, c, d):
print(a, b, c, d)
func(res1, *res) #收集参数只能放在后面
# 4,1,2,3
'''
2、关键字收集参数:专门用来收集多余的没人要的关键字实参
**kwargs => keywords=arguments
**kwargs: 形成一个字典
'''
def func(**kwargs):
print(kwargs)
func(a=1,b=2,c=3)
#{'a':1, 'b':2, 'c'=3}
'''
return 返回值
自定义函数的返回值,把值返回到函数的调用处
(1) return + 六种标准数据类型,还有类和对象,函数的命名
无return时,默认返回的是None
(2) 在执行完return之后,立刻终止函数。
'''
def func():
return True
res = func() #变量对象接收函数的return值
'''
global 关键字
1、在函数内部定义一个全局变量
2、在函数内部将已有的变脸修改为全局变量
用法:
'''
# 1、创建全局变量
def func():
gloal a
a = 100
print(a)
# 100
# 2、修改变量为全局变量
a = 100
def func():
global a
print(a)
'''
函数名的使用
函数名作为函数本身的对象
'''
# 1、函数名可以作为一个特殊的变量对象
# 2、作为函数的参数:可以传参
def func():
print("函数")
a = func
a()
# 函数
def func4(f):
f()
func4(func)
# 函数
# 2、函数名作为容器类型数据的元素
def func1():
print(1)
def func():
print(2)
def func():
print(3)
lst = [func1, func2, func3]
print(i)
i()
# 1 2 3
# 3、作为函数的返回值
def func(f):
return f
res = func(func1)
print(res)
# 1
'''
匿名函数:用一行代码表示一个只有返回值的函数
定义语法:
lambda 参数:返回值
调用语法:
func = lambda 参数:返回值
func()
'''
# 无参的lambda表达式
def func():
return "123"
func = lambda : "123"
func()
# 有参的lambda 表达式
def func():
return type(n)
func = lambda n :type(n)
func([1,2,3])
# 带有判断条件的lambda表达式
def func(n):
if n%2 == 0:
return "偶数"
else:
return "奇数"
func = lambda n:"偶数" if n% 2 == 0 else "奇数"
func(17)
# 三元运算符
'''
语法:
真值 if 条件表达式 else 假值,条件表达式为真,返回前面的值,否则~
'''
res = "偶数" if n%2 == 0 else "奇数"