Python sử dụng thụt đầu dòng để biểu thị cấu trúc như thế nào?

Để tách các khối mã [như vòng lặp for, khối if và định nghĩa hàm], trình biên dịch/thông dịch viên cần một cái gì đó để báo cho nó biết khi nào một khối kết thúc. Dấu ngoặc nhọn và câu lệnh kết thúc là những cách hoàn toàn hợp lệ để cung cấp thông tin này cho trình biên dịch. Để con người có thể đọc mã thụt đầu dòng là cách tốt hơn nhiều để cung cấp các tín hiệu trực quan về cấu trúc khối. Vì thụt đầu dòng cũng chứa tất cả thông tin cho trình biên dịch nên việc sử dụng cả hai sẽ là dư thừa. Vì thụt đầu dòng tốt hơn cho con người, nên cũng nên sử dụng nó cho trình biên dịch. Nó có lợi thế là các chương trình Python có xu hướng được thụt lề đồng nhất và nhất quán, loại bỏ một rào cản để hiểu mã của người khác. Python không bắt buộc bạn thụt lề như thế nào [hai dấu cách hoặc bốn dấu cách, tab hoặc dấu cách - nhưng không bắt buộc cả hai], chỉ là bạn thực hiện nó một cách nhất quán. Những người đã quen với cách làm việc của Python có xu hướng bắt đầu coi các dấu ngoặc nhọn là tiếng ồn dòng không cần thiết làm lộn xộn mã. Mặt khác, 'điều khoảng trắng' có thể là lý do lớn nhất duy nhất khiến một số nhà phát triển từ chối dùng thử Python

