Lỗi thụt lề trong ví dụ Python

Trong thuật ngữ tài liệu, thụt đầu dòng có nghĩa là khoảng cách từ lề đến đầu ký tự trong một dòng. Trong hầu hết các ngôn ngữ lập trình phổ biến, dấu cách hoặc thụt đầu dòng chỉ được sử dụng để làm cho mã trông đẹp hơn và dễ đọc hơn. Trong Python, nó thực sự là một phần của ngôn ngữ lập trình này. Bởi vì ngôn ngữ Python là một ngôn ngữ rất nhạy cảm với thụt đầu dòng, nó đã gây ra sự nhầm lẫn cho nhiều người mới bắt đầu. Thêm một khoảng trống hoặc bỏ bớt một khoảng trống ở nơi cần thiết chắc chắn sẽ tạo ra một thông báo lỗi. Một số nguyên nhân phổ biến của lỗi này bao gồm

  1. Quên thụt lề các câu lệnh trong câu lệnh ghép
  2. Quên thụt lề các câu lệnh của hàm do người dùng xác định

Thông báo lỗi IndentationError. mong đợi một khối thụt lề dường như chỉ ra rằng bạn có lỗi thụt lề. Nó có thể được gây ra bởi sự kết hợp của các tab và dấu cách. Có hai lý do chính khiến bạn có thể gặp lỗi như vậy

ví dụ 1

đầu ra


Ví dụ trên không thụt lề sau câu lệnh if và đầu ra cho biết bạn cần có một khối thụt lề trên dòng 2

ví dụ 2


Đầu ra nói rằng bạn cần có một khối thụt lề trên dòng 4, sau dòng khác. bản tường trình

khối trăn

Ở đây bạn có thể thấy, những gì theo sau dấu hai chấm [. ] là một ngắt dòng và một khối thụt lề. Python sử dụng khoảng trắng để phân biệt các khối mã. Bạn có thể sử dụng dấu cách hoặc tab để tạo khối Python. Khi một số câu lệnh sử dụng cùng một dấu thụt đầu dòng, chúng được coi là một khối. Trên thực tế, Python khẳng định rằng các câu lệnh riêng biệt sử dụng cùng một vết lõm trong một khối. Nó sẽ phàn nàn nếu bạn quên thụt lề khi một khối được mong đợi, cũng như nếu bạn sử dụng các cách thụt lề khác nhau

Thụt lề trong Python

Dấu đầu dòng có thể là bất kỳ khoảng trắng nhất quán nào. Nên sử dụng 4 dấu cách để thụt đầu dòng trong Python, lập bảng hoặc một số khoảng trắng khác có thể hoạt động, nhưng đôi khi nó cũng được biết là gây rắc rối. 4 dấu cách là một sự thỏa hiệp tốt giữa thụt đầu dòng nhỏ [cho phép độ sâu lồng lớn hơn] và thụt đầu dòng lớn [dễ đọc hơn]. Chỉ sử dụng khoảng trắng nói chung là lựa chọn tốt hơn. Hầu hết các trình chỉnh sửa đều có tùy chọn tự động chuyển đổi tab thành khoảng trắng. Nếu trình chỉnh sửa của bạn có tùy chọn này, hãy bật nó lên

thụt lề theo thẻ

Các tab là một ý tưởng tồi vì chúng có thể tạo ra số lượng khác nhau nếu giãn cách trong các trình chỉnh sửa khác nhau. Chúng cũng có khả năng gây nhầm lẫn nếu bạn trộn thụt đầu dòng theo tab với thụt đầu dòng cách đều nhau. Nếu bạn đang sử dụng một IDE như Eclipse, bạn có thể định cấu hình số lượng khoảng trắng mà IDE sẽ chèn khi bạn nhấn tab. Điều quan trọng cần lưu ý là hầu hết các IDE hiện đại đều giúp bạn thụt đầu dòng bằng cách sử dụng tab hoặc dấu cách, nhưng vì các ký tự khoảng trắng không hiển thị trong một số trình soạn thảo, bạn nên cẩn thận để thụt lề đúng cách các khối

Thụt lề chuỗi tài liệu

