掌握函数的定义并理解什么是函数
1,什么是函数
(1)函数是一段具有特定功能的、可重用的语句组
(2)函数是一种功能的抽象,一般函数表达特定的功能
(3)2个作用:降低编码难度、代码复用
2,函数的定义
(1)函数定义结构
def <函数名>(<参数0个或多个>):
<函数体>
return <返回值>
eg:n个数相加
def sum(n):
s=0
for i in range(1,n+1):
s=s+i
return s
(2)函数定义的注意
函数定义时,所指定的参数时一种占位符
函数定义后,如果不经过调用,不会被执行
函数定义时,参数时输入,函数体时处理,结果时输出
掌握函数的调用
调用时要给出实际参数(代码在调用时会进行运行,定义时不会被运行)
实际参数替换定义中的参数
函数调用后得到返回值
掌握函数的参数传递及可选参数的使用
1,函数的参数传递
(1)函数可以有参数,也可以没有,但必须保留括号
eg:
def fact():
print("这时有个函数")
(2)函数调用时,参数可以按照位置或名称方式传递
eg:
函数定义为
def sum(n,m=1)
函数调用:
1)按照位置传递 sum(10,5)
2)按照名称传递 sum(m=4,n=10)
2,可选参数的使用
(1)可选参数定义:
在调用函数时,有些变量不提供,只提供一些变量。其中参数可以提供,也可以不提供的就称为可选参数
(2)python规定:
所有的可选参数必须放在非可选参数的后面
def <函数名>(<非可选参数><可选参数>):
<函数体>
return <返回值>
eg:
def sum(n,m=1): >>>fact(10)
s=0 计算10以内的数相加,结果除以1
for i in range(1,n+1): >>>fact(10,5)
s=s+i 计算10以内的数相加,结果除以5
return s//m
3,可变参数传递(不确定参数的总数量,用*符号表示出来)
def <函数名>(<参数>,*b):
<函数体>
return <返回值>
eg:
计算10以内的数相加,然后与多个数连续相乘
def sum(n,*b):
s=0
for i in range(1,n+1): >>>sum(10,2,3,4)
s=s+i
for item in b:
s*=item
return s
比如,求一组数据的最大值和最小值
掌握函数的返回值概念
(1)函数可以返回0个或多个结果
多个返回结果用(m,n,a,b)得到,这样的类型为元组类型
(2)return保留字用来传递返回值
(3)函数可以有返回值,也可以没有,可以有return,也可以没有
(4)return可以传递0个返回值,也可以传递任意多个返回值
掌握函数的局部变量和全局变量的区别及使用
1,局部变量和全局变量
(1),全局变量:在一段程序中有一个函数定义,其中使用的变量叫全局变量
(2),局部变量:在函数体中定义使用的变量叫局部变量
区别:函数内部使用的变量叫局部变量,函数外部整个使用的变量叫全局变量
2,局部变量和全局变量的使用规则
(1)局部变量和全局变量名字相同时,也是不同的变量
1)局部变量是函数内部的占位符,与全局变量可能重名,但也是不同变量
2)函数运算结束之后,局部变量会被释放
3)可以使用global保留字在函数内部使用全局变量
(2)局部变量为组合数据类型且未创建,等同于全局变量
eg:
ls=["a","b"]
def func(m): 在此函数中ls没有被重新定义,所以ls使用的是全局变量
ls.append(a)
return
func("c") 》》》输出["a","b","c"]
print(ls)
ls=["a","b"]
def func(m): 在此函数中ls被重新定义,所以ls使用的是局部变量
ls=[ ]
ls.append(a)
return
func("c") 》》》["a","b"]
print(ls)
熟悉lambda表达式函数(匿名函数)
1,什么是lambda表达式函数
lambda函数返回函数名作为结果
lambda函数是一种匿名函数,即没有名字的函数
使用lambda保留字定义,函数名是返回结果
lambda函数用于定义简单的,能够在一行内表示的函数
2,定义形式
<函数名>=lambda<参数>:<表达式>
eg:
>>>f=lambda x,y :x+y
>>>f(10,15)
25
>>>f=lambda :"这是一个函数"
>>>print(f())
这是一个函数
3,为什么设计这个函数
(1)主要用于一些特定函数或方法的参数
(2)有一些固定使用方式
(3)一般情况,建议使用def定义的普通函数