2011-01-30 28 views
7

Tôi muốn học Python. Tôi có một khóa học để làm trong Python 3. Tuy nhiên, tôi sẽ cần phải sử dụng chủ yếu là matplotlib và Numpy, và các thư viện này chưa tương thích với Python 3. Có đáng để thực hiện khóa học trong Python 3 hay sẽ lãng phí thời gian để học Python 3 và sau đó trở lại Python 2.x?Mới đối với Python ... Python 3 và Matplotlib

Bạn sẽ làm gì?

+5

hỗ trợ numpy py3k, matplotlib thì không. – SilentGhost

+0

có thể trùng lặp với http://stackoverflow.com/questions/880485/should-i-learn-python-2-x-or-start-learning-python-3 và, tốt, sao chép chúng. – badp

+2

Hơi khác một chút. Câu trả lời cho "Tôi có nên học Python 2 hay 3" là "Python 2" không. Câu hỏi này là "Là một khóa học Python 3 lãng phí". Câu trả lời là không". –

Trả lời

13

Bạn sẽ không gặp sự cố khi quay lại Python 2.x sau khi học Python 3 hoặc ngược lại. Không có quá nhiều sự khác biệt. (Một số thay đổi thư viện chuẩn, in là một hàm, tất cả các chuỗi là unicode - bạn sẽ không bao giờ nhận thấy hầu hết chúng).

Thực tế, nếu bạn học Python 3 ngay bây giờ, và có được một công việc làm việc với Python, bạn gần như chắc chắn sẽ làm việc với Python 2.x ngay bây giờ. Python 3 vẫn chưa được chấp nhận rộng rãi. Tuy nhiên, Python 3 sẽ được chấp nhận nhiều hơn trong tương lai gần, vì một số thư viện đang được chuyển sang Python 3.

Nếu bạn cần sử dụng Matplotlib cụ thể, thì bạn nên sử dụng Python 2.7 (không có ý nghĩa khi sử dụng Python 3) ngay bây giờ nếu thư viện bạn cần không làm việc cho nó). Nhưng việc học Python 3 đầu tiên sẽ không có nghĩa là đưa bạn vào bất kỳ bất lợi nào và có thể đưa bạn lên phía trước đường cong khi hầu hết mọi người cuối cùng cũng thực hiện chuyển đổi.

Cũng không có gì ngăn cản bạn sử dụng cả hai (Python 3 cho việc học/thử nghiệm, Python 2.7 cho công việc).

4

"Bạn sẽ làm gì?"

Tôi sẽ chuyển matplotlib sang Python 3. :-)

Nhưng không, khóa học trong Python 3 không bị lãng phí. Sự khác biệt chủ yếu là trong thư viện chuẩn, và trong sự khác biệt nội tại tinh tế.

Sự khác biệt chính trong ngôn ngữ chính là loại unicode được gọi là str trong Python 3, và rằng print là một hàm. Sự khác biệt không quá lớn đến mức một khóa học bị lãng phí.

0

Một cách khác để thực hiện là sử dụng một cái gì đó như cython cho phép bạn tạo thư viện python gốc tương thích (không sử dụng 2to3 hoặc 3to2) với cả 2.x và 3.x. Tuy nhiên, đó là một chút công việc. Bạn có thể sử dụng thiết lập và dict comprehensions với các phiên bản của python mà không hỗ trợ những tính năng mặc dù.

14

FYI, Matplotlib hiện là ported to Python 3.

+2

liên kết trực tiếp đến dự án github: https://github.com/matplotlib/matplotlib-py3 – mgalgs

+0

"đã được được hợp nhất lại thành https://github.com/matplotlib/matplotlib " –

+0

hg clone git: //github.com/matplotlib/matplotlib.git; cd ma *; python3.2 s * p.py cài đặt –

Các vấn đề liên quan