Python2.x 与 3.x 版本区别学习笔记

1. print函数

在Python 2.x中,print是一个语句,而在Python 3.x中,它是一个函数。这意味着在Python 3.x中,我们必须将要打印的内容放在括号中:

pythonCopy Code
# Python 2.x print "Hello, World!" # Python 3.x print("Hello, World!")

2. 整数除法

在Python 2.x中,整数除法使用 / 运算符得出的结果也是整数:

pythonCopy Code
# Python 2.x print 7 / 3 # 输出 2

而在Python 3.x中,整数除法则使用 // 运算符进行运算,得出的结果将被转换为浮点数:

pythonCopy Code
# Python 3.x print(7 // 3) # 输出 2.0

3. Unicode

在Python 2.x中,文本字符串和字节字符串没有明确的区分,因此容易造成编码错误。在Python 3.x中,文本字符串与字节字符串有了明确的区分,文本字符串默认使用Unicode编码。

pythonCopy Code
# Python 2.x s = "你好,世界!" print type(s) # 输出 <type 'str'> # Python 3.x s = "你好,世界!" print(type(s)) # 输出 <class 'str'>

4. xrange函数

在Python 2.x中,xrange函数返回的是一个迭代器对象,可以节省内存。而在Python 3.x中,这个函数已被废弃,而range函数则返回的是一个迭代器对象。

pythonCopy Code
# Python 2.x for i in xrange(5): print i, # Python 3.x for i in range(5): print(i, end=' ')

5. raise语法

在Python 2.x中,我们可以使用以下语法来捕获异常:

pythonCopy Code
# Python 2.x try: a = 1 / 0 except ZeroDivisionError, e: print "Caught an exception:", e

在Python 3.x中,则需要使用以下语法来捕获异常:

pythonCopy Code
# Python 3.x try: a = 1 / 0 except ZeroDivisionError as e: print("Caught an exception:", e)

以上就是Python2.x与3.x版本之间的一些区别,仅作为学习参考。