zoukankan      html  css  js  c++  java
  • python 函数和函数名的应用

    一、函数

    1.函数定义

    def 关键字 -- 定义

    func 函数名 -- 和变量定义规则一样

    ()必须要写格式

    : 声明语句结束

    def my_len():

    ​ 函数体

    def func(a:int,b:str):

    ​ print(a,b)

    func(1,2)

    2.函数的好处

    ​ 1.减少代码重复性(冗余)

    ​ 2.代码可读性高

    ​ 3.将功能进行封装(造工具)

    3.调用函数

    ​ 函数名+()

    ​ 多次调用就是执行多次

    ​ 可以循环使用

    def func():
    print("test")

    func()

    4.函数的返回值

    return 的内容返回给了函数的调用

    return 返回一个内容(就是内容本身) 可以返回任意类型

    return下方的代码不执行,终止这个函数

    return 终止函数,切记不能终止循环

    return 返回多个内容的时候是元组形式

    return 没有写返回值的时候返回的是None,不写return返回的也是None

    5.位置传参

    def yue(a,b,c=1): # 形参 c = 1是默认参数

    ​ print("test")

    yue(True,(1,),c=3) # 实参 位置参数 > 默认参数

    函数的参数

    形参:函数定义的时候叫做形参

    ​ 位置参数

    ​ 默认参数

    ​ 混合参数

    实参:函数调用的时候叫做实参

    ​ 位置参数

    ​ 关键字参数

    ​ 混合参数

    传参:将实参传递给形参的过程叫做传参

    6.函数的动态函数

    *args,**kwargs(能够接收函数的位置参数和动态的关键字参数)

    定义阶段(*args,**kwargs) 聚合

    ​ *args -- tuple

    ​ **kwargs -- dict

    使用阶段*args,*kwargs打散

    ​ *args - 源数据类型

    ​ *kwargs - 打散的是字典的键

    优先级:位置 > 动态位置 > 默认 > 动态关键字

    lst = [12,23,323,32,32,4]

    def func(*args):

    ​ print(*args)

    func(lst[0],lst[1]) # 笨的方法

    func(*lst)

    7.函数的注释

    """

    每次写函数的时候需要写注释

    函数名.__doc__ 查看函数的注释

    函数名.__name__ 查看函数的名字

    """

    8.名称空间

    内置空间:python解释器自带的

    全局空间:当前文件(.py文件)

    局部空间:函数体开辟的空间

    加载顺序:内置>全局>局部

    取值顺序:局部>全局>内置

    作用域:

    全局作用域:内置+全局

    局部作用域: 局部

    9.函数嵌套

    函数中套函数

    函数嵌套调用

    函数嵌套参数的传递

    函数嵌套返回值的传递

    10.global nonlocal

    global:修改全局空间的变量对应的值

    nonlocal:在外层的函数中,修改局部空间的变量值,完全不涉及全局变量,只修改离他最近的一层,最近的一层没有变量继续向上找,直到找到最外层函数

    三元运算符

    a = 10

    b = 20

    c = a if a > b else b

    变量名 = 条件成立的结果 条件 条件不成立的结果

    二、函数名的应用

    1.函数名指向的是函数的内存地址,加上()就执行这个函数

    func()

    2.函数名就是一个变量

    age1 = 12
    age2 = age1
    age3 = age2
    print(age3)
    def fuc():
        print(666)
    f1 = fuc
    f2 = f1
    f2()
    f1()
    

    3.函数名可以作为容器类类型的元素

    def func1():
    
     	print('in func1')
    
    def func2():
    
     	print("in func2")
    
    def func3():
    
         print("in func3")
    
    lst = [func1,func2,func3]
    
    for i in lst:
    
         i()
    

    4.函数名可以作为函数的实参。

    def func1():print("in func1")
    def func2(argv):
        argv()
        print('in func2')
    func2(func1)
    

    5.函数名可以作为函数的返回值

    def func1():
        print("in func1")
    def func2(argv):
        print("in func2")
        return argv
    ret = func2(func1)
    ret()
    
  • 相关阅读:
    Java中File类的使用
    Java集合中Comparator和Comparable接口的使用
    ODP.NET
    DllImport
    .net 项目与网站区别
    sqlserver 2012 分页
    sqlserver 分页
    ORACLE 中ROWNUM
    mysql 分页优化
    mysql windows 安装
  • 原文地址:https://www.cnblogs.com/alex3174/p/11203946.html
Copyright © 2011-2022 走看看