Thay đổi trăn 3 thành 2

Nhiều người mới bắt đầu sử dụng Python đang tự hỏi họ nên bắt đầu với phiên bản Python nào. Câu trả lời của tôi cho câu hỏi này thường là một cái gì đó dọc theo dòng chữ “chỉ cần sử dụng phiên bản hướng dẫn yêu thích của bạn đã được viết và kiểm tra sự khác biệt sau này. ”

Nhưng nếu bạn đang bắt đầu một dự án mới và có quyền lựa chọn thì sao? . 7. x và Python3. x hỗ trợ các thư viện mà bạn định sử dụng. Tuy nhiên, đáng để xem xét sự khác biệt chính giữa hai phiên bản Python phổ biến nhất đó để tránh những cạm bẫy phổ biến khi viết mã cho một trong số chúng hoặc nếu bạn đang định chuyển dự án của mình

Phần #

  • phần
  • Mô-đun
    from platform import python_version
    
    05
  • Chức năng in
    • Trăn 2
    • Trăn 3
  • phép chia số nguyên
    • Trăn 2
    • Trăn 3
  • bảng chữ cái
    • Trăn 2
    • Trăn 3
  • xrange
    • Trăn 2
    • Trăn 3
    • Phương thức
      from platform import python_version
      
      06 cho đối tượng
      from platform import python_version
      
      07 trong Python 3
      • Lưu ý về sự khác biệt về tốc độ trong Python 2 và 3
  • Tăng ngoại lệ
    • Trăn 2
    • Trăn 3
  • Xử lý ngoại lệ
    • Trăn 2
    • Trăn 3
  • Hàm next[] và. phương thức tiếp theo []
    • Trăn 2
    • Trăn 3
  • Biến vòng lặp for và rò rỉ không gian tên chung
    • Trăn 2
    • Trăn 3
  • So sánh các loại không thể sắp xếp
    • Trăn 2
    • Trăn 3
  • Phân tích cú pháp đầu vào của người dùng thông qua input[]
    • Trăn 2
    • Trăn 3
  • Trả về các đối tượng có thể lặp lại thay vì danh sách
    • Trăn 2
    • Trăn 3
  • Làm tròn ngân hàng
    • Trăn 2
    • Trăn 3
  • Các bài viết khác về Python 2 và Python 3

Mô-đun
from platform import python_version
05 #

Trăn 3. x đã giới thiệu một số từ khóa và tính năng không tương thích với Python 2 có thể được nhập thông qua mô-đun

from platform import python_version
05 tích hợp trong Python 2. Bạn nên sử dụng
from platform import python_version
05 nhập nó nếu bạn đang lập kế hoạch cho Python 3. x hỗ trợ cho mã của bạn. Ví dụ, nếu chúng ta muốn Python 3. hành vi chia số nguyên của x trong Python 2, chúng ta có thể nhập nó qua

from __future__ import division

Các tính năng khác có thể được nhập từ mô-đun

from platform import python_version
05 được liệt kê trong bảng bên dưới

