Mã Python ưa thích

Theo Clean Code. A Handbook of Agile Software Craftsmanship, “Tỷ lệ thời gian đọc so với. bài viết cũng được hơn 10. 1. ”

Thông thường, lập trình thẩm mỹ không phải là một vấn đề quan trọng khi chúng tôi còn học ở trường. Các cá nhân sau đó làm theo phong cách của họ khi viết bằng Python. Tuy nhiên, công việc có thể không như mong muốn bất cứ khi nào chúng ta phải dành phần lớn thời gian để hiểu mã ẩn của một người, điều này cũng có thể xảy ra với những người khác khi đọc mã của chúng ta. Do đó, hãy tập trung vào Zen của Python và một số mẹo cải tiến để giải quyết vấn đề

Thiền của Python?

Đối với những người chưa từng thấy nó trước đây, hãy nhập và thực thi import this trong trình thông dịch Python của bạn và 19 nguyên tắc hướng dẫn do Tim Peters chấp bút sẽ hiển thị

  1. Đẹp thì tốt hơn là xấu
  2. Rõ ràng là tốt hơn ngầm
  3. Đơn giản là tốt hơn phức tạp
  4. Phức tạp tốt hơn phức tạp
  5. Căn hộ tốt hơn lồng nhau
  6. Thưa thớt tốt hơn dày đặc
  7. số lượng khả năng đọc
  8. Các trường hợp đặc biệt không đủ đặc biệt để phá vỡ các quy tắc
  9. Mặc dù tính thực tế đánh bại sự tinh khiết
  10. Lỗi không bao giờ nên âm thầm trôi qua
  11. Trừ khi im lặng rõ ràng
  12. Khi đối mặt với sự mơ hồ, hãy từ chối sự cám dỗ để đoán
  13. Nên có một — và tốt nhất là chỉ một — cách rõ ràng để làm điều đó
  14. Mặc dù ban đầu cách đó có thể không rõ ràng trừ khi bạn là người Hà Lan
  15. Bây giờ tốt hơn là không bao giờ
  16. Mặc dù không bao giờ thường tốt hơn *ngay* bây giờ
  17. Nếu việc triển khai khó giải thích, thì đó là một ý tưởng tồi
  18. Nếu việc triển khai dễ giải thích, đó có thể là một ý kiến ​​hay
  19. Không gian tên là một ý tưởng tuyệt vời - hãy làm nhiều hơn nữa

Trong phần này, tôi sẽ chia sẻ cách giải thích của tôi về những câu cách ngôn này và một số mẹo Python hữu ích mà tôi đã học được

Ảnh của June Wong trên Bapt

Đẹp Tốt Hơn Xấu

Python có cú pháp đơn giản, khả năng đọc mã và các lệnh giống tiếng Anh giúp mã hóa dễ dàng và hiệu quả hơn nhiều so với các ngôn ngữ lập trình khác. Ví dụ: sử dụng or and so với. || && để xây dựng các biểu thức tương tự theo quan điểm ngữ nghĩa

Hơn nữa, bố cục và thành phần của mã là rất quan trọng và có rất nhiều tài nguyên tồn tại về chủ đề này. Đây là cái phổ biến nhất và yêu thích của tôi

PEP 8 — Hướng dẫn phong cách cho mã Python

Ngôi nhà chính thức của Ngôn ngữ lập trình Python

www. con trăn. tổ chức

Sau khi xem qua PEP8, hãy xem các bài viết này cho thấy một số điểm nổi bật và ứng dụng

  • Cách viết mã Python đẹp với PEP 8
  • Python sành điệu với PEP8
  • Cạm bẫy của PEP-8

Không bao giờ làm rối mã của bạn. Hãy thanh lịch và làm cho nó đẹp

Rõ ràng là tốt hơn tiềm ẩn

Trong Python, một quy ước đặt tên tốt không chỉ giúp bạn không bị điểm kém trong lớp mà còn làm cho mã của bạn rõ ràng. May mắn thay, có một số hướng dẫn bạn có thể tìm thấy trong PEP8 và tôi muốn nhấn mạnh một số điểm bên dưới

  • Nói chung, tránh sử dụng tên
    1. Quá chung chung, như my_list.
    2. Quá dài dòng, như list_of_machine_learning_data_set.
    3. Quá mơ hồ, như "l", "I", "o", "O. "
  • Tên gói/mô-đun phải là chữ thường.
    - Ưu tiên tên một từ.
    - Khi cần nhiều từ, hãy thêm dấu gạch dưới để phân tách chúng.
  • Tên lớp phải tuân theo quy ước UpperCaseCamelCase
  • Biến\Phương thức\Hàm phải tuân theo quy ước chữ thường [thêm dấu gạch dưới vào các từ riêng biệt nếu cần]
  • Tên hằng phải được viết hoa đầy đủ [thêm dấu gạch dưới vào các từ riêng biệt nếu cần]

