主要差异
虽然 Python 2.7 和Python 3 有许多类似的功能,但它们不应该被认为是完全可互换的。虽然你可以在任一版本中编写出优秀的代码和有用的程序,但是值得了解的是,在代码语法和处理方面两者会有一些相当大的差异。
下面是一些例子,而且你应该记住,当你深入学习 Python 时,你可能会遇到更多的语法差异。
在 Python 2 中, print 被视为一个语句而不是一个函数,这是一个典型的容易弄混的地方,因为在 Python 中的许多操作都需要括号内的参数来执行。如果在 Python 2 中你想要你的控制台输出 ”Sammy the Shark is my favorite sea creature”,你应该写下这样的 print 语句:
print "Sammy the Shark is my favorite sea creature"
在使用 Python 3 时,print()会被显式地视为一个函数,因此要输出上面相同的字符串,你可以使用这种非常简单且易于使用的函数语法:
print("Sammy the Shark is my favorite sea creature")
这种改变使得 Python 的语法更加一致,并且在不同的 print 函数之间进行切换更加容易。就方便性而言,print()语法也与 Python 2.7 向后兼容,因此您的 Python 3 print()函数可以在任一版本中运行。
整数的除法
在 Python 2 中,您键入的任何不带小数的数字,将被视为整数的编程类型。虽然乍看起来这似乎是一个简单的处理编程类型的方法,但有时候当你试图除以整数以期望获得一个带小数位的答案(称为浮点数),如:
5 / 2 = 2.5
然而,在 Python 2 中,整数是强类型的,并且不会变成带小数位的浮点数,即使这样做具有直观上的意义。
当除法/符号的任一侧的两个数字是整数时,Python 2进行底除法,使得对于商x,返回的数字是小于或等于x的最大整数。这意味着当你写下 5 / 2 来对这两个数字相除时,Python 2.7 将返回最大的小于或等于 2.5 的整数,在这种情形下:
a = 5 / 2
print a
Output
2
为解决这个问题,你可以在 5.0 / 2.0 中添加小数位,以得到预期的答案 2.5。
在 Python 3 中,整数除法变得更直观,如
你也可以使用 5.0 / 2.0 返回 2.5,但是如果你想做底层划分,你应该使用 “//” 这样的 Python 3 语法,像这样:
b = 5 // 2
print(b)
Output
2
在 Python 3 中的这种修改使得整数除法更为直观,并且它的特点是不能向后兼容 Python 2.7。
PS:以上内容摘自http://python.jobbole.com/87372/,仅供学习参考使用,若有侵权,请联系博主删除,谢谢