Python được sử dụng để làm gì? Internet về mọi thứ với Raspberry Pi. Khả năng đọc mã là chìa khóa

Đã lâu rồi, trong đầu tôi nảy sinh ý nghĩ liệu mình có nên viết một đoạn ngắn về chủ đề tại sao ngôn ngữ lập trình Python lại đáng học và hơn thế nữa là tạo các dự án phần mềm trong đó hay không.

Một số bạn biết rằng mới đây tôi đã tham dự sự kiện lớn nhất trong cộng đồng lập trình Python - . Mọi chi phí đều do tôi đài thọ hoàn toàn mà không có sự tham gia của nhà tài trợ hay nhà tuyển dụng. Có lẽ, để tham dự một sự kiện như vậy, bạn cần phải có chút tình cảm gắn bó với chủ đề này, và điều này đúng.

Python là gì?

Python là ngôn ngữ lập trình mục đích chung, chủ yếu nhằm mục đích tăng năng suất của bản thân lập trình viên, thay vì mã mà anh ta viết. Bằng ngôn ngữ đơn giản của con người, bạn có thể viết hầu hết mọi thứ bằng Python (ứng dụng web/máy tính để bàn, trò chơi, tập lệnh tự động hóa, hệ thống phức tạp tính toán, hệ thống kiểm soát hỗ trợ sự sống và nhiều hơn thế nữa) mà không gặp vấn đề gì đáng chú ý. Hơn nữa, rào cản gia nhập thấp và mã phần lớn ngắn gọn và dễ hiểu ngay cả với những người chưa bao giờ viết mã đó. Do tính đơn giản của mã, việc duy trì thêm các chương trình được viết bằng Python trở nên dễ dàng và thú vị hơn so với Java hoặc C++. Và từ quan điểm kinh doanh, điều này đòi hỏi phải giảm chi phí và tăng năng suất của nhân viên.

Để chứng minh sự ngắn gọn, chúng ta hãy xem mã Python và Java mở tệp và lưu trữ nội dung của nó trong một biến:

Tệp = open("file.txt") nội dung = file.read()

Nhập java.io.IOException; nhập java.nio.file.Files; nhập java.nio.file.Paths; public static void main(String args) ném IOException ( String content = new String(Files.readAllBytes(Paths.get("file.txt"))); )

Mã Java sử dụng giao diện được cập nhật để hoạt động với hệ thống đầu vào/đầu ra. Cách cũ sẽ còn tệ hơn nữa :)

Ai sử dụng Python?

Ngay cả ngôn ngữ lập trình tiên tiến nhất cũng trở nên vô giá trị nếu không có ai quan tâm đến nó. Một trong những thành phần tạo nên sự thành công của bất kỳ công nghệ nào là cộng đồng được tạo ra xung quanh nó. Chính điều này đã xác định trước hướng phát triển trong tương lai thông qua những nỗ lực chung. Cộng đồng Python là một trong những cộng đồng mạnh nhất trong thế giới CNTT. Đây là một sinh vật phức tạp, được tổ chức tốt và không ngừng phát triển. Ngoài hàng trăm nghìn nhà phát triển cá nhân và các công ty phần mềm nhỏ, Python còn được hỗ trợ bởi những gã khổng lồ về CNTT như:

Và rất nhiều người khác. Thật ấn tượng phải không? Đối với các dự án lớn và phổ biến được viết bằng Python, đây là những con quái vật như:

  • YouTube (hầu hết cơ sở mã hoàn toàn bằng Python)
  • Phiên bản đầu tiên của công cụ tìm kiếm Google được viết bằng Python và sau đó, do tính chất cực kỳ cao của nó. tải cao và yêu cầu về tốc độ, được viết lại bằng C++.
  • Ứng dụng khách máy tính để bàn Dropbox
  • Reddit
  • Instagram (500 triệu người dùng Python)
  • Bitbucket (Python 2.7 và Django 1.7.11)
  • MMOPG trực tuyến EVE
  • Quora
  • Spotify
  • Phê bình Dịch vụ PayPal, xử lý tới 2 tỷ yêu cầu mỗi ngày. Bạn có thể tìm hiểu thêm trong podcast TalkPython, tập #54
  • Dịch vụ Mozilla
  • Dịch vụ phổ biến ý tưởng Pinterest
  • Dịch vụ bình luận Disqus (Tôi sử dụng nó trên blog này, dịch vụ được triển khai ở Django)
  • Các dịch vụ nội bộ của Facebook (xem áp phích trong phần của tôi)
  • Hệ thống kiểm soát phiên bản Mercurial (cho đến cách đây một thời gian, các nhà phát triển Python đã sử dụng nó trong công việc của họ)
  • Dịch vụ Wargaming

và tôi chắc chắn còn nhiều điều thú vị khác ứng dụng phổ biến, mà tôi quên liệt kê ở đây (chào mừng bạn trong phần bình luận).

Điều đó có nghĩa là gì? Về nhiều thứ. Và điều quan trọng nhất đó là các tập đoàn lớn không ngại xây dựng hoạt động kinh doanh của mình dựa trên Python, họ tin tưởng rằng công nghệ này sẽ tồn tại và do đó họ không nên gặp khó khăn trong việc tìm kiếm chuyên gia. Hơn nữa, sự đa dạng của các ứng dụng cũng rất ấn tượng, thể hiện sự đa dạng của các vấn đề mà Python giải quyết một cách xuất sắc.

Trong một ghi chú về cuốn sách "", tôi đã viết rằng nó được lấy làm cơ sở Tài liệu giáo dục cho khóa học lập trình cơ bản tại MIT, Ngôn ngữ máy tính vào thời điểm đó phương ngữ Lisp là Đề án. Thời thế đang thay đổi, bây giờ điều gì đang dẫn đầu với tư cách là ngôn ngữ kỹ thuật số chung...? Đúng vậy, Python. Nó được sử dụng như một công cụ đáng tin cậy trong một nghề thủ công tuyệt vời như vậy.

