函数介绍
如果在开发程序时,需要多次调用某一部分代码,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码组织为一个小模块,这就是函数。
格式:
def 函数名称():
。。。函数体。。。–>要执行的内容
一、创建一个say_hello函数
def say_hello():
print('hello')
say_hello()
print('程序结束了')
注意事项:
1、必须先创建函数后调用函数。
2、一般情况下不要用函数放到函数体里面。
3、函数可以调用多次。
函数的注释
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
查看函数注释的快捷键: ctrl+ q
二、函数的参数
函数的参数主要的作用是将函数外的数据带入到函数体执行逻辑判断。
格式
def 函数名(参数1,参数2,参数3,…):
。。。函数体。。。
调用的时候,这个函数定义时有几个参数,就需要传递几个参数。
默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
定义时小括号中的参数,用来接收参数用的,称为 “形参”。
调用时小括号中的参数,用来传递给函数用的,称为 “实参”。
定义一个有参数的函数
def sum_num(aa,bb):#函数名(形参)
num1=aa
num2=bb
num3=num1*num2
print(num3)
sum_num(2,3)#调用函数,(实参)
sum_num(22,11)
sum_num(22,11)
三、函数参数的类型
1、不可变类型参数:整数、字符串、元组。
func(a)内部修改 a的值,只是修改另一个复制的对象,不会影响 a 本身。
2、可变类型:列表,字典。
如 func(la),则是将 la 真正的传过去,修改后func()外部的la也会受影响。
(1)、不可变类型:
a=10000
def func(b):
print(b)
print('b的地址——>',id(b))
b=200
print(b)
print('b的地址——>',id(b))
func(a)
print(a)
print('a的地址——>',id(a))#a和b的地址相同,因此值也是相同的。
(2)、可变类型:
outter_list=[1,2,3]
print('outter_list的值和id-->',outter_list,id(outter_list))
def func(inner_list):
print(inner_list)
inner_list.append(4)
print('inner_list的值和id-->',inner_list,id(inner_list))
func(outter_list)
print('outter_list的值和id-->',outter_list,id(outter_list))
四、函数的返回值
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果。调用者根据需求利用返回值做不同的操作。
格式:
def 函数名():
。。。函数体。。。
。。。return 值1,值2,…
def sum_num(aa,bb):
num3=aa+bb
print(id(num3))
return num3
ret=sum_num(1,2)#定义一个变量ret来接受函数的返回值,ret=num3
print(ret)#拿到返回值后可以做后续的逻辑操作,例如下:
print(id(ret))#查看id地址
if ret>10:
pass
else:
pass
注意:
1.如果函数不写返回值,默认返回None.
def func():
print('func...')
return
ret=func()
print(ret)
2.return 关键字有两个作用,一个作用是返回内容,另一个作用是结束此方法。
3.return 关键字后面不允许再写代码。
五、函数的嵌套与嵌套调用
函数的嵌套就是函数里面嵌套函数。
例1、
def outter():
print('aaa')
def inner():
print('bbb')
inner()
outter()#先aaa,后bbb
例2、
def func1():
print('func1...')
def func2():
func1()
print('func2...')
def func3():
func2()
print('func3...')
func3()#func1... func2.. func2...