曾经我们提过python2的很多用法已经不是适用于python3了,并且有细微的变化,今天我们来总结一下这些细微的变化。


一、print

在python2中的,print的写法如下:

print "Hello World"

可是在python3中,print已经作为一个函数,写法该如下:

print("Hello World")

当然还有些与此相关的差异,你不能像在python2中那样,在结尾处使用一个逗号,使得下一个print语句输出内容与本次输出内容在同一行:

print "Hello",
print " World"

在python3中,你要这样做:

print("Hello",end="")
print("World")

当然,你可以给end参数传不同的值,不过这种用法很少,你可以参考一下python3的文档。
为什么说在python3中print已经成为一个函数了,细心的同学可能已经发现了,在python3中print显示的高亮颜色和函数高亮颜色一致了。


二、input()

python2中的raw_input()已经在python3中正式更名为input()。这个函数会返回字符串,但是不会尝试对输入的字符做任何的计算(例如将字符串转换成int或float类型)

这意味着在python2中的代码:

your_name = raw_input("Enter your name:")

在python3中要改为:

your_name = input("Enter your name:")

python2中的input()函数会对输入进行计算(如果可能的话会将它转换成数字),这个函数在python3中已经不存在了。

这意味着在python2中的代码:

age = input("Enter your age:")

在python3中要改为:

age = int (input("Enter your age:")

三、整除

python3中第三点主要改变的是整除,在python2中,代码运行结果如下:

>>>print 5/2
2

python2进行除法运算时会默认向下取整,而python3中默认进行浮点数除法,所以在python3中代码运行结果如下:

>>>print (5/2)
2.5

如果你想在python3中进行整除可添加双斜杠,代码运行结果如下:

>>>print(5//2)
2

当然,取余符号除了要在print后添加“()”之外,其他没有更改,代码如下:

python2写法:
>>>print 5%2
1

python3写法:
>>>print (5%2)
1

四、rang()

在python2中,rang()返回值是一个列表,但在python3中,rang()返回的是一个对象,如果循环访问的话python3中range对象的工作方式和python2中的一致,但你如果想打印它,是无法看到rang对象中的各个单独的值的。

python2:
>>>print rang(5)
[0,1,2,3,4]

python3:
>>>print (rang(5))
rang(0,5)

温馨提示:

一个名为2to3的工具会自动将python2的代码转换成python3的代码。相对来说,由于python3的版本过新,很多模块都还没有升级,现在使用较多的还是python2,当然,更新换代是必然的,也希望大家继续关注python的发展,毕竟还是一款很有趣的编程语言。