Nhược điểm của Python

Một độc giả không quen thuộc với Python có thể có ấn tượng rằng nó là liều thuốc chữa bách bệnh, một viên đạn bạc và một phương thuốc chữa bệnh ung thư. Nhưng không phải mọi thứ đều màu hồng và tuyệt vời như vậy. Giống như mọi thứ, Python có một số khuyết điểm riêng, đôi khi có thể nghiêm trọng và ảnh hưởng đến sự lựa chọn không có lợi cho con rắn.

Tốc độ

Một trong những nhược điểm chính là tốc độ thực thi tương đối thấp. Python là một ngôn ngữ được gõ hoàn toàn động, điều khiển tự động ký ức. Mặc dù thoạt nhìn thì đây có vẻ là một lợi thế, nhưng khi phát triển các chương trình có yêu cầu hiệu quả cao hơn, Python có thể chậm hơn đáng kể so với những người anh em tĩnh của nó (C/C++, Java, Go). Đối với các đối tác động của nó (PHP, Ruby, JavaScript), mọi thứ ở đây tốt hơn nhiều; Python trong hầu hết các trường hợp thực thi mã nhanh hơn do được biên dịch trước thành mã byte và một phần quan trọng thư viện chuẩn, viết bằng C Tại các hội nghị, tôi có cơ hội giao tiếp với những người đến từ các công ty lớn giống như Wargaming, nhiều người trong số họ có xu hướng chuyển sang thống kê và thường đây là cờ vây, Rust.

Một báo cáo thú vị về tốc độ và tối ưu hóa CPython (triển khai ngôn ngữ gốc bằng C) đã được đọc tại PiterPy 2015 ở St. Petersburg:

Gõ động

Đối với những lập trình viên mới làm quen, một ngôn ngữ lập trình được gõ động ngay từ cái nhìn đầu tiên (và ở lần thứ hai và thậm chí ở lần thứ ba) có vẻ giống như một lối thoát, một niềm vui tuyệt vời, đặc biệt đối với những người trước đây đã từng làm việc với “thống kê”. Nhưng cũng có mặt sau mặt trăng. Khi cơ sở mã phát triển (và đây thường là một quá trình tất yếu trong dự án thành công), có thể rất khó để theo dõi loại dữ liệu được truyền cho nhau (và trong trường hợp không có tài liệu và kiểm tra rõ ràng), đây là nơi phát sinh vấn đề khi, chẳng hạn, khi họ cố gắng gọi một phương thức trên Không hoặc truy cập một thuộc tính trong quá trình thực thi mã. Để giải quyết loại vấn đề này, các ngôn ngữ động được phát triển quá mức với đủ loại nạng, còi và thủ thuật dưới dạng chú thích kiểu, dự án mypy phân tích tĩnh mã và như vậy. Ngược lại, điều này đặt một ý nghĩa tiêu cực về mặt thẩm mỹ của mã.

Do hạn chế về ngôn ngữ, các triển khai thay thế của trình thông dịch xuất hiện: PyPy, Pyston, Jython, Cython và nhiều trình thông dịch khác. Giờ đây, xu hướng này đã được thể hiện rõ ràng, chẳng hạn như Pyston đang được phát triển trong các bức tường của cái gọi là. Thánh địa của lập trình viên Python - Dropbox :)

Phần kết luận

Bất chấp một số vấn đề cố hữu về mặt lịch sử của Python, nó vẫn tiếp tục là một công cụ hàng đầu trong một số lĩnh vực:

  • Phát triển ứng dụng web (ở đây chúng tôi có ứng dụng dẫn đầu không thể tranh cãi dưới dạng Django).
  • Phân tích dữ liệu và học máy(các gói scipy, scikit-learn, pandas, numpy được cộng đồng khoa học toàn cầu công nhận).
  • Giới thiệu về lập trình (pygame, rùa rất giỏi trong việc thúc đẩy trẻ bắt đầu viết mã).
  • Tạo nguyên mẫu nhanh chóng các ý tưởng trong kinh doanh do có rất nhiều thư viện làm sẵn, rào cản tiếp cận ngôn ngữ thấp và năng suất cao của các lập trình viên viết bằng Python.
  • Viết kịch bản (kịch bản) để tự động hóa các tác vụ. Theo mặc định, Python đi kèm với tất cả các bản phân phối của các hệ thống giống unix và là sự thay thế tuyệt vời cho Bash theo mọi nghĩa.

Tôi chắc chắn tôi đã quên một cái gì đó khác. Nói chung, quy tắc Python!

Liên kết

Mọi thứ đều tệ, Kivy có thể được sử dụng như những dự án thú cưng, để phát triển thực sự thì rất đáng nghi ngờ, Kivy không còn chỗ trống.

Những thứ kia. Làm thế nào, cá nhân tôi đã nói chuyện với một số người có dự án web riêng bằng Python và viết ứng dụng bằng Kivy để thu hút một lượng lớn khán giả và họ thậm chí còn sử dụng nó, nhưng có vẻ như “Lập trình viên viết những gì anh ta muốn”.

Học máy và Khoa học dữ liệu (đầy đủ và đầy hứa hẹn)

Đây là một trong những lĩnh vực được quảng cáo rầm rộ nhất trong thế giới CNTT hiện đại, nơi Python được sử dụng làm công cụ kiểm tra. Python có một số thư viện tiện lợi học máy và tính toán khoa học: Pandas, NumPy, SciPy, Scikit-Learn, cho phép bạn nhanh chóng xây dựng các mô hình hoạt động. Và chúng thực sự hoạt động khá tốt.

