Python之函数系列(一)

发布时间:2019-07-15 10:49:39编辑:auto阅读(1281)

    每个编程语言中(诸如:Java、C++、C)等都有函数的,Python也不例外

    函数的主要作用有哪些呢?

    1、将程序的功能进行模块化,功能模块清晰

    2、减少重复代码的工作量

    3、便于阅读及维护、调试等


    一、函数的结束及返回值

    # -*- coding: utf-8 -*-
    
    def f1():
        print("This is Fun()")
        return  #函数调用结束
        print("-- End 1--")
        print(" Print 2")
        return "--- End 2  --"
    
    f1()
    print(type(f1()))

    运行结果:

    This is Fun()

    This is Fun()

    <class 'NoneType'>

    1.函数在遇到return语句时,此时函数调用已经结束

    2.函数是有返回值的,只不过这里是None类型

    再看下面的例子:

    def mth_return():
        return 1,"String",["a","b"],{"K1":1,"Key2":2}
    print(mth_return())
    print(type(mth_return()))

    运行结果:

    (1, 'String', ['a', 'b'], {'K1': 1, 'Key2': 2})

    <class 'tuple'>

    此时,函数的返回值是一个元组

    二、函数的参数

      对于函数,其函数名后面的变量通常称为:形参,调用函数时,提供的值称为:实参

    # -*- coding: utf-8 -*-
    
    def method(name,age):  #name,age是形参
        print(name,age)
    def method2(name,age ="18"):  #提供默认参数值
        print(name,age)
    
    n = "Mr.James"
    method(n,38)  #n是实参
    method2("Zhang")
    method2("Mr.Zhang",28)

    运行结果:

    Mr.James 38

    Zhang 18

    Mr.Zhang 28

    三、函数的关键字参数

       对于上面的例子,其函数是位置位置参数,位置一一对应,不能多也不能少

       下面的这个这个例子跟上面的有点不一样,在Python中称之为:关键字参数

    # -*- coding: utf-8 -*-
    
    def test(name="James",age=29):
        print("name:{},{}".format(name,age))
    
    test(age=20,name="Mr.Zhang")

    运行结果:

    name:Mr.Zhang,20

    四、函数的可变长参数

     对于位置参数而言,形参及实参需要一一对应,若有时不确定需要哪些参数或为了日后能很好的扩展,Python中提供了可变长参数

    用法:def function(self,*args,**kwargs)

    具体例子:

    例子1:

    # coding = utf-8
    
    def test(name,*args):
        print(name)
        print(args)
        print(args[3])
    
    test("Mr.Zhang",1,2,3,["a","b"],{"Key1":1,"Key2":2})  # *args 返回的是一个元组

    运行结果:

    Mr.Zhang

    (1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2})

    ['a', 'b']

    例子2:

    # coding = utf-8
    def test2(name,*args,**kwargs):  # **kwargs返回的是一个字典
        print(name)
        print(args)
        print(kwargs)
    
    test2("Mr.Zhang",1,2,3,['a','b'],{"Key1":1,"Key2":2},age=18,sex="F")

    运行结果:

    Mr.Zhang
    (1, 2, 3, ['a', 'b'], {'Key1': 1, 'Key2': 2})
    {'age': 18, 'sex': 'F'}




关键字