Python基础——函数(200504)
Python——函数
函数
1.函数概述:
函数:用于完成特定功能的一段代码块,可用于重复使用。函数能够提高应用的模块性,和代码的利用率;函数包含内置函数和用户自定义的函数两种。
2.为什么使用函数:
代码可以重复使用,提高代码的利用率
保持代码一致性,易维护
可扩展性
定义函数
1.定义一个函数
1)可以定义一个特定功能的函数,规则如下:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明
- 函数内容以冒号起始,并且缩进
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
2)语法:
def function(x): ‘‘‘函数说明文档‘‘‘ x += 1 return expression function(2) # def:定义函数的关键字 # function:函数名 # ():括号内可以设置参数,形参 # x += 1:泛指代码块或程序处理逻辑 # return expression:定义返回值 # function(2):传入实参
3)举例:定义一个打印 hello + name 的函数
def greet(name): ‘‘‘打招呼函数‘‘‘ mes = ‘hello %s !‘%name return mes res = greet(‘alex‘) print(res) # =>hello alex !
2.函数返回值
1)函数和过程
- 过程:没有return返回值的函数
- 函数:有return返回值
2)返回值
return [expression] 语句:退出函数,函数运行到return语句就是直接退出函数,不会再继续运行函数体内return下面的语句。return返回值。
<1> 默认返回值
默认返回值:在函数体内部若无return返回值,则默认返回None,return是函数结束的标志。
def greet(name): print(‘hello %s !‘%name) print(greet(‘张三‘)) # =>hello 张三 ! # =>None
<2> 1个返回值
有1个返回值:指定了返回值
def greet(name): print(‘hello %s !‘%name) return ‘你真棒!‘ print(greet(‘张三‘)) # =>hello 张三 ! # =>你真棒!
<3> 多个返回值
多个返回值:指定了多个返回值,当有多个返回值时,以元组形式返回,内含多个值
def greet(name): print(‘hello %s !‘%name) return ‘你真棒!‘,‘Are you OK!‘,‘666‘ print(greet(‘张三‘)) # =>hello 张三 ! # =>(‘你真棒!‘, ‘Are you OK!‘, ‘666‘)
3.函数参数
1)形参和实参
- 形参:形参在函数被调用时使用,只在函数体内部有效
- 实参:可以是常量、变量、表达式、函数等,函数调用时将值传递给形参
def calc(x,y): # x,y :形参 result = x+y return result c = calc(1,2) # 1,2:实参(具体数值) print(c) # =>3
2)位置参数
位置参数:传递的实参个数与形参必须一一对应,少一个和多一个都不行,不对应会报错
# 一一对应 def position(x,y,z): print(x) print(y) print(z) position(1,2,3) # =>1 # =>2 # =>3 # 不对应 def position(x,y,z): print(x) print(y) print(z) position(1,2,3,4) # =>报错
3)关键字参数
关键字参数:对形参无需对应,但必须进行一一指定 ,少一个和多一个都不行,否则会报错
def key(x,y,z): print(x) print(y) print(z) key(x=1,y=2,z=3) # =>1 # =>2 # =>3
4)位置和关键字参数混合使用
位置和关键字参数混合使用:位置参数必须在左边也就是前边,关键字参数在后面,一一对应 关系,多个值会报错
def position_key(x,y,z): print(x) print(y) print(z) position_key(1,2,z=3) # =>1 # =>2 # =>3 position(1,y=2,3) # =>报错
5)默认参数
默认参数:定义了默认形参,实参就可以不用传递,若传递会覆盖默认参数
def default(x,type=‘King‘): # type=‘King‘:为默认参数 print(x) print(type) default(‘hello‘) # 不对默认参数进行传递 # =>hello # =>King default(‘hello‘,‘lisi‘) # 对默认参数进行传递,会覆盖原有参数 # =>hello # =>lisi
6)参数组
参数组:(**字典;*列表)传递可变长参数
def test(x,*args): # *:作为列表存储 print(x) print(args) # 作为元组输出 test(1,2,3,4,5) # =>1 # =>(2, 3, 4, 5) def test(x,**kwargs): # **:作为字典存储 print(x) print(kwargs) # 作为字典输出 test(1,y=2,z=3) # =>1 # =>{‘y‘: 2, ‘z‘: 3} def test(x,*args,**kwargs): # 可以接受多个值 print(x) print(args) # 作为元组输出 print(kwargs) # 作为字典输出 test(1,2,3,4,5,6,7,y=2,z=3) # =>1 # =>(2, 3, 4, 5, 6, 7) # =>{‘y‘: 2, ‘z‘: 3} test(1,*[1,2,3],**{‘y‘:2,‘z‘:3}) # =>1 # =>(1, 2, 3) # =>{‘y‘: 2, ‘z‘: 3}
7)参数集合实例
相关推荐
83510998 2020-07-18
thickbookszone 2020-06-14
xiaonamylove 2020-06-14
天高任鸟飞 2020-06-04
Magicsoftware 2020-06-01
Reiki 2020-05-04
whynotgonow 2020-04-26
zcyuefan 2020-04-19
神龙 2020-02-10
ajaxtony 2020-02-03
HongKongPython 2020-01-30
GoatSucker 2020-01-24
liuyang000 2020-01-24
zhiyuan0 2020-01-06
狼窝 2019-12-12
yunfenglee 2019-12-05