版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接和本声明。
本文连接:http://www.javashuo.com/article/p-rorualgl-s.htmlhtml
*** python2.7版本只支持到2020年1月1日 ,建议新学习者安装python3版本。python
Python2.7:
(1)input() 能够自动判断其类型,即输入什么类型的数据,就是什么类型,没有引号的英文字符会被判断为变量,会在全文中找对应的变量。若是str类型必须加单引号或者双引号,否则类型不对,报错;
(2)raw_input() 输入全部数据都按照str类型处理,若是是整形输入,使用时要str转int,用(int)强制转换;
Python3.6:python2.7
python3将raw_input和input进行了整合,只有input,输入的为str函数
(1)input() 输入全部数据都按照str类型处理,若是是整形输入,使用时要str转int,用(int)强制转换;
(2)raw_input() 再也不使用; post
Python2.7:print 为class ,后面直接跟打印数值;
Python3.6:print() 为函数,打印数值必须用括号括起来;学习
Python2.7:默认ASCII处理字符(字符串以8-bit存储),所以使用汉字前加# -*- coding:utf-8 -*- ;
Python3.6:所有用的是Unicode(万国码、统一码固定2字节,字符串以16-bit 存储)字符集,utf-8(可动态变化1-6字节,en:1byte zh:3bytes) 是对Unicode的压缩和优化,所以支持中文;优化
Python2.7:在Python2中,做为两种类型的字符序列,str与unicode须要转换,它们是这样转换的.
str——decode方法——》unicode——encode方法——》str u'string' ui
Python3.6:在python3中能够这样对应这转换,配合上面的图,也许会好理解一点。
byte——decode(解码)方法——》str——>encode(编码)方法——》byte b'string' 编码
Python2.7:带上小数点/表示真除,%表示取余,//表示地板除(结果取整);url
Python3.6:/表示真除,%表示取余,//表示地板除(结果取整);
Python2.7:range()生成一个列表,xrange()生成一个生成器;
Python3.6:list( range(0,4) )列表,range()生成一个生成器,xrange()再也不使用;
python3中没有了xrange,python3的range就是xrange,也就是说range()返回的再也不是一个列表而是一个class,若是要获得列表须要list(),for i in range(3)照样能够这样使用
Python3.6:字典的items()和keys()返回的再也不是一个列表而是一个class,须要用list()转换为list;
python3中字典类方法has_key()也再也不支持,用运算符处理,eg:'abc' in dic
Python2.7:file()、open()均可打开文件;
Python3.6:file()再也不使用,只用open()打开文件;
Python2.7:八进制以数字0开头,例如:oct(64)为0100
;
Python3.6:八进制:以数字0开头,第二位用字母o,后面跟上你的八进制数,例如:oct(64)为0o100
;
\o
,但新版本为了防止字母 o 与数字 0 之间产生混淆,舍弃了字母 o 这个前缀\x
还在用,而 \o
改成 \
了在python2.7中可使用os.chmod("/tmp/foo.txt", 777),但切换到python3.6中这样使用会报错,正确的使用应该是os.chmod("/tmp/foo.txt", 0o1411)
参考连接: