python2和python3的区别
python2跟python3的主要区别:
pytho3现在是主流使用的,python2已经不维护了
python2中没有(),用引号‘ ’引起来;python3使用()
目前linux系统默认的python解释器2.7
区别一:print
python2中:print是一个语法结构,print ‘hello world’或者print "hello world"都可以
python3中:print是一个函数,print(“hello world”)或者print('hello world')都可以
括号里面写单引号或者双引号都可以
在python2中
首先写一个纯英文的.py文件来测试:
发现python2可以直接调用
编写一个汉语的.py文件测试:
发现python2不能直接识别中文
此时给文件中加入声明_*_coding:utf-8_*_
发现此时python2可以识别
在python3中
编写一个test.py文件不加()测试:
发现不能识别
加入()测试:
发现可以识别,并且可以直接识别中文
python2诞生的时候没有Unicode,所以python2使用的默认编码格式是asscii编码,这也是python2经常出现编码问题的原因之一。
python3中程序默认数据类型为Unicode,所以直接将数据编码(encode)成为想要转换的数据类型(gbk,utf-8,gb18030,gb2312)
然后解码成为对应的数据类型显示在屏幕上。
也就是python2需要声明,python3不需要声明
python2打印汉字要声明,python3打印汉字不需要声明
区别二:除法运算
python2中整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数相除会保留小数点的部分得到一个浮点数的结果,即所有的结果都是整数
python3中对于整数之间的相除,结果也会是浮点数,即所有相除的结果均用浮点数表示,//表示取整
python2中
所有相除的结果只显示整数部分:
python3中
所有相除的结果均用浮点数表示
若只想要整数部分,则需使用//
区别三:字符类型不同
python 3中没有长整形long的概念,字符类型有int ,str,boolean或float
python 2中的字符类型有long长整形,int,float,str,boolean
python3中的变量类型
整型:int
浮点型:float
字符型:str
bool型:bool
区别四:input
python2中的raw_input()与python3中的input()功能一样,raw_input()会把用户输入的任何值都作为字符串来对待;而python2中的input不能读取非字符串。
python3 中只有 input(),并且把用户输入的任何值都作为字符串来对待
python2中
python3中
在bool中,0或者空为假,非0或不是空就为真
区别五:不等运算符
python 2中不等于有两种写法 != 和 <>
python 3中去掉了<>, 只有!=一种写法