Chuyển đổi Python 2 thành 3

Công cụ “Trình chuyển đổi Python 2 sang Python 3” này tương thích với tất cả các phiên bản Python 2. Công cụ này tự động phát hiện bạn đang sử dụng phiên bản Python 2 nào

Hạt giống

Công cụ này sẽ chỉ mất tối đa 1 phút. Thời gian trung bình chỉ mất 10 giây để chuyển đổi toàn bộ mã của bạn

Tại sao bạn nên học Python 3 [Video

Vui lòng bật JavaScript

Tại sao nên học Python 3 [Video 02]

Câu hỏi thường gặp

Câu hỏi và câu trả lời thường xuyên nhất

Tại sao nên sử dụng bộ chuyển đổi python 2 sang 3?

Chuyển mã Python 2 sang Python 3 là một nhiệm vụ tốn thời gian, công cụ này sẽ tự động hóa nhiệm vụ này và tiết kiệm thời gian quý báu của bạn

cách chuyển đổi python 2 thành 3

Bạn có thể sử dụng công cụ này để chuyển đổi python 2 thành 3. Chỉ cần nhập Mã Python 2 của bạn và nó sẽ tự động chuyển đổi nó thành mã Python 3

Là nó được trả tiền?

Không. Hiện tại “Python 2 to 3 Converter” MIỄN PHÍ cho tất cả mọi người

cách di chuyển từ python 2. 7 đến 3

Đây là cách di chuyển từ Python 2. 7 đến 3

  1. Mở Trình chuyển đổi Python 2 sang 3
  2. Nhập Python 2 của bạn. 7 mã
  3. Nhấp vào Bộ chuyển đổi
  4. Bây giờ công cụ sẽ tự động chuyển đổi mã python 2 của bạn
  5. Nhấp vào nút sao chép để sao chép mã python 3 của bạn

sự khác biệt giữa Python 2 và Python 3

“Khi bạn đã kiểm tra kỹ mã của mình, bạn đã sẵn sàng bắt đầu chuyển mã của mình sang Python 3. Nhưng để hiểu đầy đủ mã của bạn sẽ thay đổi như thế nào và bạn muốn chú ý điều gì khi viết mã, bạn sẽ muốn tìm hiểu những thay đổi mà Python 3 tạo ra đối với Python 2. Thông thường, hai cách tốt nhất để làm điều đó là đọc tài liệu “Có gì mới” cho mỗi bản phát hành Python 3 và sách Chuyển sang Python 3 [miễn phí trực tuyến]. Ngoài ra còn có một mánh gian lận tiện dụng từ dự án Python-Future. ” Tuyên bố chính thức từ Python. tổ chức

Bên cạnh đó, một số câu lệnh như print, exec và những câu lệnh khác đã được thay đổi. e. g

in ‘hello world’ # hợp lệ python 2 không có trong python 3

print [‘hello world’] # hợp lệ python 3 và các phiên bản mới hơn của python 2

 

Làm thế nào nó hoạt động?

Dưới đây là đề cập đến cách chuyển mã Python 2 sang mã Python 3.
Công cụ này giúp quá trình này trở nên dễ dàng hơn và có thể truy cập được trên toàn cầu.

Cách chuyển đổi Python 2 thành 3

Python phải tiếp tục phát triển theo thời gian để luôn phù hợp. Thật không may, điều đó có nghĩa là nhiều tổ chức đã tìm thấy chính mình các ứng dụng kế thừa cồng kềnh được viết bằng các phiên bản Python cũ hơn—đáng chú ý nhất là Python 2. 7. Các bản phát hành mới hơn của Python 3 đã đạt được nhiều điểm vượt trội so với Python 2 và giờ đây có thời gian chạy nhanh hơn và cộng đồng hỗ trợ lớn hơn so với các phiên bản trước v3 của chúng. Kết hợp điều này với việc sắp kết thúc hỗ trợ cho Python 2 [dự kiến ​​vào ngày 1 tháng 1 năm 2020] và thật dễ dàng để biết lý do tại sao các tổ chức cảm thấy cần phải di chuyển các cơ sở mã hiện có của họ

Bắt đầu với phiên bản 7, Vizard bao gồm trình thông dịch Python 3, các phiên bản trước đã bao gồm Python 2. Mặc dù Python 3 có nhiều tính năng và cải tiến mới, nhưng nó cũng chứa các thay đổi không tương thích ngược có thể yêu cầu sửa đổi các tập lệnh hiện có được viết bằng Python 2. Vizard bao gồm một công cụ Python 2 đến 3 có thể tự động thực hiện hầu hết các thay đổi cần thiết. Dưới đây là một số thay đổi đáng chú ý, nhưng bạn có thể đọc về tất cả các thay đổi tại https. // portingguide. đọcthedocs. io/vi/mới nhất/

Thay đổi đáng chú ý

chức năng in

Câu lệnh in bây giờ là một chức năng. In bằng Python 2 sẽ như thế nào

Trong Python 3, bạn sẽ cần coi print là một hàm và đặt dấu ngoặc đơn xung quanh các đối số

Công cụ Python 2 đến 3 sẽ tự động thực hiện thay đổi này

vòng lặp

Python 2 chứa các biến thể danh sách và trình vòng lặp của nhiều hàm. Ví dụ: phạm vi so với xrange, zip so với itertools. izip, dict. vật phẩm vs dict. lặp đi lặp lại, v.v. Python 3 đã thay đổi biến thể danh sách của hầu hết các hàm để thay vào đó trả về một trình vòng lặp. Các biến thể lặp trước đó của các chức năng này đã bị xóa

Điều này có nghĩa là nếu bạn dựa vào bất kỳ hàm nào trong số này trả về một danh sách, thì bây giờ bạn sẽ cần tạo danh sách một cách rõ ràng từ trình lặp được trả về

number_list = list[range[20]]

d = { 1. 'một trong 2. 'hai', 3. 'ba' }
value_list = danh sách[d. giá trị[]]

Công cụ Python 2 đến 3 sẽ tự động thực hiện thay đổi này

Chuỗi so với byte

Một thay đổi lớn trong Python 3 và một thay đổi sẽ gây ra nhiều vấn đề nhất, đó là việc xử lý các chuỗi. Trong Python 2, kiểu str được sử dụng để biểu thị cả dữ liệu văn bản và dữ liệu nhị phân. Python 3 tách các biểu diễn này thành các loại khác nhau và không tương thích. Trong Python 3, kiểu str được sử dụng cho dữ liệu văn bản và kiểu byte được sử dụng cho dữ liệu nhị phân. Để chuyển đổi giữa hai loại, bạn phải mã hóa/giải mã rõ ràng các giá trị dựa trên mã hóa nhất định, mặc định là UTF-8. Đây là mã mẫu cho biết cách chuyển đổi giữa chuỗi và byte

# Chuyển đổi chuỗi thành byte bằng cách sử dụng mã hóa utf-8 mặc định
string_value = 'dữ liệu chuỗi'
byte_value = string_value. mã hóa[]

# Chuyển đổi byte thành chuỗi bằng cách sử dụng mã hóa utf-8 mặc định
byte_value = b'byte dữ liệu'
string_value = byte_value. giải mã[]

# Chuyển đổi byte thành chuỗi bằng cách sử dụng mã hóa ASCII
string_value = byte_value. giải mã['ascii']

Thật không may, những thay đổi này không thể được tự động hóa bằng công cụ Python 2 đến 3. Bạn sẽ cần đảm bảo rằng bất kỳ mã nào bạn có liên quan đến dữ liệu nhị phân đều chuyển đổi thành/từ dữ liệu chuỗi một cách chính xác. Điều này phổ biến nhất với các thói quen I/O của tệp và mạng

Ví dụ: trong Python 2, việc đọc từ một tệp được mở bằng open[] sẽ luôn trả về một chuỗi. Trong Python 3, kết quả đọc từ một tệp phụ thuộc vào chế độ nó được mở bằng. Theo mặc định, nó sẽ trả về chuỗi văn bản, nhưng nó sẽ trả về byte nếu nó được mở ở chế độ nhị phân, b

với open['file. txt'] như f.
    f. read[] # văn bản

với open['file. txt', 'rb'] như f.
    f. read[] # byte

Đổi tên mô-đun/chức năng

Python 3 đã tổ chức lại thư viện chuẩn và đổi tên nhiều mô-đun và chức năng tích hợp. Công cụ Python 2 đến 3 sẽ tự động cập nhật mã của bạn để sử dụng tên mới. Bảng bên dưới liệt kê hầu hết các mô-đun/hàm Python 2 đã được đổi tên và tên Python 3 mới

__builtin__buildinsConfigParserconfigparsercopy_regcopyregcPicklepicklecStringIOioStringIOioanydbmdbm whichdbmdbmdbhashdbm. bsddbmdbm. ndbmgdbmdbm. gnudumbdbmdbm. câmmarkupbase_markupbasecommandssub processcookielibhttp. cookiejarCookiehttp. cookiehtmlentitydefshtml. thực thểHTMLParserhtml. trình phân tích cú pháp httplibhttp. clientBaseHTTPServerhttp. máy chủCGIHTTPMáy chủhttp. máy chủSimpleHTTPServerhttp. serverQueuequeuereprreprlibSocketServersocketserverthread_threaddummy_thread_dummy_threadTkintertikinterrobotparserurllib. robotparser urllib

urllib. lời yêu cầu

urllib. phân tích cú pháp

urllib. lỗi

urllib2

urllib. lời yêu cầu

urllib. lỗi

urlparse urllib. parse_winregwinregUserListcollectionsUserStringcollectionsxmlrpclibxmlrpc. clientDocXMLRPCServerxmlrpc. máy chủSimpleXMLRPCServerxmlrpc. serverbasestring[]str[]buffer[]memoryview[]execfile[]open[], compile[], exec[]input[]eval[input[]]intern[]

hệ thống. thực tập sinh[]

long[]int[]raw_input[]input[]reduce[]functools. giảm [] tải lại [] importlib. reload[]StandardError[]Exception[]unichr[]chr[]unicode[]str[]xrange[]range[]itertools. ifilter[]

lọc[]

itertools. ifilterfalse[] itertools. filterfalse[] itertools. imap[]

bản đồ[]

itertools. izip[]zip[]itertools. izip_longest[] itertools. zip_longest[]os. getcwdu[]

hệ điều hành. getcwd[]

hệ thống. maxintsys. kích thước tối đa. __khác không__. __bool__

iterkeys[]

iteritem[]

itervalues[]

phím xem[]

viewitems[]

giá trị xem []

has_key[phím]

phím[]

mặt hàng[]

giá trị[]

phím[]

mặt hàng[]

giá trị[]

nhập vào

func_clos

func_code

func_defaults

func_dict

func_doc

func_globals

func_name

__Khép kín__

__mã số__

__mặc định__

__dict__

__doc__

__globals__

__Tên__

im_func

im_self

im_class

__func__

__bản thân__

__bản thân__. __lớp__

phép chia số nguyên

Trong Python 2, chia hai số nguyên sẽ ra một số nguyên

Trong Python 3, việc chia hai số nguyên dẫn đến một số float

Nếu bạn muốn hành vi Python 2 chia số nguyên, bạn có thể sử dụng toán tử //

Các tệp Python đã biên dịch [. pyc]

Khi tải các mô-đun, Python lưu trữ mã đã biên dịch vào một. tập tin pyc. Trong Python 2,. các tệp pyc đã được tạo trong cùng thư mục với tệp tương ứng. py tệp nguồn bằng cách chỉ cần thêm c vào tên tệp. Trong Python 3,. các tệp pyc được tạo trong một thư mục con riêng có tên là __pycache__, với thông tin phiên bản Python được thêm vào tên tệp. Ví dụ, tệp nguồn

C. \thư mục\foo. py

sẽ có tương ứng của nó. tệp pyc được tạo tại

C. \thư mục\__pycache__\foo. cpython-38. pyc

Nếu bạn có mã dựa trên vị trí của. pyc, bạn sẽ cần cập nhật nó để phản ánh những thay đổi này

Công cụ chuyển đổi tự động

Công cụ Python 2 đến 3 có thể được sử dụng để tự động chuyển đổi mã Python 2 không hợp lệ thành mã Python 3 hợp lệ. Công cụ này sử dụng mô-đun lib2to3 của Python để thực hiện chuyển đổi. Mặc dù nó có thể phát hiện và thực hiện hầu hết các chuyển đổi cần thiết, nhưng vẫn có một số trường hợp bạn cần phải chuyển đổi mã theo cách thủ công, đặc biệt là các thay đổi giữa chuỗi/byte

  • Đường dẫn. Đường dẫn đầy đủ đến tập lệnh sẽ được chuyển đổi

  • Chuyển đổi tất cả các tệp Python. Nếu được bật, tất cả các tệp Python trong cùng thư mục và thư mục con của tập lệnh đã chỉ định cũng sẽ được chuyển đổi

  • mô phỏng chuyển đổi. Nếu được bật, quá trình chuyển đổi sẽ được mô phỏng. Sẽ không có tệp nào được sửa đổi, nhưng những thay đổi sẽ được thực hiện sẽ được xuất ra cửa sổ tương tác. Điều này có thể hữu ích nếu bạn muốn xem lại các thay đổi và tự mình áp dụng chúng

Nếu một tệp yêu cầu thay đổi, bản sao lưu của tệp gốc sẽ được thực hiện trước khi áp dụng các thay đổi. Tệp sao lưu sẽ được tạo trong cùng thư mục với tệp gốc với. bak được thêm vào tên tệp

Tôi có thể sử dụng python 3 nếu tôi biết python 2 không?

Điều này có nghĩa là các nhà phát triển vẫn có thể viết mã Python 3 theo cùng phong cách mà họ đã viết mã Python 2 , nhưng họ cũng có thể chọn sử dụng .

Python 3 có giống python 2 không?

Python 3 được yêu cầu nhiều hơn và bao gồm một hệ thống đánh máy. Python 2 đã lỗi thời và sử dụng cú pháp cũ hơn cho chức năng in . Mặc dù Python 2 vẫn đang được sử dụng để quản lý cấu hình trong DevOps, Python 3 là tiêu chuẩn hiện tại. Python [mã, không phải con rắn] là ngôn ngữ viết mã phổ biến để học cho người mới bắt đầu.

Điều gì đã thay đổi giữa python 2 và 3?

Một số thay đổi chính trong Python 3 bao gồm thay đổi khai báo in thành một hàm tích hợp, cải thiện phép chia số nguyên và hỗ trợ Unicode được cải thiện. The nature of these changes is such that Python 3 was incompatible with Python 2, in other words, it is backwards incompatible.

Chủ Đề