Về mặt sử dụng, Python được sử dụng làm công cụ kiểm tra hoặc cho các tác vụ nhỏ. Nếu dự án lớn thì mô hình thường được viết bằng Java/Scala/C++ và chuyên gia đào tạo đã đóng vai trò là nhà tư vấn/nhà phân tích.

Khó khăn của hướng đi này nằm ở chỗ bạn phải có kiến ​​thức cao về lĩnh vực toán học và thống kê, hầu như sẽ luôn yêu cầu trình độ cao hơn về kỹ thuật và toán học.

Đối với các vị trí tuyển dụng, mọi thứ đều khá tốt, nhưng ở những vị trí tuyển dụng như vậy, điều cần thiết không phải là kiến ​​​​thức về Python mà là cái đầu của bạn.

Đối với những người muốn nhanh chóng cảm nhận được hướng đi này, tôi khuyên bạn nên đọc cuốn sách: “Vvedenie_v_mashinnoe_obuchenie_s_pomoschyu_Python_-_A_Myuller_S_Gvido_2017” - nó có sẵn trên torrent, đọc nhanh, nó đưa ra một ý tưởng hay.

Quét web (có thể, nhưng đáng nghi ngờ)

Python có ba thứ khiến nó trở nên rất hiệu quả trong lĩnh vực quét web, thư viện Yêu cầu, beautifulsoup và API Selenium. Nếu bạn kết nối các thư viện ở đây cho tầm nhìn máy tính và Machine Learning, bạn sẽ có được những công cụ rất hiệu quả.

Vấn đề là có rất ít vị trí tuyển dụng trong lĩnh vực này, khách hàng chính là những người làm việc tự do đề nghị viết cho họ các tập lệnh phân tích cú pháp cho các trang web rác rưởi của họ, máy spam và đôi khi đánh giá các công cụ tạo có tính phí.

Khu vực này thú vị nhưng có rất ít tiền trong đó.

Thị giác máy tính (nghi vấn)

Python có một số công cụ cho phép bạn viết các công cụ thị giác máy tính, chúng thậm chí còn được sử dụng ở nhiều nơi trong sản phẩm thương mại hoặc dưới dạng các thành phần, chẳng hạn như để quét web. Tuy nhiên, Python rõ ràng không phải là một công cụ phù hợp nên việc sử dụng nó cực kỳ hạn chế và thực tế không có chỗ trống.

GameDev (nghi ngờ)

Trong hầu hết mọi cuộc thảo luận về phát triển trò chơi Python, eve online và WarGaming đều được trích dẫn làm ví dụ. Tuy nhiên, trong trường hợp đầu tiên, python không trạng thái được sử dụng và trong trường hợp thứ hai, mọi thứ chỉ giới hạn ở ngôn ngữ kịch bản.

Khi sử dụng thực tế, bạn có ba công cụ Kivy, PyGame, Panda3D, nếu hai công cụ đầu tiên phù hợp hơn cho các dự án thú cưng, thì công cụ thứ ba thực sự được sử dụng trong các dự án chiến đấu có chất lượng tốt, mặc dù các dự án này đã có từ năm 2004. Điều này dường như gợi ý rằng việc sử dụng các công cụ đã được chứng minh bằng các ngôn ngữ khác như Unity hoặc Nhà sản xuất trò chơi có vẻ thuyết phục hơn.

Tuy nhiên, công cụ Ren'Py lẻn vào đây mà không được chú ý, công cụ này đột nhiên trở thành công cụ tốt nhất để viết tiểu thuyết trực quan (những câu chuyện đau khổ dành cho các cô gái), mang lại kết quả tốt ngay cả ở Liên bang Nga. Bộ truyện “7 nhà quỷ học của Peter Đại đế” là bằng chứng cho điều này.

Đương nhiên, không có vị trí tuyển dụng nào trong GameDev dành cho python, nhưng bạn có thể huy động tiền tại một công ty “khởi nghiệp” với kỹ năng phù hợp. Nhưng sẽ an toàn hơn khi sử dụng ngôn ngữ khác và các công cụ đã được chứng minh.

Phát triển web (đầy đủ và đầy hứa hẹn)

Python là một trong ba ngôn ngữ (Python, PHP, Ruby) đã phát triển hệ sinh thái để phát triển nhanh chóng các dự án web có chất lượng tương xứng. Các nền tảng chính ở đây là:
  • Django (khung đồng bộ nguyên khối)
  • Bình (khung đồng bộ vi mô)
  • Tornado (khung không đồng bộ nguyên khối)
  • Xoắn (khung không đồng bộ nguyên khối)
  • Aiohttp (khung không đồng bộ vi mô)
TRONG Hiện nay Phần lớn thị trường bị chiếm lĩnh bởi framework Django, nhưng với sự xuất hiện của các ý tưởng dịch vụ vi mô, Flask dần bắt đầu có được động lực. Về vấn đề không đồng bộ, ở đây mọi thứ đều phức tạp, vì Tornado và Twisted được coi là lỗi thời (mặc dù nhiều công ty làm việc cho họ, như Tinkov), và aiohttp rất thô sơ và việc sử dụng nó còn bị nghi ngờ.

Điểm mạnh của Python là nó cho phép bạn nhanh chóng phát triển các ứng dụng web phức tạp, có số lượng lớn mô-đun chất lượng cao và hoàn hảo cho các dịch vụ thống kê và phân tích (nói chung, hầu hết các vị trí tuyển dụng đều được tìm thấy cho nó). Khu vực này chiếm một phần ba còn lại của tất cả các vị trí tuyển dụng.

Riêng biệt, tôi muốn lưu ý việc viết các dịch vụ GIS bằng Python, mặc dù chúng có các công cụ khá đầy đủ để làm việc với dữ liệu địa lý, nhưng việc sử dụng Java cho những mục đích này có vẻ hứa hẹn hơn.

