python三之缺省函数(及字典)
来源:互联网 发布:稀土元素男装淘宝 编辑:程序博客网 时间:2024/06/03 16:54
#coding:utf-8def selfAdd(a): a = a + a return a #返回def selfAdd1(a): a += aa_list = [ 1,2]print(selfAdd(a_list)) #赋值回来selfAdd(a_list)print a_listselfAdd1(a_list)print a_list"""在python中,a=a+a是先创建一个新的对象并让变量a引用这个对象,a+=a是让a所引用的对象的值变成a+b的值赋参数在python是用assignment (分配)不是reference(参考),所以你赋a过去函数赋的是a的值,而不是a本身。若你要改动a本身就需要用return赋值回來分配的地址似乎一直在改变。原因在于,Python中的数据结构分为可变(mutable)和不可变(immutable)。对于可变类型,=和+=有着明显的不同,如上面的list:+表示连接操作,+=表示追加对于不可变类型,=和+=就是一样的操作,如上面的tuple可变类型与不可变类型的本质在于内存空间是否可变"""#coding:utf-8def fun (a,b,*args,**kwargs): print('a',2) print('b',3) print('args',args) print('kwargs',kwargs) for x in kwargs:print(x,kwargs[x]) print(x)"""我们会发现运行结果p显示在最前面,注意到细节可知,字典的遍历结果的显示顺序是随机的。Python的字典实现其实就是个哈希表(当然里面有一些优化),每次赋值其实就是计算key的哈希值然后放到哈希表的指定位置中。遍历的话就是从前向后遍历整个哈希表。这里不讲处理冲突,就说最简单的往一个空字典中插入两个值。"""fun(1,2,3,4,5,0,n=6,m=7,p=9)fun(1,2,3,4,5,0,m=6,n=7,o=9)fun(1,2,3,4,5,0,m=6,n=7 )fun(1,2,3,4,5,0,o=6,n=7 )#运行结果O在前面fun(1,2,3,4,5,0,n=6,o=7 )fun(1,2,3,4,5,0,m=6,n=7,p=9)'''fun(1,2,3,4,5,m=6,n=7,p=9,0)这样写是错误的,因为最后一类的类型需要是字典,并且不定长元祖参数需要放在不定长字典参数之前'''c=(9,10,11)d={'m':12,'n':13,'p':14}fun(1,2,*c,**d)#coding:utf-8def int (name,age = 20 ):print("name",name)print("age",age)int(name='kouys') #print("********************8888")def int (name,age = 20):print("name",name)print("age",age)print int(name='kouys')#只输入了name的初值,因此输出时age输出默认值,name输出给定值#print int(name='kouys',2)这样写会报错,因为前面name用了关键词锁定,而age没有用,在python这里是不被允许的#print int(name='kouys',age=2) or print int('kouys',2)这样写是正确的,格式统一print("********************8888")def int (name,age = 20):return name#此处用了函数返回值returnreturn ageprint int(name='kouys')print("********************8888")def int (name,age = 20):return namereturn ageprint int('kouys',2) #此时name,age都输入了初值,因此输出的name为kouys,age为2print("********************8888")这里给出两个参数的不同输出,输入方法,以及一些相关性质,还有一些注意事项,具体看一下上例应该会明白一点。接下来,我们会针对不确定参数个数,所以我们要用特殊的方法符号来表达自己的函数,例如*args、*kwargs,这两个是特殊的符号,前者代表元组,后者代表字典,将后期不定长参数进行总合输出。在此给出一个例子,本人也有不懂之处,有错望指出。此处摘自别人指点(Python的字典实现其实就是个哈希表(当然里面有一些优化),每次赋值其实就是计算key的哈希值然后放到哈希表的指定位置中。遍历的话就是从前向后遍历整个哈希表。这里不讲处理冲突,就说最简单的往一个空字典中插入两个值。)关于字典的输出,是根据key值,而不是根据value值。话说随机,但是看到每次的输出结果又莫名感觉有点规律,但是又说不出其中缘由,看代码中的fun(1,2,3,4,5,0,n=7,m=6,p=9)以及fun(1,2,3,4,5,0,m=6,n=7,p=9)可知p.m.n即便数值不同位置显示一致
阅读全文
0 0
- python三之缺省函数(及字典)
- Python之道(三)之字典
- C++之缺省参数的构造函数、缺省的构造函数及缺省的析构函数
- Python学习之字典的基本操作及字典中的函数
- python一些基本知识点之字典(三)
- Python随记(三)字典
- python字典排序及sorted函数
- python之字典和函数参数
- python _缺省参数及赋值
- Python入门基础之函数(三)
- C++中的三大缺省函数 之 《深拷贝与浅拷贝》
- python 函数的缺省参数的注意事项
- Python编程——Python基础知识之字典(三)
- Python学习(三)——字典、有序字典、集合
- C++编程思想读书笔记之 第五章 函数重载及缺省参数
- C++初识之函数重载、缺省参数
- 缺省函数
- 【Python初学笔记】no.2字典和函数及练习
- 自助银行服务系统项目开发__渣渣的Java学习之路
- HDU1255 覆盖的面积(线段树,离散化,扫描线,矩形面积交)
- 开发过程中RecyclerView遇到的坑(包括嵌套使用时)
- mysql --- having
- tcp粘包分析
- python三之缺省函数(及字典)
- Java方法
- 关于烂代码的那些事(下)
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- 0805Java 字符串
- 排班这件“小事”
- Glide获取Bitmap和Drawable
- Math.random和Math.floor取随机数总结
- 图文演示怎么画流程图的经验汇总