• dayⅩⅠ:函数的基本使用


    一、函数

    1、什么是函数

        具备某一功能的工具===》函数
        事先准备工具的过程===》函数的定义
        遇到应用场景拿来就用=》函数的调用
    

    2、为何要有函数

        内置函数(python3解释器定义好的,我们只需要拿来使用即可)
            1、拿来主义,提升开发效率
    
        自定义函数:(把程序中实现某一功能一块代码组织整理到一起)
            为了解决
                1、增强程序的组织结构性、提升可读性
                2、减少代码冗余
                3、提升程序的可维护性与扩展性
    

    3、如何用函数

        使用原则:先定义,后调用
    
        定义函数的语法:
    
            def 函数名(参数1,参数2,参数3):
                '''
                文档注释
                '''
                代码1
                代码2
                代码3
                。。。。。。
                return 值
    
        调用函数的语法:
            函数名(值1,值2,值3)
    ```python
    
    
    
    ### 4、基本使用
    ```python
    x = 10  # x = 存放值10的那个内存空间的内存地址
    print(x)
    
    def login():  # login = 存放代码的那个内存空间的内存地址
        name = input("your name>>: ")
        pwd = input("your pwd>>: ")
        role = input("your role>>: ")
        if name == "egon" and pwd == "123" and role == "amdin":
            print('login successful')
        else:
            print("user or password error")
    
    
    print(login)
    login()
    login()
    login()
    login()
    login()
    login()
    
    x = 10
    x() # 逻辑错误,没有语法错误
    

    1、先定义、后调用

    函数的使用分为两个阶段
    定义阶段:申请内存空间把函数体代码放进去,然后把内存地址绑定给函数名
    调用阶段:通过函数名找到函数体代码,加括号触发函数体代码运行
    
    强调:定义阶段只识别语法不执行代码,只有在调用阶段才会执行代码
    def func():
        xxx
    
    func()
    
    示范一:
    def f2():
        print('from f2')
    
    
    def f1():
        print('from f1')
        f2()
    
    f1()
    
    示范二:
    def f1():
        print('from f1')
        f2()
    
    def f2():
        print('from f2')
    
    f1()
    

    2、函数定义的三种形式

    无参函数
    def login():
        name = input("your name>>: ")
        pwd = input("your pwd>>: ")
        role = input("your role>>: ")
        if name == "egon" and pwd == "123" and role == "amdin":
            print('login successful')
        else:
            print("user or password error")
    
    login()
    
    有参函数
    def max2(x,y):
        # x=10
        # y=11
        if x > y:
            print(x)
        else:
            print(y)
    
    
    max2(10,11)
    max2(20,21)
    
    3.3 空函数
    def login():
        """登录功能。。。"""
        pass
    
    
    def register():
        pass
    
    
    def transfer():
        pass
    
    
    def withdraw():
        pass
    

    3、函数调用的三种形式

    def max2(p1_msalary, p2_msalary):
        if p1_msalary > p2_msalary:
            return p1_msalary
        else:
            return p2_msalary
    
    x = max2(10, 11)
    print(x * 12)
    
    语句形式:单纯的调用
    print("hello world")
    max2(10,11)
    
    表达式:
    x = max2(1, 2)
    res = max2(1, 2) * 12
    print(res)
    
    可以当做参数传给另外一个函数
    print(max2(1,2))
    
    res = max2(max2(10, 11), 12)
    print(res)
    

    4、函数的返回值

    1、函数体内没有return,或return后没有值:默认返回是None
    def func():
        # return None
        pass
    
    res = func()
    print(res)
    
    # 2、return 值:返回的就是这一个值
    def func():
        return 123
    
    res=func()
    print(res)
    
    3、return 值1,值2,值3:返回一个小元组(值1,值2,值3)
    def func():
        return 123, "abc", 3.1
    
    
    res = func()
    print(res, type(res))
    
    
    补充:函数内可以有多个return,return是函数结束的标志,函数体代码但凡运行到一个
    return就会立刻终止整个函数的运行,然后将return后的值当做本次调用的产品返回
    def func():
        print("first")
        return 111
        print('second')
        return 2222
        print('third')
        return 3333
    res=func()
    print(res)
    

    5、函数的参数分为两大类

    形参
    #在定义函数阶段,括号内指定的参数,称之为形式参数,简称形参
    #形参相当于定义在函数内的变量名,用于接收外部传进来的值
    def func(x,y):
        x=10
        y=11
        print(x)
        print(y)
    
    实参
    #在调用函数阶段,括号内传入的值,称之为实际参数,简称实参
    #实参相当于变量值,用于为形参赋值的
    func(10,11)
    
    ps:在函数调用时,会将实参的值绑定给形参,这种绑定关系只能在函数内使用,在函数调用完毕后,实参
    与形参会解除绑定,回收占用的内存空间
    
  • 相关阅读:
    Linux中conda安装R出现 package ‘utils’ in options("defaultPackages") was not found?
    生物信息软件/流程dockerfile打包参考
    非模式生物的GATK BQSR and VQSR
    【动植物研究动态】20220529文献解读
    基因组云计算书籍推荐:Genomics in the Cloud Using Docker, GATK, and WDL in Terra
    科技论文写作培训(蛋白质组方向)
    Docker容器yum报错连不上网:curl#6 "Could not resolve host: mirrorlist.centos.org; Unknown error"?
    Codeforces Round #782 (Div. 2)
    Codeforces Round #791 (Div. 2)
    sqlserver 判断是否存在,如果存在就update,不存在就insert
  • 原文地址:https://www.cnblogs.com/qujiu/p/13137939.html
Copyright © 2020-2023  润新知