📅  最后修改于: 2023-12-03 15:41:02.914000             🧑  作者: Mango
Python3.x相对于Python2.x,有许多重要的区别。在这份文章中,我们将介绍这些主要的区别。
在Python2.x中,print
是一个关键词而不是一个函数。因此,你可以使用以下代码将一个字符串输出到控制台:
print "Hello World!"
而在Python3.x中,print
是一个函数。这也意味着,必须把参数放在圆括号中,例如:
print("Hello World!")
为了方便,在Python2.x中使用print
时也可以用括号,例如:
print("Hello World!")
在Python2.x中,如果两个整数相除,结果将舍去小数部分,并保留整数部分。例如,5/2的值将是2。
而在Python3.x中,这种方式被修改了。现在,如果两个整数相除,结果将会是实数,例如,5/2的值将是2.5。
你可能会想,如果我想在Python3.x中像Python2.x那样使用旧的除法方式怎么办?实际上,可以使用双除号//
:例如,5//2的值将是2,就像在Python2.x中一样。
Python3.x在内部处理Unicode的方式有所不同。默认字符串和字节串分开处理,而在Python2.x中,这两种类型是混在一起的。
在Python3.x中,字符串的默认类型是Unicode。字节串和字符串是分开的。例如,在Python2.x中,我们可以写:
s = "Hello World!"
print type(s)
这将会输出<type 'str'>
。因为它是一个字符串。而在Python3.x中,我们需要这样写:
s = "Hello World!"
print(type(s))
这将会输出<class 'str'>
。因为str是Python3.x中的Unicode类型。
在Python2.x中,遍历字典使用的是iteritems()
方法,如下所示:
d = {"a": 1, "b": 2, "c": 3}
for k,v in d.iteritems():
print(k, v)
这将会输出:
('a', 1)
('b', 2)
('c', 3)
而在Python3.x中,iteritems()
被移除了。现在,只需要使用items()
方法即可,如下所示:
d = {"a": 1, "b": 2, "c": 3}
for k,v in d.items():
print(k, v)
这将会输出:
a 1
b 2
c 3
在这篇文章中,我们介绍了Python2.x和Python3.x之间的一些重要区别。这些变化可能会导致一些旧的Python2.x代码不再兼容Python3.x,所以请谨慎考虑在不同版本的Python之间切换。