函数
1.函数存在意义
当一个功能需要反复使用时,如果没有函数每次需要这个功能,就必须把实现功能代码写一遍。如果有函数就可以只写一遍,每次需要时直接调用。
2.定义函数
实现某一特定功能的代码封装。函数就是将某一类功能的代码打包,为了以后需要这包中相应的功能时不用重新写这段代码,而是使用封装这段代码的函数
3.函数分类
根据函数由谁创建,分为:系统函数、自定义函数
1)系统函数
由python创建好的函数。如:print、input、max、min等
2)自定义函数-----由程序员自己创建的函数
4.定义函数
语法:
def 函数名 (形参列表):
函数说明文档
函数体
(def -----关键字,固定写法)
函数名------由程序员自己命名,三个规范
形参列表-----以变量名1,变量名2,变量名3。。。。。的形式存在,根据情况变量的数据可以为0(每一个变量是一个形参)
形参的作用:将函数外部的数据传递到函数里面(只进不出)
确定形参的方法:看实现函数功能需不需要额外的数据,需要多少个额外的数据
函数说明体------多行注释(相当于说明书)
def jiecheng():
"""
(功能说明区)求一个数的阶乘
param (参数说明)求阶乘的对象
:return:(返回值说明)None
"""
#定义一个函数求阶乘
def jiecheng(num)
sum1=0
for x in range(1,num+1):
sum1*=x
print(sum1)
jiecheng(10)
jiecheng(5)
函数体
结构上:与def保持一个缩进的一条或多条语句
逻辑上:函数体就是实现函数功能的代码
练习:
#1.练习:定义一个函数统计字符串中数字字符的个数
def count_num(str1):
count=0
for x in str1:
if x.isdight():
count += 1
print(count)
count_num("122absabs")
def count_num(str1):
count=0
for x in str1:
if '0'<= x <='9':
count += 1
print(count)
# 练习2:定义一个函数,将两个字符串中所有的大写字母合并成一个新的字符串
def hebing(str1,str2):
str3=" "
for x in str1+str2:
if x.isupper():
str3 += x
print(str3)
# 练习3:定义一个函数,删除列表中所有的空值(包括None,和其他空值(比如空字符串、空列表、空元组等))
def del_none(list1):
for x in list1:
if not x:
list1.remove(x)
print(list1)
5.使用函数
语法:
函数名(实参列表)
说明:
函数名-----需要那个函数对应的功能,就调用那个函数
注意:函数名必须是已经定义的函数名
实参列表-------以数据1,数据2,数据3。。。。的形式存在,这儿的每个数据就是一个实参(实参是给形参赋值的)
结论:定义函数不会执行函数体,调用函数的时候才会执行函数体
6.函数调用过程
每次在调用函数时,执行步骤:
第一步:回到函数定义的位置
第二步:传参(给形参赋值)
第三步:执行函数体
第四步:确定函数返回值
第五步:回到函数调用的位置,接着往后执行
7.函数的参数
1)位置参数和关键字参数
根据实参的提供方式将实参分为位置参数和关键字参数两种
位置参数:以”实参1,实参2,实参3。。。。“的形式存在,让实参和形参从位置上一一对应。
如:
def fun1(x,y,z)
fun1(10,20,30)
关键字参数:以"形参1=实参1,形参2=实参2。。。。。"通过=将实参与形参对应
def fun1(x,y