zoukankan      html  css  js  c++  java
  • 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这个内置函数作为自己的一个参数。

  • 相关阅读:
    day 66 ORM django 简介
    day 65 HTTP协议 Web框架的原理 服务器程序和应用程序
    jQuery的事件绑定和解绑 事件委托 轮播实现 jQuery的ajax jQuery补充
    background 超链接导航栏案例 定位
    继承性和层叠性 权重 盒模型 padding(内边距) border(边框) margin 标准文档流 块级元素和行内元素
    属性选择器 伪类选择器 伪元素选择器 浮动
    css的导入方式 基础选择器 高级选择器
    03-body标签中相关标签
    Java使用内存映射实现大文件的上传
    正则表达式
  • 原文地址:https://www.cnblogs.com/Devilf/p/8194056.html
Copyright © 2011-2022 走看看