zoukankan      html  css  js  c++  java
  • 011.Python之函数的基本使用

    一、函数及其基本使用

    (一)什么是函数?

    函数是具备某一功能的工具。

    函数的定义是准备这个工具的过程。

    函数的调用就是使用工具。

    (二)为何要有函数?

    1.对于内置函数来说,主要是为了:

    (1)提升开发效率

    2.对于自定义函数来说:

    (1)为了增强程序的组织结构性、提升可读性;

    (2)减少代码冗余;

    (3)提升程序的可维护性与扩展性。

    PS:自定义函数是把程序中实现某一功能的代码组织整理到一起

    (三)如何使用函数?

    1.使用原则:

    先定义,后调用。

    2.定义函数的语法:

    def 函数名(参数1,参数2,参数3):
        '''
        文档注释
        '''
        代码1
        代码2
        代码3
        。。。。。。
        return 值
    

    3.调用函数的语法:

    函数名(值1,值2,值3)
    

    4.基本使用:

    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)  # <function login at 0x0000017D687C53A0>
    
    x = 10
    x() # TypeError: 'int' object is not callable  整型不可被调用 是逻辑错误,没有语法错误
    

    5.先定义,后调用

    函数的使用分为两个阶段:

    (1)定义阶段:申请内存空间把函数体代码放进去,然后把内存地址绑定给函数名。

    (2)调用阶段:通过函数名找到函数体代码,加括号触发函数体代码运行。

    注意:定义阶段只识别语法、不执行代码,只有在调用阶段才会执行代码!

    def func():
        xxx
    func() # NameError: name 'xxx' is not defined  
    #!强调!:定义阶段只识别语法不执行代码,调用阶段执行代码报错
    

    示例1:

    def f2():
        print("from f2")
    
    def f1():
        print("from f1")
        f2()
    
    f1()  # from f1  
     from f2
    

    示例2:

    def f1():
        print("from f1")
        f2()
    
    def f2():
        print("from f2")
    
    f1()  # from f1  
     from f2
    

    6.函数定义的三种形式

    (1)无参函数

    def login():
        name = input("your name : ")
        pwd = input("your name : ")
        role = input("your role : ")
        if name == "egon" and pwd == "123" and role == "admin":
            print("login successful")
        else:
            print("user or password error")
    
    login() # 调用函数
    

    (2)有参函数

    def max2(x, y):
        if x > y:
            print(x)
        else:
            print(y)
    
    max2(11, 2222)  # 2222
    

    (3)空函数

    def login():
        """登录功能"""
        pass
    
    def register():
        pass
    
    def transfer():
        pass
    

    7.函数调用的三种形式

    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)
    

    (1)语句形式(单纯的调用):

    print("hello world")  # 调用内置函数print
    max2(10,11)
    

    (2)表达式形式:

    x = max2(1, 2)
    res = max2(1, 2) * 12
    print(res)
    

    (3)可以当作参数传给另一个函数:

    print(max2(1, 2))
    
    res = max2(max2(10, 11), 12)
    print(res)
    

    二、函数的返回值

    (一)return是什么

    return是函数结束的标志,函数内可以有多个return,函数体代码但凡运行到一个return,就会立即终止整个函数的运行,然后将return后的值当作本次调用的产品返回。

    (二)函数的返回值

    1.函数体内没有return,或return后没有值:

    默认返回的是None。

    def func():
        # return None  属于多此一举,本身就默认了返回None
        pass
    
    res = func()
    print(res)  # None
    

    2.return值:

    返回的就是这一个值。

    def func():
        return 123
    
    res = func()
    print(res)  # 123
    

    3.return 值1 值2 值3 ...:

    返回一个小元组(值1, 值2, 值3)

    def func():
        return 123, "abc", 3.1
    
    res = func()
    print(res)  # (123, 'abc', 3.1)
    

    三、函数参数的详细使用

    (一)函数参数的两大分类:

    1.形参:

    在定义函数阶段,括号内指定的参数,称之为形式参数,简称形参。形参相当于定义在函数内的变量名,用于接收外部传进来的值。

    def func(x,y):
        # x=10
        # y=11
        print(x)
        print(y)
    

    2.实参:

    在调用函数阶段,括号内传入的值,称之为实际参数,简称实参,实参相当于变量值,用于为形参赋值的。

    func(10,11) 
    

    3.总结:

    在函数调用时,会将实参的值绑定给形参,这种绑定关系只能在函数内使用,在函数调用完毕后,实参会与形参解除绑定,回收占用的内存空间。

  • 相关阅读:
    EhCacheManager篇
    CXF篇
    soap篇
    动态代理篇
    springmvc中使用interceptor拦截器
    hibernate用注解配置实体类的映射
    项目随笔之springmvc中freemark如何获取项目路径
    项目随笔-------第一篇
    springMVC前台传入字符串日期参数转化
    js获取当前日期方法
  • 原文地址:https://www.cnblogs.com/huluhuluwa/p/13138632.html
Copyright © 2011-2022 走看看