标签:
不得不吐槽一下,写了半天的东西,直接丢失了,还得重写,得了。
集合有2个重要作用:关系测试(并集,差集,交集)和去重。
2.7上默认文件编码是ASCII码,因为不支持中文,就出了GB2312,在2.7上要支持中文就必须申明文件编码以UTF-8的格式,UTF-8与GB2312的关系?
UTF-8是Unicode的扩展集合,Unicode包括全国地区的编码,中国很多开始程序还是以GBK的格式,GBK向下兼容GB2312,Windows默认编码是GBK。
Unicode为何要做出来?为了节省空间,存英文中文都是2个字节,本来我用ASCII码存英文只用1个字节,但是现在用你2个,所以出了UTF-8 ,存英文是1个字节,中文统一3个字节。
假如1个文件是GBK编码的,另外一个是UTF-8,如果它要读这个文件,就要进行一个转换,但是他们之间不能直接转换,这个时候就涉及到了转码的问题。所以GBK转换成UTF-8,语法是先decode 成Unicode,然后在encode成utf-8,见下图:
在3.0中,默认编码是Unicode,在2.7中要打印中文就得申明字符编码 # -*- coding:utf-8 -*-
在3.0可以不写,默认文件编码就是Unicode,那么现在文件编码就是Unicode,因为Unicode本来也支持中文,按2个字节存放,不需要转换成utf-8,要想变成utf-8也得encode一下,如下所示:
a= ‘我是‘.encode("utf-8")
。当然也可以申明字符编码 # -*- coding:utf-8 -*- ,那么现在的文件编码就是utf-8了。
格式如下:
def func_name():
pass
位置参数,比如 arg1 和 arg2
def func_name(arg1,arg2): pass func_name(5,3)
5对应的是arg1 3对应的是arg2
关键参数,可以指定参数名,比如:
def func_name(arg1,arg2,arg3): pass func_name(1,2,arg3=5)
注意,关键参数不能写在位置参数前面。
多个参数,就用到了*args,比如:
def func_name(arg1,arg2,*args): pass func_name(4,5,6,7,8) 那么打印出来效果 4,5,(6,7,8)
把后面非固定参数写成了元祖
**kwargs ,打印出来是一个字典,例如
def func_name(arg1,arg2,arg3,*args,**kwargs): pass func_name(3,4,55,666,77,name=xiedi) 打印出来的结果 3,4,55,(666,77),{‘name‘:‘xiedi‘}
总的来说,局部变量只对函数内生效,对函数外不起作用。
涉及到一个作用域的问题,只是在函数里生效的,函数执行完毕,变量就没了,作用域只允许在函数里改东西。
标签:
原文地址:http://www.cnblogs.com/jixuege-1/p/5779464.html