函数
概念:就是把剧透独立功能的代码块,组织为一个小模块,在需要的使用调用
函数,通俗理解,将多行代码写在一块,起个名字,在需要多行代码的时候,可以直接使用这个名字来代替
函数的好处:减少代码的冗余(重复的代码不用多写),提高程序的效率
- 函数定义:
1.将多行代码放在一块,起名字的过程,称为函数定义
2.函数必须先定义后调用
语法:
def 函数名():
函数中的代码
#1.def 是关键字,用来定义函数的,define的缩写
#2.函数名需要遵守标识符的规则
#3.处于def 缩进中的代码,称为函数体
#4.函数定义的时候,函数体中的代码不会执行,在调用的时候才会执行
函数定义小技巧
在前期,书写不熟练的时候
1.可以先不管函数,先把功能写出来
2.给多行代码起名字
3.选中多行代码,使用tab键进行缩进
函数的调用
1.使用多行代码的时候,称为函数调用
语法
函数名()
#1.函数调用的时候会执行函数体中的代码
#2.函数调用的代码,要卸载函数体的外边
- 文档注释
文档注释的本质还是注释,只不过书写的位置和作用比较特殊。
1.书写位置,在函数名的下方使用,三对引号进行的注释
2.作用:告诉别人这个函数如何使用的,看什么的
3.查看,在调用的时候,将光标放到函数名上,使用快捷键ctrl +q (windows),ctrl +j (mac)
def say_hello():
"""打印三个Hello"""
print('hello 1')
print('hello 2')
print('hello 3')
- 调用
say_hello()
- 函数的嵌套调用
在一个函数定义中调用另一个函数
1.函数定义不会执行函数体中的代码
2.函数调用会执行函数体中的代码
3.函数体代码执行结束会回到函数被调用的地方继续向下执行
def func1():
print(1)
print("func1")
print(2)
def func2():
print(3)
func1()
print(4)
print(5)
func2()
print(6)
# 5 3 1 2 4 6
- 函数参数:
在函数定义的时候,使用变量代替具体的数据值(进行占位),在函数调用时,传递具体的数据值
好处:让函数更加通用,能够解决类似问题,而不是单纯的一个
#1.定义一个函数,my_sum,对两个数字进行求和计算
#num1和num2是函数定义时候的参数,起到占位的作用,没有具体的数据值,称为形式参数,简称形参
def my_sum(num1,num2):
num = num1+num2 # 在函数中使用的数据会变化的时候,就可以定义为参数
print(num)
# 在函数调用的时候,括号中的数据会传递给形参,是具体的数据值,称为实际参数,简称实参
my_sum(10,20)
my_sum(1,2)
# 目前书写的函数,在定义的时候如果有形参,那么在调用的时候,必须传递实参值,个数要对应,否则会报错
- 函数的返回值:
函数的返回值,可以理解为是 函数整体执行的结果是什么
函数中得到的数据在后续的代码中还要使用,这个时候就应该将这个数据作为返回值返回,以供后续使用
print() —> None
input() —> 键盘输入的内容
type() —> 类型
len() —> 数据的长度(元素的个数)
在函数中想要将一个数据作为返回值返回,需要使用return关键字(只能在函数中使用)
作用:
1.将数据值作为返回值返回
2.函数代码执行遇到return,会结束函数的执行
def my_sum1(a,b):
num = a + b
# print(num) # 代码中没有返回值,只有print,这个结果只能在函数中用一次,不能后续使用
# 我们想要将这个求和的结果 在后续的代码中使用,需要使用return将求和的结果进行返回
return num
# 1.函数中没有print,只有return,想要查看结果,需要在调用的时候使用print
print(my_sum1(4,5))
# 2.想要将函数中返回的结果,在后续代码中使用,即需要将这个数据保存下来,需要用使用变量来接收(保存)函数的返回值(执行结果)
# 变量 = 函数()
# 将求和的结果保存到变量result中,可以在后续代码中使用
result = my_sum1(6,7)
print("使用:1,直接打印:",result)
print("使用:2,对数字加10:",result + 10)
- 返回值的说明
def 函数名():
# 代码中没有return
passdef 函数名():
# return 后面没有数据,返回值None
returndef 函数名():
# 返回值xx
return xx
- 函数传参
位置传参: 在函数调用的时候,按照形参的顺序,将实参传递给形参
关键字传参: 在函数调用的时候,指定数据值给到那个形参
混合使用:
1.关键字穿can必须卸载位置传参的后面
2.不要给一个形参传递多个数据值
def func(a,b,c):
print(f'a:{a},b:{b},c:{c}')
# 位置传参:
func(1,2,3)
# 关键字传参
func(a=2,b=3,c=1)
#混合使用
func(1,3,c=5)
- 缺省参数
又可称为默认参数
列表.pop() # 不写参数,删除最后一个
列表.sort(reverse=True)
1.定义方式
在函数定义的时候,给形参一个默认的数据值,这个形参就变为缺省参数,注意,缺省参数的书写要放在普通参数的后边
2.特点(好处)
缺省参数,在函数调用的时候,可以传递实参,也可以不传递实参值
如果传参,使用的就是传递的实参值,如果不传参,使用的就是默认值
‘’’
def show_info(name,sex='保密'):
print(name,sex)
show_info('小王')
show_info('小王','男')