Kết luận về việc sử dụng python

1) Về lĩnh vực devops và testing, Python là công cụ quan trọng nghề nghiệp, đó là điều bắt buộc đối với mọi chuyên gia thích hợp. Python trong trong trường hợp này Họ không dạy, họ đến với anh ấy vì cần thiết.

2) Các lĩnh vực hứa hẹn nhất là phát triển web và học máy (phân tích), giúp phân biệt rõ ràng Python với các đối thủ cạnh tranh dưới dạng PHP và Ruby. Và nếu bạn muốn học Python, thì bạn nên tập trung vào những lĩnh vực này và không lãng phí thời gian vào bất cứ điều gì khác. Có những vị trí tuyển dụng cho việc này và bạn có thể xây dựng một công ty khởi nghiệp về lĩnh vực này.

3) Tất cả các lĩnh vực khác, mặc dù chúng cung cấp một số công cụ nhất định để giải quyết vấn đề, nhưng triển vọng sử dụng những công cụ này có vẻ rất đáng nghi ngờ. Và quan trọng nhất, việc tìm việc làm được trả lương ở những lĩnh vực này gần như là không thể.

3 câu trả lời

Python là ngôn ngữ lập trình đa cấp, hướng đối tượng, năng động, được gõ mạnh, được thiết kế để học, sử dụng và hiểu nhanh cũng như cung cấp cú pháp rõ ràng, nhất quán.

  • Python năng độngđược in: điều này có nghĩa là bạn không khai báo một loại (chẳng hạn như "số nguyên") cho tên biến và sau đó gán một cái gì đó từ loại đó (và chỉ loại đó). Thay vào đó, bạn có các tên biến và liên kết chúng với các đối tượng có kiểu vẫn còn với chính thực thể đó. a = 5 làm cho tên biến trở thành tham chiếu đến số nguyên 5. Sau đó, a = "hello" làm cho tên biến trở thành tham chiếu đến chuỗi chứa "hello". Các ngôn ngữ gõ tĩnh có thể khai báo int a và sau đó là a = 5, nhưng việc gán a = "hello" sẽ là lỗi thời gian biên dịch. Một mặt, điều này làm cho mọi thứ trở nên khó đoán hơn (bạn không biết a đề cập đến điều gì). Mặt khác, rất dễ đạt được một số kết quả mà các ngôn ngữ gõ tĩnh rất khó đạt được.
  • Python gõ mạnh. Điều này có nghĩa là nếu a = "5" (một chuỗi có giá trị là "5") sẽ vẫn là một chuỗi và sẽ không bao giờ bị buộc phải chuyển thành số nếu ngữ cảnh yêu cầu. Mọi chuyển đổi kiểu trong python phải được thực hiện rõ ràng. Điều này khác với, chẳng hạn như Perl hoặc Javascript, nơi bạn có khả năng nhập văn bản yếu và có thể viết những thứ như "hello" + 5 để nhận được "hello5" .
  • Python hướng đối tượng, với sự kế thừa dựa trên lớp. Mọi thứ đều là một đối tượng (bao gồm các lớp, hàm, mô-đun, v.v.) theo nghĩa là chúng có thể được truyền dưới dạng đối số, có phương thức và thuộc tính, v.v.
  • Python đa mục đích: Nó không chuyên về mục tiêu người dùng cụ thể (chẳng hạn như R để thống kê hoặc PHP để lập trình web). Nó được mở rộng thông qua các mô-đun và thư viện cắm vào ngôn ngữ lập trình C rất dễ dàng.
  • Python cung cấp chính xác vết lõm mã bằng cách thụt lề cú pháp. Không có dấu ngoặc nhọn nào thoát được trong Python. Các khối mã được xác định theo mức độ thụt lề của chúng. Mặc dù nhiều lập trình viên không quen với điều này, nhưng nó rất có giá trị vì nó mang lại một phong cách rất nhất quán và tạo ra mã dễ đọc.
  • Mã biên dịch thành mã byte và sau đó thực hiện trên máy ảo. Điều này có nghĩa là mã được biên dịch trước có thể di chuyển giữa các nền tảng.

Python có thể được sử dụng cho bất kỳ tác vụ lập trình nào, từ lập trình GUI đến lập trình web và mọi thứ khác ở giữa. Nó khá hiệu quả vì hầu hết hoạt động của nó được thực hiện ở cấp độ C. Python chỉ là một lớp trên C. Có các thư viện cho mọi thứ bạn có thể nghĩ tới: lập trình trò chơi và OpenGL, giao diện GUI, khung web, mạng ngữ nghĩa, tính toán khoa học...

Python đưa bạn bước vào thế giới lập trình. Mặc dù ngôn ngữ lập trình Python đã tồn tại được 25 năm nhưng nó vẫn ngày càng phổ biến. Một số nhất lợi ích tuyệt vời Trăn:

  • Dễ đọc và dễ học
  • Các dự án rất hiệu quả hoặc nhỏ cũng như lớn
  • Thư viện lớn cho nhiều thứ

Ngôn ngữ lập trình Python được sử dụng để làm gì?

Là ngôn ngữ lập trình có mục đích chung, Python có thể được sử dụng cho một số việc. Python có thể dễ dàng sử dụng cho các dự án nhỏ, lớn, trực tuyến và ngoại tuyến. Ứng dụng tốt nhất của Python là phát triển web, viết kịch bản đơn giản và phân tích dữ liệu. Dưới đây là một vài ví dụ về những gì Python sẽ cho phép bạn thực hiện:

Phát triển web:

Bạn có thể sử dụng Python để tạo các ứng dụng web ở nhiều mức độ phức tạp. Có rất nhiều khung web Python tuyệt vời, bao gồm Pyramid, Django và Flask, cùng một số khung.

