函数的初识
函数的认知
面向过程编程
缺点:
- 代码重复。
- 代码可描述性不高。
初始函数
lis=[1,2,3,4,4,5,6,8,7,1]
def new_len():
s=0
for i in lis:
s+=1
print(s)
new_len()
函数是以功能为导向,一个函数一个功能(常见登陆,注册,文件的操作等)。
函数可以极大提高代码的利用率,减少代码的重复性,增加了代码的可读性。
函数的结构
def 关键字:定义一个函数。python中把一些特殊单词具有特殊意义。
define后面紧跟一个空格,后面加函数名字。例:new_len():
函数名一定要具有可描述性。:分隔符,tab键:四个空格。
函数的调用
lis=[1,2,3,4,4,5,6,8,7,1]
def new_len():
s=0
for i in lis:
s+=1
print(s)
new_len() #函数名加上括号,才是函数的执行者,函数写多少次,就执行多少次。
例如:
lis=[1,2,3,4,4,5,6,8,7,1]
def new_len():
s=0
for i in lis:
s+=1
print(s)
for i in range(2):
print(111)
for i in range(5):
new_len()
#结果:
111
111
10
10
10
10
10
证明函数体出现几次,就执行几次函数
函数的返回值
return的作用
-
直接结束函数。(只在函数当中用)
-
给函数的调用者返回具体的值。
-
函数中没有return或者只有一个return,函数的执行者得到的是None。
![](https://img2018.cnblogs.com/blog/1703505/201906/1703505-20190617163844946-1332847977.png)
- 函数中return后面是单个值,数的执行者得到的是这个值,且返回值与这个值的数据类型相同
- 函数中return后面是多个值,函数的执行者得到的是一个元祖,这些值都是元组中的元素。
- return后面是运算的时候,返回的是运算结果
函数的参数(函数的拓展性)
def new_len(a):#a是形参
count=0
for i in a:
count+=1
return count
li=[1,2,3]
print(new_len(li))#li是实参
实参和形参
实参:
-
位置参数,从左到右,一一对应
def meet(age,money): print(f"年龄{age},月薪{money}") meet("100","200") def text(a,b): if a>b: print(a) else: print(b) return a,b text(9,15) #三元运算 a1=1 b2=2 ret=a1 ifa1>b2 else b2
-
关键字参数
要一一对应,顺序可以不对应
def meet(age,money): print(f"年龄{age},月薪{money}") meet(age="100",money="200") def meet(age,money,weight,high): print(f"年龄{age},月薪{money},身高{high},体重{weight}") meet(age="20",money="20000",weight=120,high=165) ## 顺序无所谓,按照一一对应,数量对就可以,
-
混合参数
位置参数是固定顺序的,关键字参数一定要在位置后面。
def meet(age,money,weight,high): print(f"年龄{age},月薪{money},身高{high},体重{weight}") meet("20","20000",high=165,weight=120)
形参:
-
位置参数
与实参的位置参数一样
-
默认参数
在形参里面直接设置
更改默认参数:
- 在实参里直接定义,覆盖
- 也可以在实参里面按位置参数输入来覆盖
-
动态参数
-
仅限关键字参数(了解)