python--初识函数
什么叫函数?
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
返回值
1.没有返回值
- 写return
- 不写return
- 有时写return None,不常用
2.有一个返回值:直接用return接收
3.有多个返回值:返回多值需要多值接收,返回值是元组,不能修改返回值所以要使用元组
def func_1()
return 1,2
r1,r2 = func_1()
print(r1,r2)
$1,2
def func_1()
return 1,2,3
r = func_1()
print(4)
$(1,2,3)
在终端输入,python内部有机制,下面分别对列表,元组,字典进行解包操作
>>>1,2
1,2
>>> a,b,c = ['a','b','c']
>>> a
'a'
>>> b
'b'
>>> c
'c'
>>> a,b,c = (1,2,3)
>>> a
1
>>> b
2
>>> c
3
>>> d1 = {'k1':'kk','v1':'vv'}
>>> a,c = d1
>>> a
'k1'
>>> c
'v1'
函数的参数
实际的要交给函数的内容,简称实参
在定义函数的时候它只是一个形式,表示这里有一个参数,简称形参。
以下是调用函数时可使用的正式参数类型:
- 位置参数
- *args :按位置传参的值组成一个元组
- 默认参数
- **kwargs :按关键字传参,组成一个字典
参数顺序: 位置参数,*arge,默认参数,**kwargs
动态参数的另一种传参方式 :
def func_1(*args) :
print(args)
li = [1,2,3,4]
func_1(*li)
#实参的星老师说是顺序打散,我的理解是解包
也就是说args = 1,2,3,4
如果直接传列表,args类型为以列表形式存储的元组
如果传*li,args类型为以列表各个值单独存储的元组
def func_2(**kwargs) :
print(kwargs)
dic_1 = {'k1':'kk','v1':'vv'}
func_2(**dic_1)
参数解包
# 参数解包:将整个list当做参数传给函数
list = [1, 2, 4]
def add_fn(a, b, c):
return a + b + c
sum = add_fn(*list)
print("参数解包:", sum)
# ------------------------------
def func(*args)
print(args)
func(*list)
# ------------------------------
所谓的解包(Unpacking)实际上可以看做是去掉()的元组或者是去掉{}的字典。
user = {'name': "Trey", 'website': "http://treyhunner.com"}
defaults = {'name': "Anonymous User", 'page_name': "Profile Page"}
print({**defaults, **user})
${'page_name': 'Profile Page', 'name': 'Trey', 'website': 'http://treyhunner.com'}
# --------------------------------
#值的解压
msg='hello'
l=[1,2,3]
# a,b,c,d,e=msg
# print(a,b,c,d,e)
# a,_,_,_,e=msg
*_,a = msg
# a,*_,e=msg
print(a)
# print(e)

浙公网安备 33010602011771号