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
- Mở Trình chuyển đổi Python 2 sang 3
- Nhập Python 2 của bạn. 7 mã
- Nhấp vào Bộ chuyển đổi
- Bây giờ công cụ sẽ tự động chuyển đổi mã python 2 của bạn
- 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 inCâ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ặpPython 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 byteMộ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
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 urlliburllib. lời yêu cầu
urllib. phân tích cú pháp
urllib. lỗi
urllib2urllib. 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ênTrong 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