zoukankan      html  css  js  c++  java
  • day11

    函数的参数

    #实参:有实际意义的参数
    #形参:参数本身没有意义,有实参赋予形参值后,该形参就具备了意义
    #形参是对实参的值拷贝:可变与不可变类型
    '''
    实参(必须先传位置实参,再传关键字实参)
    1:拿实际值进行传参 2.拿位置进行传参,形参与实参传参,位置需要对应,参数不能多也不能少
    3.那关键字实参进行传参,指名道姓进行传参 -传参的过程指名道姓形参
    形参
    1:位置形参:位置形参可以有位置进行传参,也可以关键子实参进行传值
    2:默认形参:有默认值的形参可以传参,实参会赋值给形参,不传参参数为默认值
    位置形参必须在默认形参之前,但是使用位置传参时默认参数就没有意义
     
    3:可变长位置形参:可以接收0~N个位置实参,0个就是空元组 |约定俗成使用*args
    4.有无默认值关键字形参
    5.可变长关键字形参:可以接收0~N个关键字实参,0个就是空字典 |约定俗称使用**kwargs

    注:假设在一个函数中出现了上方所有类型的参数,顺序自上而下
    结论:定义函数形参时,*号前所有参数称之为位置形参,*号后所有参数称之为关键字形参

    实参组合传参规则:必须先传位置参数,再传关键字参数
    可变长位置形参,只能接受位置实参,要想被赋上值,前面有值的位置形参的默认值没有意义
    所有位置形参全部采用位置实参进行传值
    所有关键字形参全部采用关键子实参进行传参
    '''

    打散机制

    def fn(*args, **kwargs):
       print(args)
       print(kwargs)

    fn(*(1,2,3),{'a':1,'b':2,'c':3})
    # 因为*args和**kwargs会把接受的实参放在元组和字典里,所以需要打散机制
    # *单列容器:*tuple|*list 会打散单列容器
    # **双列容器:**dict 会打散双列容器
    # *str 字符串也会被打散
    # 可以在传参的时候写,也可以在print(*)里面写

    函数的嵌套使用

    #在一个函数中调用另一个函数
    def a():
       print(0)
    a()
    #在函数a中,我们调用了另一个函数(可以是系统函数,也可以时自己定义的函数),这就叫函数的嵌套使用
    #当在函数a中,调用函数b时,但是再调用函数a时,调用的语法必须要写在b函数声明的后面

    字符串的比较

    #在python中字符串的比较,其实是对应Ascii表的十进制的数值
    #A~Z:65~90 32代表空格 a~z:97~122
  • 相关阅读:
    为什么使用enable_shared_from_this——shared_ptr两类错误
    More Effective C++ Item14:明智运用exception specifications
    用“双优先队列”方法解决双/多指标的规划问题
    彻底理解AC多模式匹配算法
    CentOS7安装MySQL
    CentOS7配置本地Yum源
    数组
    比较运算符
    申明变量
    相等运算符==与等同运算符===
  • 原文地址:https://www.cnblogs.com/zhuqihui/p/10771363.html
Copyright © 2011-2022 走看看