Phân tích dữ liệu:

Python là ngôn ngữ được nhiều nhà khoa học nghiên cứu lựa chọn hàng đầu. Python đã trở nên phổ biến trong lĩnh vực này nhờ các thư viện tuyệt vời của nó bao gồm; NumPy và Pandas cũng như các thư viện trực quan hóa dữ liệu tuyệt vời của nó như Matplotlib và Seaborn.

Học máy:

Điều gì sẽ xảy ra nếu bạn có thể dự đoán sự hài lòng của khách hàng hoặc phân tích những yếu tố nào sẽ ảnh hưởng đến giá hộ gia đình hoặc dự đoán lượng hàng tồn kho trong vài ngày tới dựa trên dữ liệu từ những năm trước? Có rất nhiều thư viện tuyệt vời triển khai các thuật toán học máy, chẳng hạn như Scikit-Learn, NLTK và TensorFlow.

Tầm nhìn máy tính:

Bạn có thể thực hiện nhiều điều thú vị như nhận diện khuôn mặt, nhận diện màu sắc bằng Opencv và Python.

Internet về mọi thứ với Raspberry Pi:

Raspberry Pi là một máy tính rất nhỏ và giá cả phải chăng, được thiết kế dành cho giáo dục và đã trở nên vô cùng phổ biến đối với những người có sở thích sử dụng phần cứng và tự động hóa tự chế. Bạn thậm chí có thể chế tạo một robot và tự động hóa toàn bộ ngôi nhà của mình. Raspberry Pi có thể được sử dụng làm bộ não để robot của bạn thực hiện nhiều hành động khác nhau và/hoặc phản ứng với môi trường. Mã hóa trên Raspberry Pi có thể được thực hiện bằng sử dụng Python. Khả năng là vô tận!

Sự phát triển trò chơi:

Tạo trò chơi điện tử bằng mô-đun Pygame. Về cơ bản, bạn sử dụng Python để viết logic trò chơi. Ứng dụng PyGame có thể chạy trên thiết bị Android.

Trình quét web:

Nếu bạn cần lấy dữ liệu từ một trang web nhưng trang web đó không có API để xuất bản dữ liệu, hãy sử dụng Python để trích xuất dữ liệu.

Viết kịch bản:

Nếu bạn đang làm điều gì đó một cách thủ công và muốn tự động hóa những việc lặp đi lặp lại như email, không khó để tự động hóa khi bạn biết những điều cơ bản về ngôn ngữ.

Tự động hóa trình duyệt:

Thực hiện một số thao tác thú vị như mở trình duyệt và đăng trạng thái Facebook, bạn có thể thực hiện việc này bằng Selenium với Python.

Phát triển giao diện đồ họa:

Tạo ứng dụng GUI (ứng dụng máy tính để bàn) bằng cách sử dụng các mô-đun Python Tkinter, PyQt để được hỗ trợ.

Tạo mẫu nhanh:

Python có thư viện cho hầu hết mọi thứ. Sử dụng nó cho tạo nhanh(thấp hơn, thường kém mạnh mẽ hơn). Python cũng tuyệt vời để thử nghiệm các ý tưởng hoặc sản phẩm cho công ty nổi tiếng và người mới bắt đầu.

Python có thể được sử dụng trong nhiều dự án khác nhau. Nếu bạn là một lập trình viên đang tìm kiếm một ngôn ngữ mới, bạn muốn nó trở nên phổ biến. Là người mới làm quen với lập trình, Python - lựa chọn hoàn hảođể học một cách nhanh chóng và dễ dàng.

Có đáng học ngôn ngữ lập trình Python không? Rốt cuộc, bạn thường có thể nghe thấy rằng ngôn ngữ này đang chết dần. Người dùng Quora đã thảo luận về vấn đề này và chia sẻ ý kiến ​​của họ.

Bill Carven, nhà phát triển, nhà tư vấn, huấn luyện viên và tác giả SQL

Hợp ngữ mang đến cho bạn cơ hội tuyệt vời để viết mã nhỏ gọn, hiệu quả và được tối ưu hóa cho dự án. Với mã được viết bằng ngôn ngữ này, chỉ chiếm vài kilobyte, bạn có thể làm được những điều đáng kinh ngạc. Nhưng mức độ hiệu quả có thể đạt được bằng cách sử dụng hợp ngữ không thể biện minh cho việc phải làm thêm, thời gian và kỹ năng.

Đúng là ngôn ngữ ngày càng phổ biến. Năng suất là đây nhiệm vụ chinh trong lập trình, vì vậy các ngôn ngữ mới thỉnh thoảng được tạo ra để tăng năng suất cho ít nhất một số loại công việc.

Hầu hết các lập trình viên ngày nay đều sử dụng các ngôn ngữ cấp cao hơn - họ cần làm việc hiệu quả hơn. Ngôn ngữ cấp cao nhất có thể được biên dịch thành mã máy (C hoặc C++) hoặc có thể được biên dịch thành mã byte với kiến ​​trúc độc lập và chạy trong máy ảo (Java) hoặc được xử lý (JavaScript, PHP, Ruby, Python, Perl, v.v.).

Việc bạn cần học hợp ngữ vì “nó tốt hơn Python” là một quan niệm sai lầm. Đây là một quan điểm ngu ngốc dựa trên dữ liệu lỗi thời.

Người đóng gói hóa đơn, Giám đốc điều hành ICPC, phần mềm trong lĩnh vực năng lượng, di truyền tổng hợp, v.v.

Tìm hiểu Python. Cung cấp cho mình kinh nghiệm lập trình. Ngôn ngữ này có sự sang trọng riêng của nó.

