美文网首页Python全栈工程师
14-1 函数定义与默认值

14-1 函数定义与默认值

作者: BeautifulSoulpy | 来源:发表于2019-07-12 21:23 被阅读3次

    我们总在感叹生活的苦,抱怨命运对我们的过分苛求,可是你看,这世上哪有真正的顺风顺水,每个人都在负重前行!

    1.函数

    1.1 函数

    数学定义:y=f(x) ,y是x的函数,x是自变量。y=f(x0, x1, ..., xn)
    
        Python函数
    def add(x,y):         #def 标识符;参数:x,y为形参
        return(x+y)     # return 函数返回值
        
    add(2,3)    
    #调用必须要有小括号;调用送实参进去;
    # 2,3为实参
    
    # print()本身没有返回值(none,none也是一个合法数据),只是有打印的作用
    print(print(add(2,3)))    
    
    Python语言的坏处: (语言规范,掌控这个动态性就是好处)
    print(add([1],[2]))  #动态语言:控制不了传入的参数是什么类型;
    print(add('a','b'))
    ----------------------------------------------------------------------------
    5
    None
    [1, 2]
    ab
    

    由若干语句组成的语句块、函数名称、参数列表构成,它是组织代码的最小单元

    完成一定的功能

    1.2 函数的作用

    1. 结构化编程对代码的最基本的封装,一般按照功能组织一段代码
    2. 封装的目的为了复用,减少冗余代码
    3. 代码更加简洁美观、可读易懂
    

    1.3 函数的分类

    内建函数,如max()、reversed()等
    库函数,如math.ceil()等
    lambda 表达式 匿名函数

    2.函数定义、调用

    2.1 def语句定义函数

    def 函数名(参数列表):
    函数体(代码块)
    [return 返回值]

    1.函数名就是标识符,命名要求一样
    2.语句块必须缩进,约定4个空格
    3.Python的函数没有return语句,隐式会返回一个None值
    4.定义中的参数列表成为形式参数,只是一种符号表达,简称形参
    
    查看是否可调用callable
    print(callable(add))   #函数是否可调用
    callable(add(4,5))   # 9是否可调用;
    ---------------------
    True
    False
    

    2.2调用

    1.函数定义,只是声明了一个函数,它不会被执行,需要调用
    2.调用的方式,就是函数名加上小括号,括号内写上参数
    3.调用时写的参数是实际参数,是实实在在传入的值,简称实参
    

    3.函数参数

    参数调用时传入的参数要和定义的个数相匹配(可变参数例外)

    位置参数

    • def f(x, y, z) 调用使用 f(1, 3, 5)
    • 按照参数定义顺序传入实参

    关键字参数

    • def f(x, y, z) 调用使用 f(x=1, y=3, z=5)
    • 使用形参的名字来出入实参的方式,如果使用了形参名字,那么传参顺序就可和定义顺序不同

    传参

    要求位置参数必须在关键字参数之前传入,位置参数是按位置对应的
    f(z=None, y=10, x=[1])
    f((1,), z=6, y=4.1)
    f(y=5, z=6, 2) #

    4.函数参数默认值

    4.1参数默认值(缺省值)

    定义时,在形参后跟上一个值
    def add(x=4, y=5):
    return x+y

    测试调用 add(6, 10) 、add(6, y=7) 、add(x=5) 、add()、add(y=7)、 add(x=5, 6) 、add(y=8, 4)、add(x=5, y=6)、add(y=5, x=6)

    测试定义后面这样的函数 def add(x=4,y)

    4.2作用

    • 参数的默认值可以在未传入足够的实参的时候,对没有给定的参数赋值为默认值
    • 参数非常多的时候,并不需要用户每次都输入所有的参数,简化函数调用

    举例
    定义一个函数login,参数名称为host、port、username、password

    def login(host='127.0.0.1',port='8080',username='wayne',password='magedu'):
        print('{}:{}@{}/{}'.format(host, port, username, password))
    
    login()
    login('127.0.0.1', 80, 'tom', 'tom')
    login('127.0.0.1', username='root')
    login('localhost', port=80,password='com')
    login(port=80, password='magedu', host='www')
    ---------------------------------------------------------------
    127.0.0.1:8080@wayne/magedu
    127.0.0.1:80@tom/tom
    127.0.0.1:8080@root/magedu
    localhost:80@wayne/com
    www:80@wayne/magedu
    
    总结:
    1.函数的基本构成要素:def 标识符,括号,形参,实参,返回值;
    2. 函数参数默认值中的:位置实参,关键字实参
    
    

    相关文章

      网友评论

        本文标题:14-1 函数定义与默认值

        本文链接:https://www.haomeiwen.com/subject/utqukctx.html