tính năngtùy chọn bắt buộc không có hiệu lựcnested_scopes2. 1. 0b12. 2PEP 227. Trình tạo phạm vi lồng nhau tĩnh2. 2. 0a12. 3PEP 255. Máy phát điện đơn giản2. 2. 0a23. 0PEP 238. Thay đổi toán tử bộ phậnabsolute_import2. 5. 0a13. 0PEP 328. nhập khẩu. Đa dòng và Tuyệt đối/Tương đối với_statement2. 5. 0a12. 6PEP 343. Câu lệnh “với”print_function2. 6. 0a23. 0PEP 3105. Thực hiện in một functionunicode_literals2. 6. 0a23. 0PEP 3112. Byte chữ trong Python 3000 [Nguồn. [https. // tài liệu. con trăn. org/2/library/__future__. html][https. // tài liệu. con trăn. org/2/library/__future__. html#module-__tương lai__]]

from platform import python_version

Chức năng in #

Rất tầm thường và sự thay đổi trong cú pháp in có lẽ là sự thay đổi được biết đến rộng rãi nhất, nhưng nó vẫn đáng được đề cập. Câu lệnh in của Python 2 đã được thay thế bằng hàm

from platform import python_version
12, nghĩa là chúng ta phải bao đối tượng muốn in trong dấu ngoặc đơn

Python 2 không gặp vấn đề với dấu ngoặc đơn bổ sung, nhưng ngược lại, Python 3 sẽ tăng

from platform import python_version
13 nếu chúng ta gọi hàm in là Python 2 chiều mà không có dấu ngoặc đơn

Trăn 2 #

from platform import python_version
1

from platform import python_version
2

Trăn 3 #

from platform import python_version
3

from platform import python_version
4

from platform import python_version
5

from platform import python_version
6

Ghi chú

In “Xin chào, Thế giới” ở trên thông qua Python 2 trông khá “bình thường”. Tuy nhiên, nếu chúng ta có nhiều đối tượng bên trong dấu ngoặc đơn, chúng ta sẽ tạo một bộ, vì ________ 014 là một “câu lệnh” trong Python 2, không phải là một lệnh gọi hàm

from platform import python_version
8

from platform import python_version
9

Phép chia số nguyên #

Thay đổi này đặc biệt nguy hiểm nếu bạn đang chuyển mã hoặc nếu bạn đang thực thi mã Python 3 trong Python 2, vì thay đổi trong hành vi chia số nguyên thường có thể không được chú ý [không gây ra lỗi

from platform import python_version
13].
Vì vậy, tôi vẫn có xu hướng sử dụng
from platform import python_version
16 hoặc
from platform import python_version
17 thay vì
from platform import python_version
18 trong tập lệnh Python 3 của mình để tránh rắc rối cho những người dùng Python 2 [và ngược lại, tôi khuyên bạn nên sử dụng
from platform import python_version
19 trong Python 2 của mình .

Trăn 2 #

from platform import python_version
0

from platform import python_version
1

Trăn 3 #

from platform import python_version
2

from platform import python_version
3

Unicode #

Python 2 có các loại

from platform import python_version
20 ASCII, riêng
from platform import python_version
21, nhưng không có loại
from platform import python_version
22

Bây giờ, trong Python 3, cuối cùng chúng ta cũng có các lớp

from platform import python_version
23 Unicode [utf-8] và 2 byte.
from platform import python_version
22 và
from platform import python_version
25s

Trăn 2 #

from platform import python_version
4

from platform import python_version
5

from platform import python_version
6

from platform import python_version
7

from platform import python_version
8

from platform import python_version
9

from platform import python_version
10

from platform import python_version
11

from platform import python_version
12

from platform import python_version
13

Trăn 3 #

from platform import python_version
14

from platform import python_version
15

from platform import python_version
16

from platform import python_version
17

from platform import python_version
18

from platform import python_version
19

from platform import python_version
20

from platform import python_version
21

xphạm vi #

Việc sử dụng

from platform import python_version
26 rất phổ biến trong Python 2. x để tạo một đối tượng có thể lặp lại, e. g. , trong vòng lặp for hoặc danh sách/bộ-từ điển-hiểu.
Hành vi khá giống với trình tạo [i. e. , "đánh giá lười biếng"], nhưng ở đây xrange-iterable không thể sử dụng hết - nghĩa là bạn có thể lặp lại nó vô tận.

Nhờ tính năng "đánh giá lười biếng" của nó, lợi thế của

from platform import python_version
27 thông thường là
from platform import python_version
26 thường nhanh hơn nếu bạn chỉ phải lặp lại nó một lần [e. g. , trong vòng lặp for]. Tuy nhiên, trái ngược với lặp lại 1 lần, bạn không nên lặp lại lặp lại nhiều lần, vì việc tạo diễn ra mọi lần từ đầu

Trong Python 3,

from platform import python_version
27 đã được triển khai giống như hàm
from platform import python_version
26 để hàm
from platform import python_version
26 chuyên dụng không còn tồn tại nữa [
from platform import python_version
26 tăng giá trị
from platform import python_version
33 trong Python 3]

from platform import python_version
22

Trăn 2 #

from platform import python_version
23

from platform import python_version
24

Trăn 3 #

from platform import python_version
25

from platform import python_version
26

from platform import python_version
27

from platform import python_version
28

Phương thức
from platform import python_version
06 cho đối tượng
from platform import python_version
07 trong Python 3 #

Một điều đáng nói nữa là

from platform import python_version
07 có một phương thức
from platform import python_version
06 “mới” trong Python 3. x [cảm ơn Yuchen Ying, người đã chỉ ra điều này]. Phương thức
from platform import python_version
06 có thể tăng tốc độ “tra cứu” trong Python 3. x
from platform import python_version
07 đáng kể cho các loại số nguyên và Boolean

from platform import python_version
29

from platform import python_version
30

from platform import python_version
31

from platform import python_version
32

from platform import python_version
33

Dựa trên kết quả

from platform import python_version
40 ở trên, bạn thấy rằng việc thực thi lệnh “tra cứu” nhanh hơn khoảng 60.000 khi nó thuộc loại số nguyên thay vì số float. Tuy nhiên, kể từ Python 2. x's
from platform import python_version
07 hoặc
from platform import python_version
42 không có phương thức
from platform import python_version
06, "tốc độ tra cứu" sẽ không khác nhiều đối với số nguyên hoặc số float

from platform import python_version
34

from platform import python_version
35

Bên dưới "bằng chứng" rằng phương thức

from platform import python_version
44 không được thêm vào Python 2. x chưa

from platform import python_version
36

from platform import python_version
37

from platform import python_version
38

from platform import python_version
39

from platform import python_version
40

from platform import python_version
41

Lưu ý về sự khác biệt về tốc độ trong Python 2 và 3 #

Một số người đã chỉ ra sự khác biệt về tốc độ giữa

from platform import python_version
27 của Python 3 và
from platform import python_version
26 của Python2. Vì chúng được triển khai theo cùng một cách nên người ta mong đợi cùng một tốc độ. Tuy nhiên, sự khác biệt ở đây chỉ đến từ việc Python 3 thường có xu hướng chạy chậm hơn Python 2

from platform import python_version
42

from platform import python_version
43

from platform import python_version
44

from platform import python_version
45

from platform import python_version
46

Tăng ngoại lệ #

Trong trường hợp Python 2 chấp nhận cả hai ký hiệu, cú pháp 'cũ' và 'mới', thì Python 3 sẽ chặn [và lần lượt tăng

from platform import python_version
13] nếu chúng ta không đặt đối số ngoại lệ trong ngoặc đơn

Trăn 2 #

from platform import python_version
4

from platform import python_version
5

from platform import python_version
49

from platform import python_version
50

from platform import python_version
51

from platform import python_version
52

Trăn 3 #

from platform import python_version
53

from platform import python_version
54

from platform import python_version
49

from platform import python_version
56

Cách thích hợp để đưa ra một ngoại lệ trong Python 3

from platform import python_version
57

from platform import python_version
58

Xử lý ngoại lệ #

Ngoài ra, việc xử lý các ngoại lệ đã thay đổi một chút trong Python 3. Trong Python 3, chúng ta phải sử dụng từ khóa “

from platform import python_version
48” ngay bây giờ

Trăn 2 #

from platform import python_version
59

from platform import python_version
60

Trăn 3 #

from platform import python_version
61

from platform import python_version
62

Hàm next[] và. phương pháp tiếp theo [] #

from platform import python_version
49 [
from platform import python_version
50] là một hàm [phương thức] thường được sử dụng như vậy, nên đây là một thay đổi cú pháp khác [hay đúng hơn là thay đổi trong cách triển khai] đáng được đề cập. nơi bạn có thể sử dụng cả cú pháp hàm và phương thức trong Python 2. 7. 5, hàm
from platform import python_version
49 là tất cả những gì còn lại trong Python 3 [gọi phương thức
from platform import python_version
50 sẽ tạo ra một
from platform import python_version
53]

Trăn 2 #

from platform import python_version
63

from platform import python_version
64

Trăn 3 #

from platform import python_version
65

from platform import python_version
66

from platform import python_version
67

from platform import python_version
68

Biến vòng lặp for và rò rỉ không gian tên chung #

tin tốt là. Trong Trăn 3. x for-loop biến không rò rỉ vào không gian tên toàn cầu nữa

Điều này quay trở lại một thay đổi đã được thực hiện trong Python 3. x và được mô tả trong Có gì mới trong Python 3. 0 như sau

“Việc hiểu danh sách không còn hỗ trợ dạng cú pháp

from platform import python_version
54. Sử dụng
from platform import python_version
55 thay thế. Cũng lưu ý rằng việc hiểu danh sách có ngữ nghĩa khác nhau. chúng gần với đường cú pháp hơn đối với biểu thức trình tạo bên trong hàm tạo
from platform import python_version
56 và đặc biệt là các biến điều khiển vòng lặp không còn bị rò rỉ vào phạm vi xung quanh. ”

Trăn 2 #

from platform import python_version
69

from platform import python_version
80

Trăn 3 #

from platform import python_version
81

from platform import python_version
82

So sánh các loại không thể sắp xếp #

Một thay đổi thú vị khác trong Python 3 là một

from platform import python_version
57 được đưa ra dưới dạng cảnh báo nếu chúng ta cố gắng so sánh các loại không thể sắp xếp

Trăn 2 #

from platform import python_version
83

from platform import python_version
84

Trăn 3 #

from platform import python_version
85

from platform import python_version
86

Phân tích cú pháp đầu vào của người dùng thông qua input[] #

May mắn thay, hàm

from platform import python_version
58 đã được sửa trong Python 3 để nó luôn lưu trữ đầu vào của người dùng dưới dạng đối tượng
from platform import python_version
23. Để tránh hành vi nguy hiểm trong Python 2 để đọc các loại khác ngoài
from platform import python_version
60, chúng ta phải sử dụng
from platform import python_version
61 thay thế

Trăn 2 #

from platform import python_version
87

Trăn 3 #

from platform import python_version
88

Trả về các đối tượng có thể lặp lại thay vì danh sách #

Như chúng ta đã thấy trong phần

from platform import python_version
42, một số hàm và phương thức trả về các đối tượng có thể lặp lại trong Python 3 ngay bây giờ - thay vì danh sách trong Python 2

Vì dù sao chúng ta cũng thường chỉ lặp lại những thứ đó một lần, nên tôi nghĩ thay đổi này rất có ý nghĩa để tiết kiệm bộ nhớ. Tuy nhiên, cũng có thể - trái ngược với trình tạo - lặp lại nhiều lần đó nếu cần, nó chỉ không hiệu quả lắm

Và đối với những trường hợp chúng ta thực sự cần các đối tượng

from platform import python_version
63, chúng ta chỉ cần chuyển đổi đối tượng có thể lặp lại thành một
from platform import python_version
63 thông qua hàm
from platform import python_version
56

Trăn 2 #

from platform import python_version
89

from platform import python_version
90

Trăn 3 #

from platform import python_version
91

from platform import python_version
92

Một số hàm và phương thức được sử dụng phổ biến hơn không trả về danh sách nữa trong Python 3

  • from platform import python_version
    
    66

  • from platform import python_version
    
    67

  • from platform import python_version
    
    68

  • phương pháp

    from platform import python_version
    
    69 của từ điển

  • phương pháp

    from platform import python_version
    
    70 của từ điển

  • phương pháp

    from platform import python_version
    
    71 của từ điển

Banker's Rounding #

Python 3 đã áp dụng cách làm tròn số thập phân tiêu chuẩn hiện nay khi kết quả là hòa [. 5] ở các chữ số có nghĩa cuối cùng. Bây giờ, trong Python 3, số thập phân được làm tròn thành số chẵn gần nhất. Mặc dù đó là một sự bất tiện đối với tính di động của mã, nhưng đây được cho là cách làm tròn tốt hơn so với làm tròn lên vì nó tránh được sự sai lệch đối với các số lớn. Để biết thêm thông tin, hãy xem các bài viết và đoạn văn xuất sắc của Wikipedia

  • https. // vi. wikipedia. org/wiki/Làm tròn#Round_half_to_even
  • https. // vi. wikipedia. org/wiki/IEEE_floating_point#Roundings_to_nearest

Trăn 2 #

from platform import python_version
4

from platform import python_version
94

from platform import python_version
95

from platform import python_version
96

from platform import python_version
97

from platform import python_version
98

Trăn 3 #

from platform import python_version
53

from platform import python_version
00

from platform import python_version
95

from platform import python_version
02

from platform import python_version
97

from platform import python_version
02

Các bài viết khác về Python 2 và Python 3 #

Dưới đây là danh sách một số bài viết hay liên quan đến Python 2 và 3 mà tôi muốn giới thiệu dưới dạng phần tiếp theo

Làm cách nào để sử dụng Python 2 trong Python 3?

Mục lục .
Bỏ hỗ trợ cho Python 2. 6 tuổi trở lên
Đảm bảo bạn chỉ định hỗ trợ phiên bản phù hợp trong thiết lập của mình. tập tin py
Có phạm vi kiểm tra tốt
Tìm hiểu sự khác biệt giữa Python 2 & 3
Cập nhật mã của bạn. .
Ngăn chặn hồi quy tương thích
Kiểm tra phần phụ thuộc nào chặn quá trình chuyển đổi của bạn

Tôi có thể học Python 2 thay vì 3 không?

Mặc dù Python 2 đã có thời hoàng kim vào đầu những năm 2000, nhưng Python 3 là lựa chọn tốt nhất để học vào năm 2022 . Bạn có thể thấy một số trường hợp cần sử dụng Python 2, nhưng nhìn chung, Python 3 là ngôn ngữ phổ biến nhất. Kể từ khi Python 2 ngừng hoạt động vào năm 2020, Python 3 đã thống trị thế giới lập trình.

Có phải Python 2 và 3 rất khác nhau không?

Python 3 có cú pháp dễ hơn so với Python 2 . Rất nhiều thư viện của Python 2 không tương thích về phía trước. Rất nhiều thư viện được tạo trong Python 3 để được sử dụng nghiêm ngặt với Python 3. Python 2 không còn được sử dụng kể từ năm 2020.

Chủ Đề