码迷,mamicode.com
首页 > 编程语言 > 详细

Python之路四

时间:2016-08-17 13:34:03      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

前言:

不得不吐槽一下,写了半天的东西,直接丢失了,还得重写,得了。

基础回顾:

1、集合

集合有2个重要作用:关系测试(并集,差集,交集)和去重。

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了。

3、函数

 格式如下:

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}

4、局部变量和全局变量

总的来说,局部变量只对函数内生效,对函数外不起作用。

涉及到一个作用域的问题,只是在函数里生效的,函数执行完毕,变量就没了,作用域只允许在函数里改东西。

 

Python之路四

标签:

原文地址:http://www.cnblogs.com/jixuege-1/p/5779464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!