Python3 和 Python2的区别
Python3和Python2的兼容性太差了,不像一般的语言那样能够严格地向下兼容,不管升级后有多大好处,起码低版本下编写的程序能在高版本下跑。而且,Python的升级恰好改变了初学者常用的函数或用法,致使初学者参考以Python2为基础的工具书进行的实验是一步一个坑啊。
说下最起码的:
1、print
Python2中print用法为:print [string]
Python3中这样写直接异常,要使用挎号,类似Java语言中函数调用的写法:print([string])
2、屏幕输入
Python2中接受屏幕输入函数:raw_input(),在Python3中报错。
Python3中接受屏幕输入函数:input()。
Python2:
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
print 'Length of the string is', len(s)
print 'Done'
Python3:
while True:
s = input('Enter something : ')
if s == 'quit':
break
print('Length of the string is:',len(s))
print('Length of the string is:'+ str(len(s)))
print('Done')
再吐槽一下:
1、块语句使用缩进来表示,空格和TAB健还不能混用,否则就报错。这是多么苛刻的要求,每次写代码还得数空格个数。
2、输出会“自作多情”地给你加上空格,如上例输出字符串长度。还得额外地使用函数消除空格,明显多此一举。
3、for循环还有else语句,条件都在for语句中设置好了,再整个else,这不是if和for杂交的产物吗,令人匪夷所思。
目前其优点没发现多少,怪异的地方倒是发现不少。
也许缺点就是优点。但愿后续使用能发现亮点。