首页 > 其他分享 >11

11

时间:2022-10-10 18:44:17浏览次数:52  
标签:11 传参 形参 名称 print fff def

今日内容总结

函数参数之位置参数

位置形参:   函数定会阶段括号内从左至右填写的变量名
def aaa(1,2,3):
    print(1,2,3)
位置实参:   函数调用阶段括号内从左往右填写的数据值
aaa(a,b,c)
	
'''
	要与位置形参做到一一对应 多了或少了均会报错
'''
# 关键字传参的格式:
关键字传参必须要在位置传参后面
口诀:越短越简单越靠前
	 越长越复杂越靠后
     同一形参不可多次赋值

# aaa(a=1,b=2,c=3)

image

如果 位置实参与关键字传参互相组合 必须是位置参数在关键子参数前
# aaa(1,b=2,c=3)  # 结果与上述一样

使用关键字传参可以打乱位置 不过要遵循一个形参不可多次赋值
# aaa(b=1,c=2,a=3)

image

实参没有固定的定义 可以传数据值 也可以传绑定了数据值的变量名
n=123
m=456
t=789
# aaa(n,m,t)

image

默认参数

# 在定义函数给参数直接赋值 若在后续的调用阶段没有新的值输入 则会保持之前赋的值
本质就是关键字传参 
'''默认参数也遵循 简单的靠前 复杂的靠后'''
def infor(name,age=18):
    print(name,age)
infor('xiaochen',19)  # 如果输入了则就按照所输入来执行

infor('jason')    # 不输入也不会报错

image

可变长参数

可变长形参

def fff(*a):
    '''加入*号的形参会接受所有多余的数据值 不输入也行'''
    print(a)
1.fff()       # ()
2.fff(1)      # (1,)   产生的结果会是一个元组

当位置形参与可变长形参一起使用时
def fff(a,*b):
    '''必须有一个数据值给a 不然会报错'''
    print(a)
fff(1,2,5,5,4)  # 数据的第一个值会给a 后面多余出的数据自动组成元组赋值给b

image

def fff(**k):
    '''也可以接受多种数据值 不输入也不会报错'''
    print(k)
1.fff()         # {}
2.fff(b=1,c=2)  # {'b':1,'c':2} **可接受多余的关键字传参并自动组成一个字典返回

#  多种形参混合使用
1. * 与 ** 混合使用
def fff(*a,**k):
	print(a,k)
fff()  # *可以接收多余的数据值 **可以接收多余关键字传参所以兼容性十分高

image

2.位置参数与可变长参数混合使用
def fff(c,*a,**k):
    print(c,a,k)
fff()  # 由于加了位置参数的原因所以必须加入一个数据值 来提供给c

image

可变长实参

# 用法
def fff(a,b,c):
    print(a,b,c)
l1 = [1,2,3]
fff(*l1)  # 可将列表中的数值拆分成一个一个的数据值 在一次性赋值给形参
'''
1.这种方法适用于与形参个数相等数据值个数的元组,集合以及与字符串字符相等的字符串
2.与for循环的遍历类似 但是将遍历出的值一次性赋值给形参
3.字典参与时只有键会参与
'''

image

# 如果想要获取字典的键所绑定的值
def fff(a,b,c):
    print(a,b,c)
dict_1={'a':1,'b':2,'c':3}
fff(**dict_1)  # 将字典中键的值赋值给形参
'''
注意:
1.只有字典键与形参相等时才可以
2.遵守一一对应
'''

image

命名关键字参数

#让形参只能按照关键字参数传参
代码实现:
def fff(a,*b,c=555,**d):
    print(a,b,c,d)
fff(1,22,333,444,f=666)
'''
如果不使用关键字传参 c将无法接受到新的数据 就只能绑定555 而且不会报错
'''

image

名称空间

'''
name='xiaochen'
   在使用变量名绑定数据值时底层的原理是申请一块空间来存储数据值 用变量名来表达这个数据值的坐标 
   那么变量名存哪?
'''
#  名称空间 就是负责存储变量名和变量名绑定的数据对应关系的地方
1.内置名称空间
   解释器运行时自动储存
   eg: len print
2.全局名称空间
   py文件使用时 里面存放的文件级别名字
   name = 'xiaochen'
   eg: name
3.局部名称空间
   函数体代码执行时 产生的空间

