Python2.x和Python3.x之间的区别很多,以下是一些重要的区别:
1. 打印语句
在Python2.x中,打印语句是这样的:
print "Hello, World!"
而在Python3.x中,打印语句是这样的:
print("Hello, World!")
2. Unicode字符串和字节字符串
在Python2.x中,字符串有两种类型:Unicode字符串和字节字符串。Unicode字符串使用u前缀来标识,而字节字符串就是普通的字符串。而在Python3.x中,所有字符串都是Unicode字符串。
以下是Python2.x和Python3.x的字符串示例:
# Python 2.x
str1 = "Hello, World!" # 字节字符串
str2 = u"你好,世界!" # Unicode字符串
# Python 3.x
str1 = "Hello, World!" # Unicode字符串
str2 = "你好,世界!" # Unicode字符串
3. 整数除法
在Python2.x中,整数除法结果为整数,例如:
print 7 / 3 # 输出 2
而在Python3.x中,整数除法结果为浮点数,例如:
print(7 / 3) # 输出 2.3333333333333335
4. xrange 和 range 函数
在Python2.x中,内置函数 xrange() 返回一个生成器对象,可以产生指定范围内的整数。而内置函数 range() 返回一个列表对象,它会立即生成指定范围内的所有整数。
在Python3.x 中,xrange() 函数已经被移除,而 range()函数也不再返回一个列表,而是一个可迭代的对象。
以下是Python2.x和Python3.x的区别:
# Python 2.x
print range(10) # 输出 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print xrange(10) # 输出 xrange(10)
# Python 3.x
print(list(range(10))) # 输出 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(range(10)) # 输出 range(0, 10)
5. try…except…finally语句
在Python2.x中,try语句可以有单个except代码块和一个可选的finally代码块。而在Python3.x中,try语句可以有多个except代码块和一个可选的finally代码块。代码示例:
# Python 2.x
try:
1/0
except ZeroDivisionError, e:
print "除数为零:%s" %e
finally:
print "执行完毕!"
# Python 3.x
try:
1/0
except ZeroDivisionError as e:
print("除数为零:%s" %e)
except ValueError as e:
print("值错误:%s" %e)
finally:
print("执行完毕!")
以上就是 Python2.x 和 Python3.x 的一些主要区别。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python2.x与Python3.x的区别 - Python技术站