Tìm hiểu C như một ngôn ngữ cho máy Unix. Hiểu UNIX tương đối dễ dàng.

Học MIX để hiểu Knuth.

Học Java để không phải lo lắng khi làm việc với người khác và còn có thể học lập trình hướng đối tượng.

Học C++ để bạn có thể lập trình theo bất kỳ phong cách nào bạn muốn. Điểm mạnh của nó là nó là ngôn ngữ lập trình cơ bản. Điểm yếu của nó là để lập trình trong đó bạn cần hiểu phong cách của nó.

Tìm hiểu LISP để củng cố sự hiểu biết của bạn về đệ quy.

Tôi đã nói rằng nó không đáng để học ít nhất một cái gì đó? KHÔNG. Bởi vì điều duy nhất bạn phải làm là rèn luyện bản thân để nghiên cứu liên tục bất cứ điều gì, đặc biệt là học cách giải quyết vấn đề.

Shiva Shinde, Python dễ viết mã nhưng khó đọc

Ngôn ngữ lập trình Python không chết; nó là một trong những ngôn ngữ phát triển nhanh nhất.

  1. Thật dễ dàng để học
  • Hiện nay, 8 trong số 10 chương trình máy tính hàng đầu của Mỹ sử dụng ngôn ngữ này (Philip Guo, CACM)
  • Các chương trình Python có xu hướng có tối thiểu các mẫu thường thấy trong các ngôn ngữ lập trình khác. Do đó, bạn có thể sử dụng các giải pháp không chuẩn cho các vấn đề thường xuyên hơn.
  • Nếu bạn có kinh nghiệm lập trình, ngay cả khi không sử dụng ngôn ngữ này, thì bạn sẽ nhanh chóng thành thạo Python.

2. Đầy đủ chức năng

  • Nó không chỉ là một ngôn ngữ để thống kê. Python có tất cả các khả năng thu thập và làm sạch dữ liệu, làm việc với cơ sở dữ liệu và tính toán hiệu năng cao, v.v.
  • Đây là ngôn ngữ lập trình được chấp nhận rộng rãi với số lượng lớn các thư viện tích hợp. Nó tốt cho việc quản lý dữ liệu và cơ sở dữ liệu cũng như để làm việc với lập trình mạng. Đó là một ngôn ngữ chu đáo với lượng tài nguyên khổng lồ có sẵn.

3. Thư viện dữ liệu khoa học nghiêm túc

  • Python có các thư viện khoa học quan trọng với lượng dữ liệu khổng lồ để sử dụng.
  • Xương sống của các thư viện nghiên cứu này là Hệ sinh thái SciPy, thậm chí còn tổ chức các hội nghị riêng.
  • Pandas và Matplotlib là các thành phần của SciPy. Họ cung cấp dữ liệu tuyệt vời nhất Các chủ đề khác nhau, ví dụ như học máy, phân tích tiên đoán phân tích văn bản và mạng.

Hernan Soulages, lập trình viên thực dụng

Ngôn ngữ này khá phổ biến, tầm quan trọng của nó ngày càng tăng trong giới học thuật. Cũng đúng là tính hữu dụng của ngôn ngữ lập trình phụ thuộc vào những gì bạn muốn làm với nó.

Tôi không thích PHP chút nào, nhưng tôi không đủ ngu ngốc để phủ nhận tính linh hoạt và sức mạnh của nó, đồng thời đó là một ngôn ngữ dễ học.
Đối với việc học hợp ngữ, ngôn ngữ này phụ thuộc trực tiếp vào bộ xử lý bạn đang làm việc.

Nếu bạn biết cách làm việc với một cái, thì bạn chắc chắn có thể sử dụng nó trong dòng bộ xử lý của mình một thời gian. Nhưng theo thời gian, họ cũng trải qua một số thay đổi. Theo nghĩa này, đây là họ ngôn ngữ kém bền vững nhất.

Magnus Lychka, nhà phát triển và tư vấn phần mềm ở Gothenburg

Nhiều người dùng thích Python. Đối với một số ứng dụng, nó sẽ quá chậm và chẳng hạn như chúng sẽ hoạt động nhanh hơn với hợp ngữ, nhưng những ứng dụng này sẽ hoạt động nhanh như vậy trong C, mặc dù thực tế là mã được viết bằng C sẽ hoạt động trên mọi nền tảng.

Nhiều công ty khởi nghiệp đã thành công với Python, sau đó họ phải viết lại một số chương trình bằng Java, C++ hoặc C. Và nếu những công ty khởi nghiệp này bắt đầu làm việc với hợp ngữ, thì rất có thể họ sẽ hết vốn từ lâu trước khi rất nhanh nhưng khó khăn. đọc mã sẽ hoàn tất.

Nhưng khi làm việc với hợp ngữ, bạn sẽ không chỉ phải giải quyết kiến trúc khác nhau bộ xử lý mà còn có các chi tiết kỹ thuật khác nhau giữa các hệ điều hành.

Những chương trình nào được viết bằng Python?

Phần mềm ứng dụng dành cho người bình thường

Trước tiên chúng ta hãy điểm qua các chương trình được sử dụng bởi những người bình thường không phải là chuyên gia trong lĩnh vực công nghệ thông tin.

BitTorrent

Tất cả các phiên bản lên đến 6 của máy khách torrent này đều được viết bằng Python. Phiên bản 6 được viết lại bằng C++.

Trung tâm phần mềm Ubuntu

Trích dẫn từ Wikipedia:
Trung tâm ứng dụng Ubuntu (Tiếng Anh) Trung tâm phần mềm Ubuntu) là phần mềm miễn phí để tìm, cài đặt và gỡ bỏ các gói trên hệ thống Ubuntu Linux. V. phiên bản mới nhất Bạn có thể mua tạp chí về Linux và Ubuntu, bạn cũng có thể mua trò chơi và phần mềm trả phí. Ứng dụng này được phát triển bằng Python + Vala sử dụng thư viện GTK + và là lớp vỏ đồ họa cho Công cụ đóng gói nâng cao.

