Python-12-函数_01_函数定义

1、函数定义
2、函数优点

 1 # 1、python中函数定义方法:
 2 
 3 def test(x):
 4     "The function definitions"
 5     x += 1
 6     return x
 7 
 8 
 9 # def:定义函数的关键字
10 # test:函数名
11 # ():内可定义形参
12 # "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)!!!!!!
13 # x+=1:泛指代码块或程序处理逻辑
14 # return:定义返回值
15 
16 # 调用运行:可以带参数也可以不带
17 # 函数名()
18 
19 # 2、例子:
20 def test(x):
21     x += 1
22     return x
23 y = test(3)
24 print(y)
25 
26 # 3、函数优点
27 
28 # 1.代码重用
29 # 2.保持一致性,易维护
30 # 3.可扩展性
31 # 过程:没有return返回值的函数
32 
33 # 4、返回个数、类型
34 # 返回值数=0:返回None
35 # 返回值数=1:返回object
36 # 返回值数>1:返回tuple

3、形参、实参、位置参数和关键字、默认参数、参数组

 1 # 5、形参、实参、位置参数和关键字、默认参数、参数组
 2 # 实参与形参位置一一对应;关键字:位置无需固定
 3 # **字典  *列表
 4 # 参数组    位置参数
 5 def test(x,*args):
 6     print(x)            # 结果:1
 7     print(args)         # 结果:(2, 3, 4, 5, 6)
 8     print(args[0])      #结果:2
 9 test(1,2,3,4,5,6)
10 
11 # 关键字
12 def test(x,**kwargs):
13     print(x)            # 结果:1
14     print(kwargs)       # 结果:{'y': 2}
15 test(1,y=2)
16 
17 def test(x,*args,**kwargs):
18     print(x)            # 结果:1
19     print(args)         # 结果:(1, 2, 3, 4, 5, 4)
20     print(kwargs)       # 结果:{'y': 2, 'z': 3}
21 test(1,1,2,3,4,5,4,y=2,z=3)
22 test(1,*[1,2,3],**{"y":1})      # 结果:1    (1, 2, 3)    {'y': 1}
"""
    实参传递方式
        位置传参
            序列传参
        关键字传参
            字典传参
"""


def fun1(a, b, c):
    print("a=", a)
    print("b=", b)
    print("c=", c)

# 位置传参:实参与形参的位置依次对应。
fun1(2,1,3)

# 序列传参:实参用*将序列拆解后与形参的位置依次对应
fun1(*[1,2,3])

# 关键字传参:实参根据形参的名字进行对应。
fun1(b = 2,a = 1,c = 3)

# 字典传参:实参用**将字典拆解与形参的名字进行对应。
fun1(**{"b":2,"a":1,"c":3})


# 默认(缺省)参数
def fun2(a=0, b=0, c=0):
    print("a=", a)
    print("b=", b)
    print("c=", c)
# 可以结合关键子传参,随意选择参数
fun2(b = 2)

def fun3(a, b=0, c=0):
    print("a=", a)
    print("b=", b)
    print("c=", c)

# a 是位置参数,必须传递
fun3(1)
"""
    形参传递方式
    位置形参
        星号元组形参
"""

# 位置形参
def fun1(a,b,c):
    pass

# 星号元组形参:收集多余位置形参
def fun2(*args):
    # 对于函数而言,args就是元组
    print(len(args),args)

fun2()
fun2(1)
fun2(1,2)

#练习:定义函数,累加整数。


def fun3(a,*args):
    # 对于函数而言,args就是元组
    print(len(args),args)

fun3(1)
"""
    形参传递方式
        命名关键字形参
"""


# 命名关键字形参:强制实参使用关键字传递。
def fun1(*, a, b):
    print(a, b)


# fun1(1,2)
# fun1(*[1,2])
fun1(b=2, a=1)
fun1(**{"b": 2, "a": 1})

# a b 是位置传参,c,d 必须是关键字传参
def fun2(a, b, *, c, d):
    print(a, b, c, d)


fun2(1, 2, c=3, d=4)

# 星号元组形参后的,位置形参是命名关键字形参。
def fun3(*args, c, d):
    print(args, c, d)

fun3(3,4,4,5665,d = 9,c=5)

# 练习:print函数定义
# print(*args, sep=' ', end='\n', file=None)
# 打印(内容,sep = “连接符号”, end = "结束符号")
print("asdf",1343,sep = "$",end = "\n\n\n\n\n")
print("ok")

# 双型号字典形参:可以收集多余的字典关键字实参
def fun4(**kwargs):
    # 对于函数内部而言,就是字典
    print(kwargs)

# fun4(1,2,3)
fun4(a = 1,c = "ccccc",d = [1,2,3],e = True)

def fun5(*args,**kwargs):
    print(args,kwargs)

fun5()
fun5(23,34,a = "adsf",qtx = "qtx")

 

posted on 2018-11-12 14:59  NewMet  阅读(106)  评论(0编辑  收藏  举报

导航