总结9(方形函数基础)
1.函数的作用
在实现某个功能对应的代码的时候,如果将实现功能对应的函数放到函数中,那么下一次再需要这个功能的时候,
就可以不用再写这个功能对应的代码了,而是直接调用这个功能对应的函数
def sum_range ( num) :
sum1 = 0
for x in range ( 1 , num+ 1 ) :
sum1 += x
print ( sum1)
sum_range( 100 )
sum_range( 50 )
sum_range( 1000 )
sum_range( 10000 )
def parting_line ( ) :
print ( '❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀分割线❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀' )
2.认识函数
2.1 什么是函数
函数就是实现某一特定功能的代码的封装。 - 函数就把实现某个功能的代码打成一个包,以后再需要这个功能的时候,直接使用函数就可以了。|
1)函数分类
a.系统函数∶由系统创建好函数,只需要在需要它们提供的功能的时候去调用它,例如: print、input、max、 type等
b.自定义函数:由程序员自己创建的函数
2.2 定义函数(创建函数)
1)语法:
def 函数名(形参列表)∶
函数说明文档
函数体
2)说明:
a.def - 关键字;固定写法
b.函数名 - 程序员自己命名;
两个要求: 是标识符、不是关键字
三个规范: 见名知义(看到函数名就大概知道这个函数的功能)、不使用系统函数名类名或者模块名、
所有字母都小写,多个单词用下划线隔开
c.() - 固定写法
d.形参列表 - 以'变量名1,变量名2,变量名3,....'的形式存在,这儿的每一个变量就是一个形参;
形参的个数可以是任意多个:0个、1个、2个 ...
形参可以将函数外部的数据传递到函数里面
e.函数说明文档 - 本质就是一个多行注释
f.函数体 - 函数体就是和def保持一个缩进的一条或者多条语句(至少一条)
逻辑上,函数体就是实现函数功能的代码
3)初学者定义函数的步骤
第1步∶ 确定函数功能第2步∶确定函数名
第3步∶ 确定形参(看实现函数的功能需不需要额外的数据,需要几个)
第4步︰通过函数体实现函数功能(这个时候直接将形参作为对应的数据使用)
第5步: 确定函数返回值
第6步∶ 写函数说明文档
def sum_1 ( num1, num2) :
'''
(功能说名区)
:param num1: 第一个数
:param num2: 第二个数
:return:
'''
print ( num1+ num2)
sum_1( 20 , 30 )
def count_chinese ( str1) :
'''
(功能说明区)统计一个字符串中中文的个数
:param str1:(参数说明)需要统计的字符串
:return:(返回值说明)None
'''
count= 0
for x in str1:
if '\u4e00' <= x<= '\u9fa5' :
count+= 1
print ( count)
count_chinese( '按时发南方1234' )
def public ( str1, str2) :
result= '' . join( set ( str1) & set ( str2) )
def factorial ( num) :
sum1= 1
for x in range ( 1 , num+ 1 ) :
sum1*= x
print ( sum1)
factorial( 10 )
2.3 调运函数(使用函数) - 使用机器
1)语法:
函数名(实参列表)
2)说明:
函数名 - 必须是已经定义好的函数的函数名
(需要哪个函数的功能就调用哪个函数,就写哪个函数的函数名)
() - 固定写法
实参列表 - 实参就是通过形参从函数外部传递到函数内部的数据
以'数据1,数据2,数据3,...'的形式存在,这儿的每个数据就一个实参,实参的个数由形参的个数决定
重要结论:定义函数的时候不执行函数体,调用函数的时候才会执行。调用多少次,函数体就会执行多少次
调用过程:每次调用函数的时候:
1) 回到函数定义的位置
2) 传参(用实参给形参赋值)
3)执行函数体
4) 确认返回值
5) 回到函数调用的位置接着往后执行
3. 函数的参数
3.1位置参数和关键字参数
根据调用函数的时候实参提供方式的不同,可以实参分为位置参数和关键字参数
1)位置参数 – 直接将多个数据用逗号隔开,让实参和形参从位置上一一对应
2)关键字参数 – 调用函数的时候,以'形参名1=实参1,形参名2=实参2,...'形式存在的参数
注意: 如果位置参数和关键字参数一起使用,那么位置参数必须在关键字参数的前面
def func1 ( a, b, c) :
print ( f'a: { a} ,b: { b} ,c: { c} ' )
func1( 10 , 20 , 30 )
func1( 10 , 30 , 20 )
func1( a= 10 , b= 20 , c= 30 )
func1( b= 20 , c= 30 , a= 10 )
func1( 10 , b= 20 , c= 30 )
func1( 10 , 20 , c= 30 )
func1( 10 , c= 30 , b= 20 )
3.2 参数默认值
1)定义函数的时候可以以'形参名=值"的方式给形参赋默认值,有默认值的参数在调用函数的时候可以不用传参。
2)定义函数的时候可以有的参数有默认值,有的参数没有默认值,但是没有默认值的参数必须在有默认值参数的前面。
def func2 ( a= 1 , b= 2 , c= 3 ) :
print ( f'a: { a} ,b: { b} ,c: { c} ' )
func2( )
func2( 10 , 20 )
func2( 10 , 20 , 30 )
func2( b= 200 )
func2( c= 300 )
def func3 ( a, b, c= 30 ) :
pass
def func4 ( a, b= 20 , c= 30 ) :
pass
3.3参数类型说明
定义函数的时候可以对参数类型进行说明:
1)没有默认值的参数:形参名:类型名
2)有默认值的参数,默认值的数据类型就是参数类型
def func5 ( str1: str , list1: list , str2= '' ) :
pass
4.返回值
4.1什么是返回值
返回值就是从函数内部传递到函数外部的数据。
定义函数的时候,需不需要添加返回值的建议∶ 看实现函数的功能有没有产生新的数据,如果有新的数据,就将新的数据作为返回值返回。
4.2 怎么确定函数返回值 – 怎么将一个数据作为函数的返回值返回
返回值就是return 关键字后面的表达式的值(函数内部产生的数据,如果不用返回值返回是无法在函数外部使用)
return 数据
def sum_2 ( num1, num2) :
result= num1+ num2
return result
4.3怎么使用函数返回值
函数调用表达式的值就是函数的返回值(python中每个函数函数调用都是有结果,这个结果就是这个函数在调用的时候得到的返回值)
函数调用表达式 - 调用函数的语句
def del_minus2 ( nums: list ) :
new_nums= [ ]
for x in nums:
if x >= 0 :
new_nums. append( x)
return new_nums
list1= [ 10 , - 2 , - 3 , - 40 , 20 ]
result= del_minus2( list1)
print ( result)
def del_minus2 ( nums: list ) :
for x in nums[ : ] :
if x < 0 :
nums. remove( x)
list1 = [ 10 , - 90 , - 89 , 78 , 2 , 0 ]
del_minus2( list1)
print ( list1)