• Python中常用的函数以及使用方法


    Python函数的使用
    1.创建函数
    在Python中,创建一个函数需要用def,格式为 def 函数名(形式参数): 多个参数用逗号隔开,例如

    注意函数体的缩进和函数头最后要加冒号

    默认参数
    在创建一个函数时,我们可以给形参默认值,在调用的时候,若没有给该形参值,则将使用默认值,但和c语言相同,所有没有默认值的形参,都必须在有默认值的的左边,例如:

    def add(a,b,c=3):
    print(a,b,c)
    add(1,2)
     
    ​ 结果为

    1 2 3

    单星号参数(收集参数)
    当我们不知道我们这个函数需要多少个参数时,可以使用单星号参数,它在参数前加一个*
    单星号形参表示:此处接受任意多个非关键字参数,且这些参数以元组形式存储。
    单星号实参表示:将可迭代对象转为多个非关键字参数。
    两者可以视为互逆关系,只是单星号实参使用类型更广,而单星号形参只会作为元组
    def add(a,*b,c):
    for i in b:
    print(i,end=' ')
    print(a,c)
    add(*[1,2,3,4,5],c=6)
     
    ​ 结果为

    2 3 4 5 1 6

    多星号参数
    与单星号参数类似的还有多星号参数

    多星号形参表示:此处接受任意多个关键字参数,这些参数以字典形式保存

    多星号实参表示:将字典类型转换为多个关键字参数,再传递给函数作为参数

    这两者就是简单的互逆关系,一个将关键字参数转为字典,另一个将字典转为关键字参数,例如

    def fun(b, **a):
    print(type(a))
    for k in a:
    print(k+":"+str(a[k]))
    print(b)

    dict1 = {"hello":1, "world":2}
    fun(b="hh",**dict1, myname=3)
     
    结果为

    <class ‘dict’>
    hello:1
    world:2
    myname:3
    hh

    单星号参数和多星号参数可以组成Python中的万能参数

    def fun(*args, **kwargs):
    pass
     
    参数注解
    在python3.5后引入的新用法,因为python函数的参数没有规定类型,所以就存在一些问题,比如:

    由于没有规定类型,所以一些类型不对的问题很难发现
    其他人在使用你的函数时,不知道应该传入什么参数
    对函数的参数进行类型注解 ,对函数的返回值进行类型注解 ,只对函数参数做一个辅助的说明,并不对函数参数进行类型检查 , 提供给第三方工具,做代码分析,发现隐藏的bug ,函数注解的信息,保存在__annotations__属性中

    语法例子如下:

    def fun(a: int, b: int)->int:
    return a+b
     
    其中:a和b后面跟着:加一个类型。函数参数后面,冒号前面用->指出返回类型

    例如

    def add(x: int, y: int)->int:
    return x+y

    print(add(2, 1))
    print(add('hello', 'world'))
    print(add.__annotations__)
    '''
    结果为:
    helloworld
    3
    {'x': <class 'int'>, 'y': <class 'int'>, 'return': <class 'int'>}
    '''
     
    可见,程序并不会警告也不会报错,但程序的可读性和可维护性会提高

    可以用inspect模块来进行类型检查,详情见:https://www.cnblogs.com/s-p-l/p/10246149.html

    2.调用函数
    调用函数和c语言一样,格式为 函数名(实际参数)
    在我们调用的时候,为了防止参数顺序出错等问题,可以使用关键字参数,就是在实际参数前加上形式参数的名字,这样就算交换顺序也无所谓了,注意:关键字参数必须在非关键字参数的左边,比如
    def add(a,b):
    print(a,b)
    add(b=1,a=3)
     
    ​ 结果为

    3 1

    3.函数文档
    函数文档是函数的一个特殊属性,它在函数体的开头,是一个字符串
    在函数执行时不会执行,用于说明函数的功能
    查看函数文档可以使用help或者直接输出_ _ doc _ _(为避免markdown语法,中间加了空格),例如
    def add(a,b):
    '我就是函数文档,add函数可以返回两个数相加的结果'
    c = a+b
    return c
    print(add.__doc__+"print")
    help(add)
     
    结果为

    我就是函数文档,add函数可以返回两个数相加的结果print
    Help on function add in module __main__:

    add(a, b)
    我就是函数文档,add函数可以返回两个数相加的结果
     
    从结果可以看出,help其实就是美化后的函数文档
    4.函数的返回值
    在Python中,函数可以返回多个返回值,只需要在return中写多个值,中间用逗号隔开即可,相当于组成了一个元组,然后返回这个元组。
    函数可以没有return,但这不意味着这个函数没有返回值,它会返回一个Nonetype类型的None
    5.内嵌函数
    python中允许在函数内定义函数,但在函数内定义的内嵌函数只能在该函数中调用,例如
    def fun():
    x = 50
    def fun2():
    print('a:',x)
    fun2()
    return x
    x = 100
    fun()
    print('b:',x)
     
    ​ 结果为

    a: 50
    b: 100


    原文链接:https://blog.csdn.net/qq_43713303/article/details/106765533

  • 相关阅读:
    hdoj_1800Flying to the Mars
    SPFA模版
    树状数组
    hdoj_1385Minimum Transport Cost
    hdoj_2112
    hdoj_3665Seaside
    Java的垃圾回收之算法
    Oracle和MySQL、PostgreSQL特性对比
    什么是java对象的强、软、弱和虚引用
    线程池(java.util.concurrent.ThreadPoolExecutor)的使用(一)
  • 原文地址:https://www.cnblogs.com/LQZ888/p/13143718.html
Copyright © 2020-2023  润新知