python 11 函数基础
1. 函数的作用
函数存在的价值:当一个功能需要反复使用的时候,如果没有函数,每次需要这个功能就必须把实现功能的代码写一遍,如果有函数,实现功能对应的代码只需要写一遍(封装成函数),然后再每次需要这个功能的时候调用实现这个功能的函数。
2. 认识函数
2.1 什么是函数(机器)
函数就是实现某一特定功能的代码的封装(函数就是将实现某一个或者某一类功能的代码打成一个包,以后在需要这个包中的这段代码,对应功能的时候不用重新写代码,而是使用封装了这段代码的函数)
2.2 函数的分类:
根据函数是由谁创建的,分为系统函数和自定义函数两种
-
系统函数:别人已经造好的机器)- 由系统创建的函数(python本身就创建好的函数)、例如:print、input、min、max、type.
-
自定义函数(自己造机器):由程序员自己创建的函数(自己创建的函数).
2.3 定义函数(定义就是创建的意思)
-
语法:
def 函数名(形参列表):
函数说明文档
函数体
说明:
1)def:关键字,固定写法
2)函数名 - 由程序员自己命名,有两个要求,三个规范。
两个要求:是标识符,不能是关键字
三个规范:见名知义;所有字母都是小写,多个单词用下划线隔开;不使用系统的函数名、类名和模块。
3)(): - 是固定写法
4)形参列表 - 以’变量名1,变量名2,变量名3,···'的形式存在,根据情况,变量的数据可以为0(每一个变量就是一个形参)
形参的作用就是将函数外部的数据传递到函数里面。
5)函数说明文档 - 就是多行注释(相当于生活中的说明书)
6)函数体 - 结构上,和def保持一个缩进的一条后多条语句
逻辑上,就是实现函数功能的代
注意:在定义函数的下方点击6个单引号,可以调出函数的功能说明区。
练习1:定义一个函数求一个数的阶乘
def factorial(num):
product1=1
for x in range(1,num+1):
product1*=x
print(product1)
product(5)
product(4)
##
120
24
练习2:定义一个函数统计字符串中数字字符的个数
def count_nums(str1):
count1=0
for x in str1:
if x.isdigit():
count1 += 1
print(count1)
count_nums('sb87923ncidHBJSB9765')
count_nums('bsdh787SG1*4$@CNJD987')
##
9
8
练习3:定义一个函数,将两个字符串中所有的大写字母合并成一个新的字符串
def merge_upper(str1,str2):
new_str=''
for x in str1+str2:
if x.isupper():
new_str += x
print(new_str)
merge_upper('ASCHEdgshgHUDSG345','HDB123')
merge_upper('123ERT','890Ndbcudhd')
##
ASCHEHUDSGHDB
ERTN
练习4:定义一个函数,删除列表中所有的空值(包括None,和其他空值(比如空字符串、空列表、空元组等))
#方法1直接删除
def remove_dull_value(list):
for x in list[:]:
if (not x) and x!=0:
list.remove(x)
print(list)
remove_dull_value([12,'sd',[],(),{
},(0,),'',0])
##结果显示
[12, 'sd', (0,), 0]
#方法2 建一个新的列表,把满足条件的元素加入新的列表中
def remove_dull_value(list):
new_list=[]
for x in list[:]:
if x or x == 0:
new_list.append(x)
print(new_list)
remove_dull_value([[],0,(),{
},[1,2],(2,3),78,'hu','加油'])
##结果显示
[0, [1, 2], (2, 3), 78, 'hu', '加油']
- 条件对应的表达式如果不是布尔,就转换成布尔看结果是否为True (0值和空值是False, 其他都是True)
3 . 调用函数
3.1 调用函数(使用函数—使用机器)
语法:函数名(实参列表)
说明:
1)函数名:需要哪个函数对应的功能,就调用哪个函数,想要调用哪个函数,就写哪个函数的函数名。
注意:函数名必须是已经定义过的函数名
2)( ):是固定写法
3)实参列表:以’数据1,数据2,数据3,···的形式存在,这儿的每个数据都是一个实参,(实参对应的结果可以是任何有结果的表达式,不一定是一个具体的值,也可以是别的表达式),实参是用来给形参赋值的,要保证与形参一一对应
变量名1,变量名2,变量名3,···=数据1,数据2,数据3,··· 形参=实参
注意:定义函数的时候不会执行函数体,调用函数的时候才会执行函数体。
def func():
print('########'