Những điểm khác nhau quan trọng giữa Python 2.x và Python 3.x
1. Division operator Nếu bạn đang có một công việc nâng cấp phiên bản Python, vậy hãy chú ý tới phép chia. Xem ví dụ sau đây nhé. print 7 / 5 print - 7 / 5 Output in Python 2.x: 1 -2 Output in Python 3.x: 1.4 -1.4 2. Print function Đây là một trong những sự thay đổi ...
1. Division operator
Nếu bạn đang có một công việc nâng cấp phiên bản Python, vậy hãy chú ý tới phép chia. Xem ví dụ sau đây nhé.
print 7 / 5 print -7 / 5
Output in Python 2.x: 1 -2 Output in Python 3.x: 1.4 -1.4
2. Print function
Đây là một trong những sự thay đổi được biết đến nhiều nhất từ bản Python 2.x lên Python 3.x
print 'Hello, Geeks' # Python 3.x doesn't support print('Hope You like these facts')
Output in Python 2.x: Hello, Geeks Hope You like these facts Output in Python 3.x: File "a.py", line 1 print 'Hello, Geeks' ^ SyntaxError: invalid syntax
3. Unicode
Trong Python 2.x, kiểu mặc định của String là ASCII, nhưng ở Python 3.x kiểu mặc định của String là Unicode
print(type('default string ')) print(type(u'string with b '))
Output in Python 2.x (Unicode and str are different): <type 'str'> <type 'unicode'> Output in Python 3.x (Unicode and str are same): <class 'str'> <class 'str'>
4. Xrange
for x in xrange(1, 5): print(x), for x in range(1, 5): print(x),
Output in Python 2.x: 1 2 3 4 1 2 3 4 Output in Python 3.x: NameError: name 'xrange' is not defined
5. Error Handling
Đây là một thay đổi nhỏ trên phiên bản 3.x, từ khoá as đã trở thành bắt buộc
Kiểm tra không có từ khoá as trong 2 phiên bản Python
try: trying_to_check_error except NameError, err: print err, 'Error Caused' # Would not work in Python 3.x
Output in Python 2.x: name 'trying_to_check_error' is not defined Error Caused Output in Python 3.x : File "a.py", line 3 except NameError, err: ^ SyntaxError: invalid syntax
Kiểm tra khi có từ khoá as trong 2 phiên bản Python
try: trying_to_check_error except NameError as err: # 'as' is needed in Python 3.x print (err, 'Error Caused')
Output in Python 2.x: (NameError("name 'trying_to_check_error' is not defined",), 'Error Caused') Output in Python 3.x: name 'trying_to_check_error' is not defined Error Caused