函数基础
函数的作用
函数存在的价值:当一个功能需要反复使用的时候,如果没有函数,每次需要这个功能就必须吧实现这个功能的代码写一遍。
如果有函数,实现功能对应的代码只需要写一遍(封装成函数),然后在每次需要这个功能的时候调用实现这个功能的函数。
认识函数
1.认识函数
函数就是实现某一特定功能的代码的封装。(函数就是将实现某一个或某一类功能的代码打成一个包,以后在需要这个包中的这段代码对应的功能的时候不用重新写这段代码,而是使用封装了这段代码的函数)
2.函数的分类
根据这个函数是由谁创建的,我们将函数分为系统函数和自定义函数两种。
1)系统函数 - 由系统创建的函数(Python本身就创建好的函数);例如:print、input、type、max、min等
2)自定义函数(自己造的函数) - 由程序员自己创建的函数
3.定义函数
语法:
def 函数名(形参列表):
(缩进)函数说明文档
(缩进)函数体
说明:
1)def - 关键字;固定写法
2)函数名 - 由程序员自己命名;
两个要求:是标识符;不是关键字
三个规范:见名知意(看到函数名就大概指定函数的功能是什么);所有的字母都小写,多个单词用下划线隔开;不使用系统的函数名、类名和模块名。
3)(): - 固定写法
4)形参列表 - 以’变量名1,变量名2,变量名3,…'的形式存在,根据情况变量的数据可以为0(每个变量就是一个形参)
形参的作用:将函数外部的数据传递到函数里面。
确定形参的方法:看实现函数的功能需不需要额外的数据,需要多少个额外的数据。
5)函数说明文档 - 就是多行注释(相当于生活中机器的说明书)
6)函数体 - 结构上,和def保持一个缩进的一条或者多条语句
逻辑上,函数体就是实现函数功能的代码。
例:定义一个函数求一个数的阶乘
def factorial(num):
'''
(功能说明区)求一个数的阶乘:num!
:param num:(参数说明区)求阶乘的对象
:return:(返回值说明)None
'''
nums = 1
for i in range(2, num + 1):
nums *= i
print(nums)
# 调用函数
# factorial(4)
练习:定义一个函数,删除列表中所有的空值(包括None、空字符串、空列表、空元组等)
def delete(list1):
# list2 = []
# for i in list1:
# if bool(i) == 1:
# list2.append(i)
# print(list2)
for i in list1[:]: # 遍历列表删除元素时,需要从后往前删(逐一判断,不会出现间隔的情况),以为从前往后删,会出现间隔删除,顺序改变了。
if (not i) and (i != 0