zoukankan      html  css  js  c++  java
  • day11

    可变长参数

    • 形参名(*)表示调用函数时,有多少个位置实参,我就接收多少个参数

    • 形参名(**)用字典接收多余的关键字实参

    (*实参)(#lt)把列表中的元素打散成位置实参依次传给位置形参

    def f1(a, b, c, e, d, f, g):
        print(a, b, c, e, d, f, g)
        
        
    lt = [1, 2, 3, 4, 5, 6, 7]
    
    f1(*lt)  
    

    (**实参) 参数把字典打散成关键字实参然后传给函数f1

    def f1(z, b):
        print(z, b)
        
        
        
    dic = {'z': 1, 'b': 2}  # a=1,b=2
    f1(**dic)  # **dic把字典打散成关键字实参然后传给函数f1
    

    函数对象

    python中一切皆对象函数

    • 引用
    • 容器元素
    • 作为函数的实参
    • 作为函数的返回值
    • 字典/列表/元组/集合/布尔值

    函数对象 == 函数名

    函数对象的应用

    比如定义一个注册函数

    def register()
       pass
    

    函数嵌套

    就是函数里面有函数

    def f1()
       print('from f1')
       def f2()
       print('from f2')
       
       
    res = f1()
    

    函数内部定义的函数,外部不能使用

    名称空间和作用域

    名称空间:专门存储名称的

    内置名称空间:存储了内置方法的名称

    数据类型自带的内置方法:python解释器自带的内置方法(print/len/str)

    • 全局名称空间:除了内置和局部都叫全局

    • 局部名称空间:函数内定义的都叫局部

    名称空间的执行(生成)顺序:内置--》全局--》局部

    搜索顺序:先从当前的位置,找不到按照这种顺序,不会逆着方向找 局部 --》全局--》内置——》报错

    全局作用域:内置名称空间+全局名称空间——》全局作用域

    • 局部作用域:全局作用域和局部作用域没有关系

    • 局部作用域:局部作用域和局部作用域没有关系

    • global:打破了全局作用域,让代码下面的局部x变成全局的x

    • nonlocal:打破了局部作用域,让x成为顶层的局部,不让他成为全局

    打印99乘法表

    for i in range(1,10):
        for j in range(i):
            print(f'{j+1}*{i} = {(i)*(j+1)}',end = '  ')
    
        print()
    

    运行结果:

    1*1 = 1  
    1*2 = 2  2*2 = 4  
    1*3 = 3  2*3 = 6  3*3 = 9  
    1*4 = 4  2*4 = 8  3*4 = 12  4*4 = 16  
    1*5 = 5  2*5 = 10  3*5 = 15  4*5 = 20  5*5 = 25  
    1*6 = 6  2*6 = 12  3*6 = 18  4*6 = 24  5*6 = 30  6*6 = 36  
    1*7 = 7  2*7 = 14  3*7 = 21  4*7 = 28  5*7 = 35  6*7 = 42  7*7 = 49  
    1*8 = 8  2*8 = 16  3*8 = 24  4*8 = 32  5*8 = 40  6*8 = 48  7*8 = 56  8*8 = 64  
    1*9 = 9  2*9 = 18  3*9 = 27  4*9 = 36  5*9 = 45  6*9 = 54  7*9 = 63  8*9 = 72  9*9 = 81  
    

    上节课回顾

    • 函数的定义

    函数定义阶段只检测语法,不执行代码

    • 函数的三种定义方式
    1. 空函数
    2. 无参函数
    3. 有参函数
    • 函数的返回值
    1. return可以返回值,默认返回None,return后面不加东西也返回None
    2. return可以终止函数,有多个return,执行到第一个就结束了
    3. return可以返回多个值,以元组形式返回
    • 函数的调用

    函数调用就会执行代码

    函数名()

    • 函数的参数
    1. 形参

    接收实参,具有描述意义,相当于变量

    1. 实参

    传值给形参

    • 位置形参

    依次接收位置实参的值

    • 位置实参

    依次传值给位置形参

    • 默认形参

    具有默认值,如果传参,使用传参的值;否则使用默认值(形参会多次使用同一个值)

    默认形参必须得放在位置形参后面

    • 关键字实参

    按照形参名传参(参数较多的情况下使用这个方法)

    关键字实参必须得在位置实参的

  • 相关阅读:
    2019/2/3从字符串中删除指定的字符
    2019/2/3求组合数
    2019/2/3统计各成绩段的学生人数
    2019/2/3摄氏一华氏温度转换表
    2019/1/29有选择的复制字符串
    2019/1/28数字的移动
    2019/1/2810个整数的数据处理
    2019/1/27从三个数中找出最大的数(函数和宏)
    2019/1/23编写函数统计字符串中字母、数字、空格和其它字符的个数
    Jenkins 执行python脚本
  • 原文地址:https://www.cnblogs.com/gfhh/p/11556679.html
Copyright © 2011-2022 走看看