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 Show Thụt lề PythonThụ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
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ụ 1Cá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. Python31 2 3 4 50 1 2 3 4 51
1 2 3 4 52____23 1 2 3 4 54
1 2 3 4 55 1 2 3 4 52 1 2 3 4 53 1 2 3 4 53 1 2 3 4 54 1 2 3 4 52 1 2 3 4 53 1 2 3 4 54 1 2 3 4 55 1 2 3 4 56 1 2 3 4 57 1 2 3 4 58 1 2 3 4 52 1 2 3 4 53 1 2 3 4 54 1 2 3 4 55 1 2 3 4 503 1 2 3 4 57 1 2 3 4 54 1 2 3 4 55 1 2 3 4 507 1 2 3 4 57 đầu ra 1 2 3 4 55 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<=5). không được thụt lề và do đó, nó không nằm trong khối Python. Vì vậy, cấu trúc mã Python bằng cách thụt đầu dòng. Python31 2 3 4 509 1 2 3 4 53 1 2 3 4 511 1 2 3 4 512 1 2 3 4 513 1 2 3 4 514 1 2 3 4 53 1 2 3 4 516 1 2 3 4 517 1 2 3 4 518 1 2 3 4 54 1 2 3 4 520 1 2 3 4 518 1 2 3 4 509 1 2 3 4 53 1 2 3 4 509 1 2 3 4 525 1 2 3 4 511 đầu ra 1 2 3 4 5 Ghi chú. Python sử dụng 4 dấu cách làm thụt đầu dòng theo mặc định. Tuy nhiên, số lượng dấu cách là tùy thuộc vào bạn, nhưng phải sử dụng tối thiểu 1 dấu cách Trong hướng dẫn này, bạn sẽ học cách khắc phục một lỗi phổ biến mà bạn sẽ gặp phải trong Python, lỗi thụt lề. Thụt mã của bạn là một chức năng quan trọng để viết các chương trình hữu ích. Tuy nhiên, mã thụt lề không đúng cách sẽ gây ra lỗi sau. “Lỗi thụt lề Python. unindent không khớp với bất kỳ cấp độ thụt lề bên ngoài nào" Đến cuối hướng dẫn này, bạn sẽ học được
Bắt đầu nào Mục lục
Lỗi thụt lề Python là gì?Lỗi thụt đầu dòng trong Python do một số yếu tố khác nhau gây ra
Cả hai kịch bản này sẽ khiến 1 2 3 4 59 được nâng lên. Thật không may, không rõ trường hợp nào trong số những trường hợp này đã gây ra lỗi. Trước khi đi sâu vào chi tiết hơn, hãy cùng khám phá cách thức hoạt động của thụt lề trong Python Cách thụt đầu dòng hoạt động trong PythonPython cho phép bạn thụt lề mã của mình bằng dấu cách hoặc tab. Không quan trọng bạn chọn cái nào – tuy nhiên nó đòi hỏi bạn phải nhất quán với lựa chọn đó. Vì Python là ngôn ngữ được nhập tĩnh, Python sẽ không thể hoạt động bình thường nếu cả khoảng trắng và tab đều được sử dụng để thụt lề Thực tế khi copy code từ trên mạng thì đây là lỗi phổ biến mà bạn sẽ gặp phải. Trong suốt phần còn lại của hướng dẫn này, bạn sẽ học cách xác định và giải quyết lỗi này Bạn có nên thụt lề bằng dấu cách hoặc tab trong Python không?Mặc dù việc bạn sử dụng tab hay dấu cách để thụt lề mã của mình không quan trọng, nhưng Python cung cấp một số hướng dẫn về phương pháp nào được ưu tiên hơn. Tiêu chuẩn PEP-8 về thụt lề mã của bạn chỉ ra rằng sử dụng bốn khoảng trắng cho mỗi mức thụt lề là phương pháp ưu tiên để thụt lề mã của bạn Tiêu chuẩn PEP còn tiến xa hơn nữa. Nó nói rằng khoảng trắng được ưu tiên và các tab chỉ nên được sử dụng để duy trì sự nhất quán với mã hiện có Nguyên nhân gây ra lỗi thụt lề PythonHãy khám phá thêm một chút về nguyên nhân của Python 1 2 3 4 59. Trước đó, bạn đã biết rằng lỗi này là do trộn lẫn dấu cách và tab trong mã thụt lề cũng như mã thụt lề không đúng cách Hãy khám phá cả hai điều này một cách chi tiết hơn để xem lỗi có thể được giải quyết như thế nào Trộn không gian và tab trong PythonMột trong những nguyên nhân phổ biến nhất của Python 1 2 3 4 59 là trộn lẫn các tab và khoảng trắng trong mã của bạn khi thụt lề. Vấn đề với điều này là nó thường không trực quan để tìm. Sự cố này chủ yếu xảy ra khi bạn sao chép và dán mã từ một nguồn khác vào chương trình Python Rất may, hầu hết các IDE hiện đại sẽ tính đến điều này và tự động chuyển đổi các tab thành khoảng trắng. Ví dụ: Visual Studio Code mặc định sẽ chuyển đổi các tab thành số khoảng trắng tương ứng. Do đó, lỗi này phổ biến hơn khi bạn đang chạy các chương trình Python trong các ứng dụng khác Trong nhiều trường hợp, bạn sẽ có thể chọn các tab bằng cách sử dụng tìm và thay thế bằng cách tìm kiếm chuỗi 1 2 3 4 52 Thụt lề sai trong PythonNguyên nhân khác của lỗi thụt đầu dòng Python là do mã Python của bạn bị thụt lề không chính xác. Điều này có thể xảy ra khi bạn đang viết bất kỳ đoạn mã nào thuộc loại bị chặn, chẳng hạn như câu lệnh 1 2 3 4 53 hoặc vòng lặp 1 2 3 4 54 Hãy cùng xem một ví dụ sẽ ném Python 1 2 3 4 55 1 2 3 4 58 Bạn có thể khắc phục điều này một cách dễ dàng bằng cách thụt vào đoạn mã thứ hai, như được hiển thị bên dưới 1 2 3 4 59 Lưu tâm đến nơi mã của bạn cần được thụt vào là một bước quan trọng để viết mã không có lỗi. Nói chung, sau dấu hai chấm, mã của bạn sẽ cần được thụt vào Sự kết luậnTrong hướng dẫn này, bạn đã học cách giải quyết lỗi thụt đầu dòng trong Python. Bạn đã tìm hiểu nguyên nhân gây ra lỗi thụt đầu dòng trong Python và cách giải quyết hai nguyên nhân chính của nó. Trước tiên, chúng tôi đã xem xét cách lỗi được đưa ra khi mã của bạn kết hợp cả dấu cách và tab. Sau đó, chúng tôi đã xem xét các chỗ thụt đầu dòng bị thiếu hoặc sai trong mã của bạn |