Mọi thứ phải sáng suốt và dễ hiểu

Đơn giản là tốt hơn phức tạp

“Đơn giản có thể khó hơn phức tạp. Bạn phải làm việc chăm chỉ để làm cho suy nghĩ của bạn rõ ràng để làm cho nó đơn giản. Nhưng cuối cùng nó cũng đáng vì một khi bạn đến đó, bạn có thể dời núi. ” – Steve Jobs

Rất nhiều lần khi xử lý các trình vòng lặp, chúng ta cũng cần phải đếm số lần lặp. Python giảm bớt nhiệm vụ bằng cách cung cấp một chức năng tích hợp có tên là enumerate[]. Đây là cách chưa trưởng thành theo sau là cách được đề xuất

Một ví dụ khác là sử dụng hàm zip[] tích hợp, tạo ra một trình vòng lặp có thể ghép nối các phần tử từ hai hoặc nhiều vòng lặp. Bạn có thể sử dụng nó để giải quyết các vấn đề lập trình phổ biến một cách nhanh chóng và hiệu quả, chẳng hạn như tạo từ điển

Khả năng đơn giản hóa là loại bỏ những gì không cần thiết để những gì cần thiết có thể nói

Phức tạp tốt hơn phức tạp

Sự khác biệt giữa phức tạp và phức tạp là phức tạp được sử dụng để chỉ cấp độ hệ thống của các thành phần, trong khi phức tạp đề cập đến mức độ khó cao

Đôi khi, mặc dù chúng tôi cố gắng giữ cho các nhiệm vụ đơn giản và ngớ ngẩn, nhưng kết quả vẫn có thể rất tệ. Trong trường hợp này, việc tối ưu hóa trong lập trình trở nên cần thiết và tùy chọn học yêu thích của tôi là hoạt động trên các trang web thử thách viết mã. Bạn có thể xem các giải pháp của người khác và thậm chí được truyền cảm hứng bởi các thuật toán tốt hơn

HackerRank cung cấp nhiều cấp độ phù hợp với các lập trình viên mới, đây là cấp độ nổi bật để bắt đầu. Sau đó, hãy thử các trang web chuyên nghiệp hơn, chẳng hạn như

mã hóa. Nền tảng đánh giá mã hóa số 1

Cải thiện kỹ năng viết mã của bạn với thư viện hơn 300 thử thách của chúng tôi và chuẩn bị cho các cuộc phỏng vấn viết mã với nội dung từ…

www. byte mã hóa. com

Topcoder

Topcoder là một thị trường cung cấp dịch vụ cộng đồng kết nối các doanh nghiệp với chuyên môn khó tìm. Cộng đồng Topcoder…

www. topcoder. com

Căn hộ tốt hơn lồng nhau

Các mô-đun lồng nhau không phổ biến trong Python—ít nhất là tôi chưa từng thấy thứ gì giống như import this0 trước đây—và không dễ đọc. Mặc dù việc xây dựng một mô hình con trong một mô hình con khác có thể làm giảm dòng mã, nhưng chúng tôi không muốn người dùng gặp rắc rối với cú pháp không trực quan

Giữ nó nông

Thưa thớt tốt hơn dày đặc

Đừng gây căng thẳng cho người đọc bằng cách dán quá nhiều mã vào một dòng. Độ dài dòng tối đa được đề xuất là 79 ký tự. Giới hạn độ rộng của cửa sổ soạn thảo hoạt động tốt khi sử dụng các công cụ kiểm tra mã

Tải xuống hình ảnh nhanh hơn từ Bapt bằng Python

Số lượng khả năng đọc

Mã được đọc thường xuyên hơn nó được viết. Hãy suy nghĩ về thụt đầu dòng và việc đọc mã dễ dàng hơn nhiều như thế nào và so sánh các mã bên dưới

Trong trường hợp này, các mã chia sẻ cùng một kết quả, nhưng mã cuối cùng cung cấp khả năng đọc dễ dàng hơn bằng cách sử dụng trình giữ chỗ gạch dưới và chuỗi f. Sau Python 3. 6 đã được công bố, f-string bắt đầu giúp định dạng dễ dàng hơn và mạnh mẽ hơn khi xử lý các câu dài hơn với nhiều biến hơn bên trong

Phong cách của một nhà văn không nên tạo ra những trở ngại giữa ý tưởng của anh ta và tâm trí của độc giả

Các trường hợp đặc biệt không đủ đặc biệt để phá vỡ các quy tắc

