Computer >> Máy Tính >  >> Lập trình >> Python

Python TabError:sử dụng không nhất quán các tab và khoảng trắng trong Giải pháp thụt lề

Bạn có thể thụt lề mã bằng cách sử dụng dấu cách hoặc tab trong chương trình Python. Nếu bạn cố gắng sử dụng kết hợp cả hai trong cùng một khối mã, bạn sẽ gặp phải lỗi "TabError:sử dụng không nhất quán các tab và dấu cách khi thụt lề".

Trong hướng dẫn này, chúng tôi thảo luận về lỗi này có nghĩa là gì và tại sao nó lại xuất hiện. Chúng tôi sẽ xem xét một ví dụ về lỗi này để bạn có thể tìm ra cách giải quyết nó trong mã của mình.

TabError:sử dụng không nhất quán các tab và khoảng trắng khi thụt lề

Mặc dù hướng dẫn kiểu Python nói rằng dấu cách là phương pháp thụt lề ưu tiên khi viết mã bằng Python, bạn có thể sử dụng dấu cách hoặc tab.

Thụt lề rất quan trọng trong Python vì ngôn ngữ này không phụ thuộc vào cú pháp như dấu ngoặc nhọn để biểu thị vị trí một khối mã bắt đầu và kết thúc. Thụt lề cho Python biết dòng mã nào là một phần của khối mã nào.

Hãy xem xét chương trình sau:

numbers = [8, 7, 9, 8, 7]

def calculate_average_age():
average = sum(numbers) / len(numbers)
print(average)

Nếu không có thụt lề, không thể biết những dòng mã nào nên là một phần của hàm tính_trung_góc và những dòng mã nào là một phần của chương trình chính.

Bạn phải gắn bó với việc sử dụng dấu cách hoặc tab. Không trộn lẫn các tab và khoảng trắng. Làm như vậy sẽ gây nhầm lẫn cho trình thông dịch Python và gây ra lỗi “TabError:sử dụng không nhất quán các tab và dấu cách khi thụt lề”.

Một tình huống mẫu

Chúng tôi muốn xây dựng một chương trình tính toán tổng giá trị của các giao dịch mua được thực hiện tại một cửa hàng bánh rán. Để bắt đầu, hãy xác định danh sách các giao dịch mua:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

purchases = [2.50, 4.90, 5.60, 2.40]

Tiếp theo, chúng ta sẽ xác định một hàm tính tổng danh sách "mua hàng":

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

Hàm của chúng tôi chấp nhận một tham số:danh sách các giao dịch mua có tổng giá trị mà chúng tôi muốn tính toán. Hàm trả về tổng giá trị của danh sách mà chúng tôi chỉ định làm tham số.

Chúng tôi sử dụng phương thức sum () để tính tổng các số trong danh sách "mua hàng".

Nếu bạn sao chép đoạn mã này vào trình soạn thảo văn bản của mình, bạn có thể nhận thấy dòng mã “tổng trả lại” được thụt vào bằng cách sử dụng dấu cách trong khi dòng mã “tổng =sum (mua)” sử dụng các tab để thụt lề. Đây là một dấu hiệu đặc biệt quan trọng.

Tiếp theo, gọi hàm của chúng tôi và in giá trị mà nó trả về bảng điều khiển:

total_purchases = calculate_total_purchases(purchases)
print(total_purchases)

Mã của chúng tôi gọi là calculate_total_purchases() chức năng tính toán tổng giá trị của tất cả các giao dịch mua được thực hiện tại cửa hàng bánh rán. Sau đó, chúng tôi in giá trị đó vào bảng điều khiển. Hãy chạy mã của chúng tôi và xem điều gì sẽ xảy ra:

  File "test1.py", line 5
	return total
           	^
TabError: inconsistent use of tabs and spaces in indentation

Mã của chúng tôi trả về lỗi.

Giải pháp

Chúng tôi đã sử dụng dấu cách và tab để thụt lề mã của mình. Trong một chương trình Python, bạn nên sử dụng một trong hai phương pháp thụt lề này.

Để sửa mã của chúng tôi, chúng tôi sẽ thay đổi chức năng của mình để chúng tôi chỉ sử dụng dấu cách:

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

Mã của chúng tôi sử dụng 4 dấu cách để thụt lề. Hãy chạy chương trình của chúng tôi với thụt lề mới của chúng tôi:

15.4

Chương trình của chúng tôi tính toán thành công tổng giá trị của các lần mua bánh rán.

Trong trình chỉnh sửa IDLE, bạn có thể xóa thụt lề cho một khối mã bằng cách làm theo các hướng dẫn sau:

  • Chọn mã có thụt lề bạn muốn loại bỏ
  • Nhấp vào “Trình đơn” -> “Định dạng” -> “Bỏ xác định khu vực”
  • Chèn kiểu thụt lề bạn muốn sử dụng

Đây là một cách thuận tiện để sửa định dạng trong tài liệu, giả sử bạn đang sử dụng trình chỉnh sửa IDLE. Nhiều trình soạn thảo khác, như Sublime Text, có các phương pháp riêng để thay đổi thụt lề trong tệp.

Kết luận

Lỗi “TabError:sử dụng tab và dấu cách không nhất quán trong thụt lề” của Python được phát sinh khi bạn cố gắng thụt lề mã bằng cách sử dụng cả dấu cách và tab.

Bạn khắc phục lỗi này bằng cách dán vào khoảng trắng hoặc tab trong chương trình và thay thế bất kỳ tab hoặc khoảng trắng nào không sử dụng phương pháp thụt lề ưa thích của bạn. Bây giờ bạn đã có kiến ​​thức cần thiết để sửa lỗi này như một lập trình viên chuyên nghiệp!