Python 2.x là legacy (đã EOL 2020), Python 3.x là hiện tại và tương lai.
Tính năng chỉ có trong 3.x:
- String là Unicode mặc định.
- Tách biệt rõ ràng Unicode/bytes.
- Exception chaining (
raise ... from ...). - Function annotations (type hints).
- Syntax keyword-only arguments (
def f(*, kw)). - Extended tuple unpacking (
a, *b, c = seq). - Non-local variable declarations (
nonlocal).
Một số khác biệt chính:
- print: Py2 là statement (
print "hi"), Py3 là function (print("hi")). - Biến trong list comprehension: Py2 leak biến lặp ra scope toàn cục; Py3 không.
- Chia nguyên (integer division): Py2:
3/2 == 1; Py3:3/2 == 1.5. Py3 dùng//cho chia nguyên. Py2 muốn chia float: thêm.0(3/2.0).
Nhiều thay đổi khác – xem What's New In Python 3.