Tính nhất quán của việc hỗ trợ các trường hợp chung là chìa khóa, vì vậy hãy cố gắng sắp xếp lại một dự án cồng kềnh thành một dạng đơn giản. Ví dụ: cấu trúc mã theo lớp hoặc sắp xếp mã thành các tệp khác nhau theo chức năng của nó, mặc dù Python không bắt buộc bạn phải làm như vậy. Vì Python là ngôn ngữ lập trình đa mô hình, nên một cách tiếp cận mạnh mẽ để giải quyết vấn đề là tạo ra các đối tượng, được gọi là lập trình hướng đối tượng

Lập trình hướng đối tượng là một mô hình lập trình tổ chức cấu trúc chương trình sao cho các thuộc tính và hành vi có thể được xem như các đối tượng riêng lẻ. Lợi ích của nó là trực quan và dễ thao tác, và nhiều hướng dẫn đã giải thích các khái niệm một cách xuất sắc. Đây là một yêu thích của tôi

Mặc dù tính thực tế đánh bại sự tinh khiết

Câu cách ngôn này mâu thuẫn với câu cách ngôn trước và nhắc nhở chúng ta về sự cân bằng giữa chúng

Ảnh của Scott Webb trên Bapt

Sai lầm không bao giờ nên lặng lẽ trôi qua

Việc chuyển lỗi cuối cùng sẽ để lại các lỗi tiềm ẩn thậm chí còn khó tìm ra hơn. Nhờ khả năng xử lý lỗi mạnh mẽ của Python, không khó để các lập trình viên sử dụng công cụ này so với các ngôn ngữ khác

Theo tài liệu của Python. “Ngay cả khi một câu lệnh hoặc biểu thức đúng về mặt cú pháp, nó vẫn có thể gây ra lỗi khi cố gắng thực hiện nó. ”

Đặc biệt đối với một dự án lớn, chúng tôi không muốn mã của mình bị sập sau một quá trình tính toán tốn thời gian. Đây là lý do tại sao quản lý ngoại lệ rất quyến rũ

Trừ khi hoàn toàn im lặng

Trong một số trường hợp, lỗi nhỏ sẽ không làm phiền bạn. Tuy nhiên, có thể bạn muốn bắt lỗi cụ thể. Để biết thêm chi tiết về các thông báo lỗi cụ thể, tôi khuyên bạn nên đọc tài liệu chính thức về Ngoại lệ tích hợp sẵn và tìm ra mục tiêu của bạn

Ngoại lệ tích hợp — Python 3. 8. 2 tài liệu

Trong Python, tất cả các ngoại lệ phải là thể hiện của một lớp bắt nguồn từ. Trong một tuyên bố với một mệnh đề đề cập đến…

tài liệu. con trăn. tổ chức

Khi đối mặt với sự mơ hồ, hãy từ chối sự cám dỗ để đoán

“Điều quan trọng là không ngừng học hỏi, thích thử thách và chấp nhận sự mơ hồ. Cuối cùng không có câu trả lời nhất định. ” - Matina Horner

Câu nói này tao nhã và trữ tình nhưng không phải là một phép ẩn dụ tốt trong lập trình. Sự mơ hồ có thể đề cập đến cú pháp không rõ ràng, cấu trúc chương trình phức tạp hoặc lỗi gây ra thông báo lỗi. Ví dụ, một lỗi đơn giản khi sử dụng mô-đun import this1 lần đầu tiên

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any[] or a.all[]

Nếu bạn thực thi đoạn mã trên, bạn sẽ tìm thấy một mảng gồm năm bool ở đầu ra cho biết các giá trị dưới 3. Do đó, câu lệnh import this2 không thể xác định trạng thái. Các hàm import this3 và import this4 tích hợp được hiển thị trong thông báo được sử dụng cho Và/Hoặc liên tiếp

Đầu ra cho thấy rằng import this3 chỉ trả về import this6 nếu tất cả các mục là import this6, trong khi import this4 trả về import this6 nếu bất kỳ mục nào là import this6

Nên có một - và tốt hơn là chỉ có một - Cách rõ ràng để làm điều đó

Hãy nghĩ về lý do tại sao Python được mô tả là một ngôn ngữ lập trình dễ học. Với các hàm/thư viện tích hợp tuyệt vời và khả năng mở rộng cao, Python khuyến khích các lập trình viên viết một cách duyên dáng. Mặc dù có nhiều giải pháp hơn để cung cấp tính linh hoạt, nhưng có thể mất quá nhiều thời gian để đào sâu vào cùng một vấn đề

Nhập nhập phản trọng lực và thực hiện

Mặc dù lúc đầu cách đó có thể không rõ ràng trừ khi bạn là người Hà Lan