名称空间存货周期以及作用范围(域)

# 存活周期
	1.内存名称空间
    	随着python解释器启动而产生 关闭就销毁
	2.全局名称空间
    	py文件打开而创建 运行结束则销毁
	3.局部名称空间
    	函数体代码运行(函数被调用)而产生 函数体代码结束销毁(类不考虑)
# 作用域
	1.内存名称空间
    	解释器级别的全局有效
	2.全局名称空间
    	py文件全局有效
	3.局部名称空间
    	函数体代码内有效

名字的查找顺序

# 局部名字查找
局部名称空间>>>全局名称空间>>>内置名称空间
# 全局名字查找
全局名称查找>>>内置名称查找

查找循序案例

1.相互独立的局部名称空间默认不能相互访问
def fff():
    name = 'jason'
    print(age)
    
def aaa():
    age = 19
    print(name)

#   直接报错
2.局部名称空间的嵌套
     先从自己的名称空间查找 之后从内到外查找
  '''函数体代码中名字的查找顺序在函数定义阶段就以及固定'''
eg:
	x = '全局名称'
    def func1():
        x = '局部一'
        def func2():
            x = '局部二'
            def func3():
                # 如果print在这会直接报错 无法查找
                x = '局部三'
                # 如果print在这就会打印 '局部三'
            func3()
        func2()
    func1()           

image

标签:11,传参,形参,名称,print,fff,def
From: https://www.cnblogs.com/xiaochenxiangchangpang/p/16776427.html

相关文章

  • Win11 安卓子系统上线,详细安装教程在此
    作为一个全新发布的系统,Win11带来了许多新的特性,这其中最受人瞩目的当属对安卓APP的支持了。Win11对安卓应用的支持是通过内置安卓子系统(WSA)来实现的,相比于一些第三......
  • 【镜像下载】Windows 11 (Dev 22454.1000 / Beta 22000.184) 八合一纯净版
    又到周五了,又到了Win11新版本推送的时间。今天凌晨,微软照例向Windows预览体验计划的Dev和Beta频道用户推送了Win11最新预览版的更新:Dev频道推送的版本为22454.1......
  • 缺少 TPM 2.0 导致无法升级 Win11 最新 Dev 预览版的解决方案
    微软在本周四向Windows预览计划的Dev频道推送了Win11最新预览版的更新,版本号为22458.1000,但是有很多朋友在更新系统时都遇到了因缺少TPM2.0支持导致无法正常升级......
  • Windows 11 最新版系统镜像
    本周四和周五凌晨,微软分别向Windows预览体验计划的用户推送了Windows11预览版的最新更新。周四向Dev频道推送的版本为22458.1000,周五向Beta频道推送的版本为2200......
  • Windows 11 正式版即将推送,微软上线官方「抢鲜版」系统镜像
    本周四和周五凌晨,微软分别向处于Dev和ReleasePreview频道的Windows预览体验计划用户推送了Windows11预览版的最新更新:周四向Dev频道推送的版本为22463.1000,周......
  • 距离 Windows 11 正式版推送还有四天,不会有更多惊喜了
    本周四凌晨,微软向处于Dev频道的Windows预览体验计划用户推送了Windows11预览版的最新更新,版本号为22468.1000。本次推送的版本没有增加新的功能和大的改进,主要是以......
  • Python基础11
    今日内容概要函数参数名称空间与作用域名字的查找顺序今日内容详细函数参数位置参数及关键字参数位置形参 函数定义阶段括号内从左往右依次填写的变量名 deffu......
  • rock rv1126buildroot增加ntp过程
    切换到rv1126_rv1109_20210616/buildroot/output/rockchip_rv1126_rv1109$makentp-reconfiguremakentp-rebuild这里就会把ntpd安装到target文件系统里面然后再上......
  • IEEE802.11g 标准的OFDM
    首先IEEE802.11g标准的OFDM的帧结构如下所示:关于802.11g,其基本的帧结构:       短训练序列分为10段,每段长度为16个抽样点;长训练序列分为2段,每段长度为128个抽样点,总......
  • Python学习路程——Day11
    Python学习路程——Day11函数参数在使用函数参数时,一般情况下所需要遵循的规范: 越短的、越简单的、越靠前 越长的、越复杂的、越靠后同一个形参在调用的时候不能多......