[Truyền thuyết dân gian nói rằng ABCers trong những năm 80 đã xác định bằng thực nghiệm rằng khoảng trắng đáng kể có những lợi thế có thể đo lường được. 'Có ai có tài liệu về điều này không?]

Quan sát bổ sung

  • Trong số các lập trình viên sử dụng các ngôn ngữ bỏ qua khoảng trắng, các quy ước phổ biến là thụt lề các khối mã để con người dễ đọc. Các chi tiết chính xác của các quy ước như vậy khác nhau [và là chủ đề tranh luận đáng kể về phong cách giữa một số lập trình viên]. Nhưng các tính năng chung là phổ biến, gần như phổ biến. mã được hiển thị chủ yếu ở định dạng "phác thảo". với mức độ lồng ghép từ vựng được biểu thị bằng mức độ thụt đầu dòng tăng dần. Python chỉ sử dụng quy ước [gần như phổ biến] này như một phần cú pháp của nó, cho phép nó phân phối với các mã thông báo kết thúc khối khác. Một số ý kiến ​​​​cho rằng cú pháp này giúp tránh các tình huống trong đó mã không khớp với ý định rõ ràng [khi phần thụt đầu dòng không nhất quán một cách tinh vi với cấu trúc từ vựng]. Đối với các điểm tốt hơn về cách mã nên được thụt vào trong các ngôn ngữ không biết khoảng trắng, đó là một điểm thảo luận bất tận

Tại sao tách các phần bằng cách thụt đầu dòng thay vì bằng dấu ngoặc hoặc 'kết thúc' [chỉnh sửa lần cuối 2009-04-05 23. 45. 26 bởi 99-51-74-201]

Thụt lề trong Python được sử dụng để tạo một nhóm các câu lệnh. Nhiều ngôn ngữ phổ biến như C và Java sử dụng dấu ngoặc nhọn [{ }] để xác định một khối mã và Python sử dụng dấu thụt đầu dòng

Thụt đầu dòng trong Python là gì?

Thụt lề trong Python đề cập đến khoảng trắng ở đầu dòng. Chúng ta có thể tạo thụt đầu dòng bằng dấu cách hoặc tab. Khi viết mã Python, chúng ta phải định nghĩa một nhóm câu lệnh cho hàm và vòng lặp. Điều này được thực hiện bằng cách thụt lề đúng cách các câu lệnh cho khối đó

Khoảng trắng hàng đầu [dấu cách và tab] ở đầu dòng được sử dụng để xác định mức độ thụt lề của dòng. Chúng ta phải tăng mức thụt lề để nhóm các câu lệnh cho khối mã đó. Tương tự, giảm thụt đầu dòng để đóng nhóm

Bốn khoảng trắng hoặc một ký tự tab đơn được sử dụng để tạo hoặc tăng mức độ thụt lề của mã. Hãy xem một ví dụ để hiểu cách thụt lề mã và nhóm các câu lệnh

def foo[]:
    print["Hi"]

    if True:
        print["true"]
    else:
        print["false"]

print["Done"]

Thụt lề Python

Quy tắc thụt lề Python

  • Chúng tôi không thể tách thụt đầu dòng thành nhiều dòng bằng dấu gạch chéo ngược
  • Dòng đầu tiên của mã Python không thể có thụt đầu dòng, nó sẽ tạo ra IndentationError
  • Bạn nên tránh trộn lẫn các tab và khoảng trắng để tạo thụt đầu dòng. Đó là bởi vì các trình soạn thảo văn bản trong các hệ thống Non-Unix hoạt động khác đi và việc trộn chúng có thể gây ra lỗi thụt đầu dòng
  • Nên sử dụng khoảng trắng để thụt lề hơn là ký tự tab
  • Cách tốt nhất là sử dụng 4 khoảng trắng cho lần thụt đầu tiên và sau đó tiếp tục thêm 4 khoảng trắng bổ sung để tăng mức thụt đầu dòng

Lợi ích của thụt đầu dòng trong Python

  • Trong hầu hết các ngôn ngữ lập trình, thụt đầu dòng được sử dụng để cấu trúc đúng mã. Trong Python dùng để gom nhóm, giúp code tự động đẹp
  • Quy tắc thụt lề Python rất đơn giản. Hầu hết các IDE Python tự động thụt lề mã cho bạn, vì vậy rất dễ dàng để viết mã được thụt lề đúng cách

Nhược điểm của việc thụt đầu dòng trong Python

  • Vì các khoảng trắng được sử dụng để thụt đầu dòng, nếu mã lớn và thụt đầu dòng bị hỏng thì việc sửa nó thực sự rất tẻ nhạt. Nó xảy ra chủ yếu bằng cách sao chép mã từ các nguồn trực tuyến, tài liệu Word hoặc tệp PDF
  • Hầu hết các ngôn ngữ lập trình phổ biến đều sử dụng dấu ngoặc nhọn để thụt đầu dòng, vì vậy bất kỳ ai đến từ một thế giới lập trình khác ban đầu đều thấy khó thích nghi với ý tưởng sử dụng khoảng trắng để thụt đầu dòng

Thụt lề trong Python cho vòng lặp

Chúng ta phải tăng thụt đầu dòng trong vòng lặp for để mã sẽ được nhóm lại với nhau. Hãy xem một ví dụ về thụt đầu dòng trong python for loop

def print_numbers[x, y]:
    for i in range[x, y]:
        print[i]

Ví dụ về lỗi thụt lề

Hãy xem xét một số ví dụ về IndentationError trong mã Python

>>>     x = 10
  File "", line 1
    x = 10
    ^
IndentationError: unexpected indent
>>> 

Chúng tôi không thể có một vết lõm trong dòng đầu tiên của mã. Đó là lý do tại sao IndentationError bị ném

if True:
    print["true"]
     print["Hi"]
else:
    print["false"]

Lỗi thụt lề Python

Các dòng mã bên trong khối if có mức độ thụt đầu dòng khác nhau, do đó IndentationError

if True:
    print["true"]
else:
    print["false"]

 print["Done"]

Lỗi cấp độ thụt lề Python Unindent

Ở đây, câu lệnh in cuối cùng có một số thụt đầu dòng nhưng không có câu lệnh nào để đính kèm nó, do đó lỗi thụt lề được đưa ra

if True:
print["true"]
else:
print["false"]

đầu ra

File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/indent.py", line 2
    print["true"]
        ^
IndentationError: expected an indented block

Tóm lược

Thụt lề Python làm cho mã của chúng tôi đẹp. Nó cũng phục vụ mục đích nhóm các câu lệnh thành một khối mã. Điều này dẫn đến thói quen viết mã đẹp mọi lúc vì đó không phải là tính năng Tốt để có mà là yêu cầu Bắt buộc phải có của mã

TẠI SAO thụt lề lại quan trọng trong Python?

Việc thụt đầu dòng là bắt buộc trong python để xác định các khối câu lệnh . Số lượng khoảng trắng phải thống nhất trong một khối mã. Nên sử dụng khoảng trắng thay vì tab để thụt lề trong python.

Các dòng và thụt đầu dòng được thể hiện như thế nào trong Python?

Dòng Python và thụt lề .
Không có dấu ngoặc nhọn để chỉ ra các khối mã cho lớp và chức năng hoặc điều khiển luồng
Các khối mã được thể hiện bằng cách thụt đầu dòng
Số lượng khoảng trắng trong thụt đầu dòng là khác nhau [hoặc thay đổi], nhưng tất cả các câu lệnh trong khối phải được thụt vào cùng một số lượng khoảng trắng

Chủ Đề