Người tạo ra Python, Guido van Rossum, là một lập trình viên người Hà Lan, người đã khiến câu cách ngôn này trở nên không thể tranh cãi. Bạn sẽ không tuyên bố rằng bạn biết Python tốt hơn anh ấy… ít nhất là tôi sẽ không

Hình ảnh lịch sự của Guido van Rossum trên GitHub

Bây giờ tốt hơn không bao giờ

“Bạn có thể trì hoãn, nhưng thời gian thì không, và thời gian đã mất thì không bao giờ tìm lại được. ” —Benjamin Franklin

Đối với những người mắc chứng trì hoãn như tôi và đang tìm kiếm sự thay đổi, hãy xem điều này và hợp tác với con quái vật hoảng loạn

Mặt khác, một khía cạnh khác của câu cách ngôn là ngăn bạn lập kế hoạch quá mức, điều này không hiệu quả hơn việc xem Netflix

Thuộc tính chung của sự trì hoãn và lập kế hoạch quá mức là
“Không có gì được thực hiện. ”

Mặc dù Không bao giờ Thường Tốt hơn *Ngay* Bây giờ

“Bây giờ còn hơn không” không có nghĩa là lập kế hoạch là vô ích. Viết ra ý tưởng và đặt mục tiêu chinh phục sẽ tốt hơn là làm ngay. Ví dụ, tôi thường dành một giờ vào Chủ nhật hàng tuần để vạch ra lịch trình hàng tuần của mình và cập nhật kế hoạch cho ngày mai ngay trước khi đi ngủ để kiểm tra xem có việc gì phải hoãn lại không.

Ảnh của Djim Loic trên Bapt

Nếu việc triển khai khó giải thích, thì đó là một ý tưởng tồi

Nhớ lại ý tưởng “Phức tạp tốt hơn phức tạp. ” Thông thường, mã phức tạp có nghĩa là thiết kế yếu—đặc biệt là trong các ngôn ngữ lập trình cấp cao như Python. Tuy nhiên, trong một số trường hợp, sự phức tạp của kiến ​​thức miền có thể khiến việc triển khai trở nên khó giải thích và làm thế nào để tối ưu hóa tính rõ ràng của nó mới là vấn đề. Đây là hướng dẫn để cấu trúc các dự án thúc đẩy thành tích của bạn

Cấu trúc dự án của bạn — Hướng dẫn về Python của người quá giang

“Cấu trúc” có nghĩa là các quyết định bạn đưa ra liên quan đến cách dự án của bạn đáp ứng tốt nhất mục tiêu của nó. Chúng ta cần phải xem xét…

tài liệu. hướng dẫn python. tổ chức

Nếu việc triển khai dễ giải thích, đó có thể là một ý tưởng hay

Chuyên môn lập trình là làm cho thiết kế [hoặc thậm chí là cuộc sống của mọi người] dễ dàng hơn trong khi kiến ​​thức nền tảng có thể sâu sắc và tôi nghĩ đây là phần khó nhất của lập trình

Ảnh của Thought Catalog trên Bapt

Tận dụng sự đơn giản và dễ đọc trong Python để thực hiện những ý tưởng điên rồ

Không gian tên là một ý tưởng tuyệt vời - Hãy làm nhiều hơn nữa

Cuối cùng nhưng không kém phần quan trọng, một không gian tên là một tập hợp các ký hiệu được sử dụng để tổ chức các loại đối tượng khác nhau sao cho các đối tượng này có thể được gọi bằng các tên duy nhất. Trong Python, một không gian tên là một hệ thống bao gồm

Một số mã Python thú vị là gì?

Mục lục .
Trình tạo Mad Libs
đoán số
Oẳn tù tì
Máy tạo xúc xắc cuộn
Trò chơi treo cổ
Trình kiểm tra độ mạnh mật khẩu
Số thành Từ
TIC Tac Toe

Mã Python phức tạp nhất là gì?

Openstack [kiến trúc đám mây được NASA và CERN áp dụng] hợp lý là mã Python phức tạp nhất từ ​​trước đến nay. nó đếm được 2'400'000 dòng. Chúc may mắn khi gỡ lỗi con thú đó… .
LỜI NÓI ĐẦU. .
BẮT ĐẦU TỪ ĐÂU. .
TẠI SAO PYTHON. .
BẮT TAY Bẩn

Thành ngữ trong Python là gì?

Python thành ngữ là những gì bạn viết khi điều duy nhất bạn đang gặp khó khăn là cách đúng đắn để giải quyết vấn đề của mình và bạn' .

Là gì. PY gọi?

Các tệp có. py chứa mã nguồn Python . Ngày nay ngôn ngữ Python đã trở thành ngôn ngữ rất nổi tiếng. Nó có thể được sử dụng để viết kịch bản hệ thống, phát triển web và phần mềm và toán học.

Chủ Đề