Python 函数用法 Python中关于函数的具体用法范例以及介绍
测试领头羊 人气:01.函数的介绍
在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
定义函数的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号 : 起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return相当于返回 None。
2.函数的定义和调用
格式如下:
def 函数名(): 执行语句 函数名() #调用函数
实例:
def info(): print("人生苦短我用python") info()
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过 函数名() 即可完成调用
每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了
当然了如果函数中执行到了return也会结束函数
3.函数的参数
首先定义一个带有参数的函数,并且调用这个函数
实例:
def test1(a,b): # a,b为参数 c=a+b print(c) test1(1,2) # 调用带有参数的函数时,需要在小括号中,传递数据
定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
4.参数的分类
函数参数大概分为四种:
- 位置参数
- 关键字参数
- 缺省参数
- 不定长参数
4.1.位置参数
格式如下:
def 函数名(参数1,参数2): 代码块 函数名(值1,值2)
实例:
def fun(a,b): print("a:",a) print("b:",b) fun(2,3)
4.2.关键字参数
格式如下:
def 函数名(参数1,参数2): 代码块 函数名(参数1=值1,参数2=值2)
实例:
def fun(a,b): print("a:",a) print("b:",b) fun(a=2,b=3)
参数调用时可以改变传参顺序,如果有位置参数需要位置参数放在关键字参数前面
实例:
def fun(a,b): print("a:",a) print("b:",b) fun(3,b=2)
如果关键字参数传参要在位置参数之前,将会报错
实例:
def fun(a,b): print("a:",a) print("b:",b) fun(a=3,2)
4.3.缺省参数
在形参中默认有值的参数,称之为缺省参数(也称为默认参数)
实例:
def printinfo(name,age=20): print("name:",name) print("age:",age) printinfo(name="jack")
调用函数时,缺省参数的值如果没有传入,则取默认值(形式参数),如果传入,则取实际参数
缺省参数一定要位于位置参数的最后面
4.4.不定长参数
有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。
格式如下:
def printinfo(*args,**kwargs): print("args:",args) print("kwargs:",kwargs) printinfo(参数)
加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典
1.不定长参数*args
实例:
def printinfo(*args): print("args:",args) printinfo(100,200,300,400)
2.不定长参数* * kwargs
实例:
def printinfo(**kwargs): print("kwargs:",kwargs) printinfo(a=100,b=200,c=300,d= 400)
4.5.函数位置顺序
格式如下:
def fun(位置参数,*args,缺省参数,**kwargs): 代码块 fun(参数值)
实例:
def sun(a,*args,b=22,**kwargs): print("a:",a) print("args:",args) print("b:",b) print("kwargs:",kwargs) sun(100,200,300,b=2,m=3,n=4)
如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有**kwargs的话,**kwargs必须是最后的
4.6.函数的返回值
场景:
我给儿子10块钱,让他给我买包烟。这个例子中,10块钱是我给儿子的,就相当于调用函数时传递到参数,让儿子买烟这个事情最终的目标是,让他把烟给你带回来然后给你对么,,,此时烟就是返回值
格式如下:
def sum(): 代码块 return 值 sum()
实例:
def sum(a,b): return a+b result = sum(1,2) #保存函数的返回值 print(result)
1.多个return
实例:
def create_nums(num): print("---1---") if num == 100: print("---2---") return num + 1 # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数 print("return执行之后不会继续执行") else: print("wewe") return "输入不是100" print(create_nums(100))
一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会结束了,因此后面的return没有什么用处
2.返回多个数据
实例:
def divid(a, b): add = a+b #相加 reduct = a-b #相减 return add, reduct #默认是元组 result = divid(5, 2) print(result)
return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据
4.7.函数的类型
函数根据有没有参数,有没有返回值,可以相互组合,一共有4种:
- 1. 无参数,无返回值
- 2. 无参数,有返回值
- 3. 有参数,无返回值
- 4. 有参数,有返回值
1.无参数,无返回值的函数
此类函数,不能接收参数,也没有返回值,一般情况下,打印提示灯类似的功能,使用这类的函数
实例:
def printMenu(): print('--------------------------') print(' xx涮涮锅 点菜系统') print('') print(' 1. 羊肉涮涮锅') print(' 2. 牛肉涮涮锅') print(' 3. 猪肉涮涮锅') print('--------------------------')
2.无参数,有返回值的函数
此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数
实例:
def getTemperature(): # 这里是获取温度的一些处理过程 # 为了简单起见,先模拟返回一个数据 return 24 tem=getTemperature() print(tem)
3.有参数,无返回值的函数
此类函数,能接收参数,但不可以返回数据,一般情况下,对某些变量设置数据而不需结果时,用此类函数
4.有参数,有返回值的函数
此类函数,不仅能接收参数,还可以返回某个数据,一般情况下,像数据处理并需要结果的应用,用此类函数
实例:
# 计算1~num的累积和 def calculateNum(num): result = 0 i = 1 while i<=num: result = result + i i+=1 return result cal=calculateNum(100) print(cal)
4.8.函数的嵌套
一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用
实例:
def testb(): print("testb start") print("testb testb 执行") print("testb end") def testa(): print("testa start") testb() print("testa end") testa()
如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置
4.9.匿名函数
lambda函数也叫匿名函数,即函数没有具体的名称
实例:
g = lambda x :x+1 print(g(1))
lambda函数可以赋值给变量,默认是返回的,所以不用再加return关键字
例如g = lambda x:x+1,可以看成如下函数,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值
def g(x): return x + 1 print(g(1))
5.函数小练习
写一个函数求三个数的和,并返回结果
def func(a,b,c): return a+b+c print(func(1,4,7))
写一个函数求三个数的平均值,并返回结果
def func1(a,b,c): return (a+b+c)/3 print(func1(2,3,4))
写一个函数求每个数与平均值之间的差,并返回结果
def func2(a,b,c): d=(a+b+c)/3 return a-d,b-d,c-d print(func2(5,8,2))
加载全部内容