函数
函数定义:
函数是组织好的,可重复使用的,用来实现独立功能的代码段。
函数可以提高程序代码的重用率。
def 函数名():
函数封装的代码
1.def是英文define(定义)的缩写
2.函数名称应该能够表达函数封装代码的功能,方便后续调用
3.函数名符合标识符命名规则
4.函数先定义,后调用
5.函数不调用,不执行
6.函数可以调用多次
函数调用:
通过 函数名()即可完成对函数的调用
#从上向下执行程序
def say():#定义函数
print("1.嗯")
print('2.哈')
print("3.嘿")
#只有在程序中,主动调用函数,才会让函数执行
say()#函数的调用不能放在函数定义上方
运行结果:
函数调用的本质
#函数调用的本质:本质是函数名对应的内存地址()
def xiaogou():
print('ni好')
print(id(xiaogou))
d=xiaogou#将xiaogou的内存地址赋值给d变量
print(id(d))
d()
运行结果:
def hs():
print(i+1)
i=5
a=hs
b=hs
a()
i=7
b()
"""
运行结果:
6
8
"""
定义带有参数的函数
def qiuhe(a,b):#定义的时候,成为形参,因为它没有实际的的值,给它什么值,他就是什么值,没有数据,占了位置
c=a+b
print(c)
qiuhe(2,3)#5 实参:调用的时候,参数为实参有实际的值了
qiuhe(5,6)#11
函数的参数
位值参数
#位置参数
def hs(a,b):
c=a+b
print(c)
hs(2,3)
#hs(2,3,4)#不对,必须是一一对应着的参数
'''
运行结果:
5
'''
关键字参数
# 关键字参数,针对实参
def hs(a, b, c):
print(a, b, c)
# 关键字参数和位置参数同时使用时,关键字参数必须在位置参数后面 定义
hs(c=1, a=2, b=3)
hs(2, 3, c=7) # 关键字参数,针对实参,这里正确
# hs(a=2,3,4)#比如这里,报错
"""
运行结果:
2 3 1
2 3 7
"""
默认参数
#默认参数:写在形参里面
def dengji(name,age,sex='男'):
print(name,age,sex)
dengji("张三",19)
dengji("李四",20,'男')
dengji('王五',21,'女')#女 会修改默认参数 男
"""
运行结果:
张三 19 男
李四 20 男
王五 21 女
"""
可变参数
元组参数 *args
#元组参数
def kb(*a):#通过给形参前面添加*号,使参数变成一个元组,所有传递的参数变成元组的元素
print(a,type(a))#元组
kb(1)#(1,) <class 'tuple'>
kb(