• Python函数基础


    1、定义函数

    使用def语句,后跟函数名、括号、冒号,括号中有时可以带有参数,然后换行缩进,编写函数体,返回值用return语句

    例如:

    def test(x):
        if x > 0:
            return x
        else:
            return abs(x)
    
    print(test(4))
    print(test(-5))

    2、参数

    1)位置参数

    例如:

    def func(x,y,z):
        print(x)
        print(y)
        print(z)
    
    func(1,2,3)
    func(5,6)

    执行结果:

    1
    2
    3
      File "F:/python3/函数.py", line 7, in <module>
        func(5,6)
    TypeError: func() missing 1 required positional argument: 'z'

    可以看出这里输入的参数少了一个便会报错

    2)默认参数

    默认参数的用处还是挺多的,例如,我们填写信息时,有的信息是默认的,比如你所在的国家不填就默认是中国。

    例如:

    def func(name,sex,country='CHINA'):
        print(name,sex,country)
    
    func('Devilf','boy')
    func('GY','girl',country='USA')

    执行结果:

    C:Python36python3.exe F:/python3/函数.py
    Devilf boy CHINA
    GY girl USA

    设置默认参数需要注意的地方:

    一、默认参数必须在必选参数后面

    二、当函数有多个参数时,可以将不经常变得参数设置成默认参数

    3)可变参数

    可变参数就是传入的参数的个数是不固定的,可变的,例如:

    def func(*args):
        print(args)
    
    func(1)
    func(1,2,3,4,5)
    func([1,2,3,'a','b','c'])
    func(1,2,3,'a','a',1)

    执行结果:

    C:Python36python3.exe F:/python3/函数.py
    (1,)
    (1, 2, 3, 4, 5)
    ([1, 2, 3, 'a', 'b', 'c'],)
    (1, 2, 3, 'a', 'a', 1)

    可以看出可变参数输出的是一个元组,不管我们输入多少参数,都可以进行输出

    4)关键字参数

    关键字参数和可变参数很像,只不过一个输出的是元组,一个是字典,例如:

    def func(name,sex,**kwargs):
        print(name,sex,kwargs)
    
    func('Devilf','boy',country='china',age=24)

    执行结果:

    C:Python36python3.exe F:/python3/函数.py
    Devilf boy {'country': 'china', 'age': 24}

    5)参数组合

    参数组合是有顺序的,顺序为:

    必选参数、默认参数、可变参数、关键字参数

    例如:

    def func(a,b,c='default',*args,**kwargs):
        print('a=',a)
        print('b=',b)
        print('c=',c)
        print('args=',args)
        print('kwargs=',kwargs)
    print('------1---------')
    func(1,2)
    
    print('-------2---------')
    func(1,2,c=3)
    
    print('--------3----------')
    func(1,2,c=3,args=('python','java'),name='devilf',sxe='boy')
    
    print('---------4------------')
    func(1,2,3,'a','b','c',n1='name',n2='sex',n3='age')

    执行结果:

    C:Python36python3.exe F:/python3/函数.py
    ------1---------
    a= 1
    b= 2
    c= default
    args= ()
    kwargs= {}
    -------2---------
    a= 1
    b= 2
    c= 3
    args= ()
    kwargs= {}
    --------3----------
    a= 1
    b= 2
    c= 3
    args= ()
    kwargs= {'args': ('python', 'java'), 'name': 'devilf', 'sxe': 'boy'}
    ---------4------------
    a= 1
    b= 2
    c= 3
    args= ('a', 'b', 'c')
    kwargs= {'n1': 'name', 'n2': 'sex', 'n3': 'age'}

    可以看出,参数组合时,每个参数都需要对应,位置参数、默认参数这两个参数特别需要注意

    3、递归函数

    递归函数就是自己调用自己。

    例如:

    def func(x):
        if x == 1:
            return 1
        else:
            return x * func(x - 1)
    a = func(3)
    print(a)

    这里便是在函数里自己调用自己,执行过程大概是这样的:

    大概就是这么一个形式,画一个流程图来理解下:

     

    4、高阶函数

    变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数称之为高阶函数

    例如:

    def func(x,y,f):
        return f(x) + f(y)
    a = func(2,-3,abs)
    print(a)

    这里abs属于一个内置函数,func是自定义函数,也就是说func这个函数接收了abs这个内置函数作为自己的一个参数。

  • 相关阅读:
    jsonp 原理和基本使用
    jsonplaceholder直接提供模拟测试数据
    为什么要学mock
    vue基础知识和案例
    winform datagridview中combobox列改变选项时触发其他列变化
    将DataGridView转换为DataTable
    C#中删除字符串最后一个字符串的几种方式
    C#中成员变量和局部变量的区别
    WinForm窗体中如何在一个窗体中取到另一个窗体的值
    ComboBox 中 DisplayMember 和 ValueMember有何区别
  • 原文地址:https://www.cnblogs.com/Devilf/p/8194056.html
Copyright © 2020-2023  润新知