Máy xay

Trích dẫn từ Wikipedia:
Máy xay- gói miễn phí, chuyên nghiệp để tạo không gian ba chiều đô họa may tinh, bao gồm các công cụ để tạo mô hình, hoạt ảnh, kết xuất, xử lý hậu kỳ video và tạo trò chơi tương tác. Hiện tại, nó là trình chỉnh sửa 3D miễn phí phổ biến nhất do tốc độ phát triển nhanh chóng và ổn định, được hỗ trợ bởi đội ngũ phát triển chuyên nghiệp.

Python được sử dụng như một công cụ để tạo ra các công cụ và nguyên mẫu, hệ thống logic trong trò chơi, như một phương tiện nhập/xuất tệp (ví dụ COLLADA) và tự động hóa các tác vụ.

Dưới đây là một số trang tài liệu:

GIMP

Trích dẫn từ Wikipedia:
Python được sử dụng để viết mô-đun bổ sung, ví dụ: bộ lọc.
Dưới đây là một số trang đi sâu hơn vào chủ đề:

Trò chơi

Nền văn minh IV

Hầu hết trò chơi được viết bằng Python().

Chiến trường 2

Có rất nhiều sách giáo khoa và công thức đơn giản trên Internet để thay đổi các đồ vật khác nhau và hành vi của họ.

Thế giới của xe tăng

Trích dẫn bài viết "GUI trong game World of Tanks":
Python được sử dụng làm ngôn ngữ kịch bản trong dự án. Tất cả vẻ đẹp mà chúng tôi tạo ra trong Flash cần phải được kết nối trong trò chơi, chứa đầy dữ liệu, được xử lý và chuyển thành các hành động thực trong trò chơi. Tất cả điều này được thực hiện bằng Python.
Hơn danh sách đầy đủ các trò chơi sử dụng Python có thể được tìm thấy trên Wikipedia và tài liệu Python.

Những công ty nào sử dụng Python?

Danh sách các công ty sử dụng Python rất dài. Trong số đó có Google, Facebook, Yahoo , NASA , Mũ Đỏ , IBM , Instagram , Dropbox, Pinterest, Quora, Yandex, Mail.Ru.

Yandex

Mời bạn xem báo cáo “Python trong lõi của Yandex.Disk”. Sergey Ivashchenko (diễn giả):
Tôi sẽ nói về cách chúng tôi sử dụng Python trong Yandex.Disk, những thư viện và khung công tác nào chúng tôi sử dụng, những nhiệm vụ chúng tôi giải quyết và những vấn đề chúng tôi gặp phải. Tôi cũng sẽ đề cập đến chủ đề ghi nhật ký và xử lý các hoạt động không đồng bộ.
Trong một trong những video trên kênh Yandex, các nhân viên đã nói về ngôn ngữ yêu thích của họ.

Và trên blog của công ty Yandex có một mục “Ngôn ngữ lập trình nào được viết bằng Yandex” ngày 19 tháng 3 năm 2014. Vì vậy, 13% nhân viên Yandex viết phần lớn thời gian làm việc của họ bằng Python.

Thư.ru

Nhân viên của Mail.ru cũng sử dụng Python. Blog chính thức của Mail.ru trên Habré có một số bài viết về Python:

Google

Google đã tích cực sử dụng Python kể từ khi thành lập. Có tin đồn rằng hầu hết YouTube và Google Drive đều được viết bằng Python. Google đã phát triển toàn bộ nền tảng đám mây Ứng dụng Google Công cụ để các nhà phát triển có thể chạy mã Python trong đám mây của Google. Nhiều nhà phát triển ngôn ngữ đã và đang làm việc tại Google.

DropBox

Dịch vụ này được phát triển bằng Python. Không phải ngẫu nhiên mà tác giả của ngôn ngữ Python, Guido van Rossum, lại làm việc tại DropBox.

Các công ty khác

Các tổ chức sử dụng Python

Python được sử dụng trong lĩnh vực nào?

phát triển web

Python có lẽ được sử dụng nhiều nhất trong lĩnh vực này. Khung web Django tiếp tục có đà phát triển, mở rộng đội quân người hâm mộ. Nhiều lập trình viên mới vào nghề thậm chí còn nghĩ rằng Python không được sử dụng ở bất kỳ nơi nào khác. Nhưng nhiều khung web khác được viết bằng Python: Pylons TurboGears , CherryPy, Flask, Kim tự tháp và những thứ khác. Bạn có thể tìm thấy một danh sách đầy đủ hơn.
Ngoài ra còn có một CMS dựa trên Django, nó được gọi là DjangoCMS.
Rất thường xuyên, các trình phân tích cú pháp trang web được viết bằng Python. Thông thường, Yêu cầu, aiohttp, BeautifulSoup, html5lib được sử dụng cho việc này. Ngoài ra còn có các công cụ cấp cao hơn để phân tích trang web: Phế liệu, lấy.

Quản trị hệ thống

Python là ngôn ngữ xuất sắcđể tự động hóa công việc của người quản trị hệ thống. Nó được cài đặt theo mặc định trên tất cả các máy chủ Linux. Nó đơn giản và dễ hiểu. Mã Python rất dễ đọc. Một số người yêu thích Perl, tôi cũng thích nó vì nó làm việc thuận tiện với biểu thức chính quy nhưng tôi ghét Perl vì cú pháp của nó. Bash rất hữu ích cho các tập lệnh có kích thước tương đối nhỏ và trung bình, nhưng Python mạnh hơn và trong một số trường hợp cho phép bạn viết ít mã hơn nhiều.
Gói duy nhất tôi biết là Fabric. Có lẽ còn có điều gì khác, hãy viết bình luận cho tôi nếu bạn biết.

