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"]
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 dòng đầ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"]
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"]
Ở đâ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
Bản tóm tắt
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ã
Trong các ngôn ngữ lập trình khác, phần thụt đầu dòng trong mã chỉ để dễ đọc, thì phần thụt đầu dòng trong Python rất quan trọng
Python sử dụng thụt đầu dòng để chỉ ra một khối mã
Python sẽ báo lỗi cho bạn nếu bạn bỏ qua phần thụt đầu dòng
Số lượng khoảng trống tùy thuộc vào bạn với tư cách là một lập trình viên, nhưng nó phải có ít nhất một
Thí dụ
nếu 5 > 2.
print["Năm lớn hơn hai. "]
nếu 5 > 2.
print["Năm lớn hơn hai. "]
Bạn phải sử dụng cùng một số khoảng trắng trong cùng một khối mã, nếu không Python sẽ báo lỗi cho bạn