Lỗi này IndentationError. mong đợi một khối thụt lề cũng có thể xuất hiện nếu lập trình viên quên thụt lề một chuỗi tài liệu. Các tài liệu phải phù hợp với phần còn lại của mã trong một chức năng. Các công cụ xử lý chuỗi tài liệu sẽ loại bỏ một lượng thụt đầu dòng đồng nhất từ ​​dòng thứ hai và các dòng tiếp theo của chuỗi tài liệu, bằng với mức thụt đầu dòng tối thiểu của tất cả các dòng không trống sau dòng đầu tiên

Thụt đầu dòng là một khái niệm rất quan trọng của Python vì nếu không thụt lề mã Python đúng cách, cuối cùng bạn sẽ thấy IndentationError và mã sẽ không được biên dịch

Thụt lề Python

Thụt đầu dòng Python đề cập đến việc thêm khoảng trắng trước một câu lệnh cho một khối mã cụ thể. Nói cách khác, tất cả các câu lệnh có cùng khoảng trắng ở bên phải, thuộc về cùng một khối mã

Ví dụ về thụt lề Python

  • Câu lệnh [dòng 1], câu lệnh if [dòng 2] và câu lệnh [dòng cuối cùng] thuộc cùng một khối có nghĩa là sau câu lệnh 1, câu lệnh if sẽ được thực hiện. và giả sử điều kiện if trở thành Sai thì Python sẽ chuyển đến câu lệnh cuối cùng để thực thi
  • If-else lồng nhau thuộc khối 2 nghĩa là nếu if lồng nhau trở thành False thì Python sẽ thực thi các câu lệnh bên trong điều kiện else
  • Các câu lệnh bên trong if-else lồng nhau thuộc khối 3 và chỉ một câu lệnh sẽ được thực thi tùy thuộc vào điều kiện if-else

Thụt đầu dòng trong Python là một cách để nói với trình thông dịch Python rằng nhóm các câu lệnh thuộc về một khối mã cụ thể. Một khối là sự kết hợp của tất cả các câu lệnh này. Khối có thể được coi là nhóm các câu lệnh cho một mục đích cụ thể. Hầu hết các ngôn ngữ lập trình như C, C++ và Java đều sử dụng dấu ngoặc nhọn { } để xác định một khối mã. Python sử dụng thụt đầu dòng để làm nổi bật các khối mã. Khoảng trắng được sử dụng để thụt đầu dòng trong Python. Tất cả các câu lệnh có cùng khoảng cách về bên phải đều thuộc về cùng một khối mã. Nếu một khối phải được lồng sâu hơn, thì nó chỉ cần được thụt vào xa hơn về bên phải. Bạn có thể hiểu rõ hơn bằng cách xem các dòng mã sau.  

ví dụ 1

Các dòng print['Đăng nhập vào geeksforgeeks…'] và print['retype the URL. ’] là hai khối mã riêng biệt. Hai khối mã trong câu lệnh if ví dụ của chúng tôi đều được thụt vào bốn khoảng trắng. Bản in cuối cùng ['Tất cả đã đặt. '] không thụt vào, vì vậy nó không thuộc khối khác.  

Python3




1
2
3
4
5
8

1
2
3
4
5
9

 

1
2
3
4
5
0
1
2
3
4
5
1
1
2
3
4
5
2

 

1
2
3
4
5
3
1
2
3
4
5
0
1
2
3
4
5
1
1
2
3
4
5
1
1
2
3
4
5
2
1
2
3
4
5
2

1
2
3
4
5
3
1
2
3
4
5
4
1
2
3
4
5
5
1
2
3
4
5
6
1
2
3
4
5
7

1
2
3
4
5
8
1
2
3
4
5
2

1
2
3
4
5
3
1
2
3
4
5
4
1
2
3
4
5
5
1
2
3
4
5
83
1
2
3
4
5
7

1
2
3
4
5
4
1
2
3
4
5
5
1
2
3
4
5
87
1
2
3
4
5
7

đầu ra

1
2
3
4
5
5

ví dụ 2

Để chỉ ra một khối mã trong Python, bạn phải thụt lề từng dòng của khối bằng cùng một khoảng trắng. Hai dòng mã trong vòng lặp while đều được thụt vào bốn khoảng trắng. Nó được yêu cầu để chỉ ra khối mã mà một câu lệnh thuộc về. Ví dụ: j=1 và while[j

Chủ Đề