thông tin thêm

Python dành cho quản trị viên hệ thống (IBM devWorks)
Tài liệu về vải. Quản trị hệ thống.

Những hệ thống nhúng

Python rất thường được sử dụng để lập trình các hệ thống nhúng. Dự án nổi tiếng nhất sử dụng Python là Raspberry Pi. Nhưng anh ấy không phải là người duy nhất:
Python nhúng
Raspberry Pi
Công cụ nhúng Python
Hệ thống Python nhúng Owl

Phát triển phần mềm ứng dụng, bao gồm cả trò chơi

Python thường được sử dụng làm ngôn ngữ hỗ trợ trong phát triển phần mềm ứng dụng. Tôi đã đưa ra ví dụ ở trên rồi, tôi sẽ không lặp lại.

Nghiên cứu khoa học

Các nhà vật lý và toán học yêu thích Python vì tính đơn giản của nó. Ngoài ra, có một số lượng lớn thư viện dành cho Python giúp cuộc sống của một nhà khoa học trở nên dễ dàng hơn. Ví dụ:
  1. khoa học viễn tưởng là một thư viện mở gồm các công cụ khoa học chất lượng cao dành cho ngôn ngữ lập trình Python. SciPy chứa các mô-đun để tối ưu hóa, tích hợp, các chức năng đặc biệt, xử lý tín hiệu, xử lý hình ảnh, thuật toán di truyền, giải phương trình vi phân thông thường và các vấn đề khác thường được giải quyết trong khoa học và kỹ thuật.
  2. Matplotlib- một thư viện bằng ngôn ngữ lập trình Python để hiển thị dữ liệu bằng đồ họa hai chiều (2D) (đồ họa 3D cũng được hỗ trợ). Các hình ảnh thu được có thể được sử dụng làm hình minh họa trong các ấn phẩm.
  3. NumPy là một phần mở rộng cho ngôn ngữ Python có thêm hỗ trợ cho các mảng đa chiều và ma trận, cùng với một thư viện lớn chứa các hàm toán học cấp cao để thực hiện các phép tính trên các mảng này.
Bạn có thể tìm thấy danh sách đầy đủ hơn các thư viện dành cho tính toán khoa học bằng Python trên Wikipedia.

Giáo dục

Python thường được khuyên dùng làm ngôn ngữ lập trình đầu tiên.
Một số trường học ở Nga đã có kinh nghiệm thành công trong việc dạy lập trình cho học sinh bằng Python.
Nhân tiện, Guido van Rossum đã rất ấn tượng với ngôn ngữ ABC khi ông viết Python. Và ngôn ngữ ABC được dùng để đào tạo và tạo mẫu.

Những lời chỉ trích về ngôn ngữ Python

Python là một trong những ngôn ngữ lập trình chậm nhất

Trên Internet, bạn có thể tìm thấy nhiều bài kiểm tra tốc độ khác nhau cho các chương trình được viết bằng các ngôn ngữ lập trình khác nhau. Python thường ở cuối danh sách.
Thông thường, Python đề cập đến CPython, cách triển khai tham chiếu của ngôn ngữ. Có các cách triển khai khác của ngôn ngữ Python, chẳng hạn như PyPy. PyPy vượt trội hơn CPython và nhiều thứ khác ngôn ngữ kịch bản lập trình, tốc độ rất gần với Java. Nhưng có một vấn đề - PyPy không triển khai đầy đủ ngôn ngữ Python, do đó, nhiều chương trình Python không hoạt động trên nó.
Nhiều lập trình viên viết phần chèn trong C/C++ để tăng tốc công việc khi gặp tình trạng tắc nghẽn. Python không dành cho nhiệm vụ tính toán, dành cho các tác vụ yêu cầu nhiều bộ nhớ (bị giới hạn bộ nhớ) và những tác vụ tương tự. Bạn cần có khả năng chọn các công cụ phù hợp cho các nhiệm vụ bạn phải đối mặt. Guido van Rossum nói về điều này trong một cuộc phỏng vấn.

GIL ngăn nhiều luồng thực thi đồng thời

Khóa phiên dịch toàn cầu ngăn nhiều luồng Python thực thi đồng thời. Đây là những tính năng của CPython. Nhưng đây có phải là một bất lợi? Bạn cần hiểu rằng mọi thứ đều phụ thuộc vào nhiệm vụ. Nếu tác vụ của bạn phụ thuộc vào tốc độ I/O (tác vụ ràng buộc IO), thì việc sử dụng một số quy trình sẽ hoạt động không đồng bộ với các tài nguyên bên ngoài sẽ hiệu quả hơn. Và các luồng bộ nhớ dùng chung rất tốt cho các tác vụ tính toán (giới hạn CPU). Nhưng ngay cả khi bạn cần làm việc với các luồng, bạn có thể vô hiệu hóa GIL trong một thời gian, vì việc này được thực hiện trong gói toán NumPy.

Không có công cụ phân phối tốt

Thật không may, mã này bằng Python, có nhiều phụ thuộc vào thư viện hệ thống, khó chuyển sang hệ thống khác. Vấn đề này được giải quyết bằng virtualenv. nhưng công cụ này bị quản trị hệ thống chỉ trích rất nhiều.

thông tin thêm

Câu chuyện thành công của Python
Bạn đã sử dụng Python để viết CÁI GÌ?
Python được sử dụng để làm gì?
Thêm bằng chứng cho thấy đó là thế giới của Python và chúng ta đang sống trong đó
LƯƠNG TRUNG BÌNH CHO VIỆC LÀM YÊU CẦU PYTHON
Danh sách phần mềm Python