print函数
这个是肯定需要说明的,当我知道python2和3的区别第一个知识点可能就是print
1 | # python2 我们这样使用 |
unicode
当我第一次使用python时候,加入中文注释就会出现1
Non-ASCII character '\xe4' in file 2 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
我们在python2 中写东西 一般都会在文件开始加入 coding: utf-8 指定文件编码格式
在python3中只有一种字符串类型Unicode字符串,可能就是在这个原因python3就没有unicode()这个函数了,因为不需要了
long 长整型
这个我相信很多语言都有long 这个数据格式,
python有为非浮点数准备的int和long类型。int类型的最大值不能超过sys.maxint,而且这个最大值是平台相关的。可以通过在数字的末尾附上一个L来定义长整型,显然,它比int类型表示的数字范围更大。
在Python 3里,只有一种整数类型int,大多数情况下,它很像Python 2里的长整型。由于已经不存在两种类型的整数,所以就没有必要使用特殊的语法去区别他们。
(再也看不到x=000000000000L <-这个结尾的L了),当然long()这个函数在python3中也是没有的,也就没有必要isinstance(x,long)去判断了
dict 字典的区别
python3中的字典没有has_key()
这个方法了,我目前的用的方法如下:总是觉得有点笨,有更好的方法请指正咕~~(╯﹏╰)b1
2
3
4
5x = {"tuzi":1,"luobo":2}
#python2 中判断x中是否有tuzi这个key
x.has_key("tuzi")
#python3中我目前这样用
if "tuzi" in x.keys()
pyc 和pycache
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。
比如我们有一个b.py 写了一些方法,然后再写一个a.py import b.py里的方法,这样在第一次执行的时候 就会生成一个b.pyc 除非b.py进行了修改否则b.pyc是不会更新的,在python2版本中,如果有多种这种情况,那么在目录下面就会生成多个pyc,看起来很乱,所以在python3中 你会发现所有的pyc文件被放到了一个__pycache__
目录中