01/10/2018, 09:55
Lỗi IndentationError: unindent does not match any outer indentation level trong Python
Anh ơi sau đoạn mã dưới đây em vieets đúng như trên video python của anh laptrinh io mà sao máy lại báo lỗi sai thế
#!/usr/local/bin/python3
def tong(ds):
tong = 0
for i in ds:
tong += i
return tong
ket_qua = tong([1,2,3])
print("Ket qua la " + str(ket_qua))
máy em báo lỗi là :
File “. est1.py”, line 5
for i in ds:
^
IndentationError: unindent does not match any outer indentation level
Bài liên quan
IndentationError
- chú ý độ thụt dòng khi gõ dòng code mới :em không bik sao nó báo lỗi hoài
lùi dòng
tong = 0 lại = với for..
dạ em lùi rồi nó vẫn v ạ
như này đâu có sao
dùng sublime thì cài các add-on vào tự save code, check pep 8 các kiểu
chả nhớ cái nào nữa, ví dụ tạm https://packagecontrol.io/packages/auto-save
em đã làm giống anh mà sao máy cứ báo lỗi ở dòng for i in ds: nó cứ báo lỗi ở chỗ dấu :
bạn xóa code, gõ lại thử xem
nó vẫn v anh ơi :(((
Biến tong chỉ lùi 1 tab thôi.
Mà tên hàm là tong thì đặt tên biến là tong làm gì -_-
Sửa 1 tí: bạn thống nhất cách indent trong code Python nhé. Dùng 4 space hoặc dùng 1 tab.
Code kia của bạn vừa dùng tab vừa dùng 4-space. Mình có bôi đen từng kí tự căn dòng của bạn thì thấy.
Chuẩn PEP 8 thì dùng 4 space (hình như thế, hồi mới code Python mình bị báo lỗi suốt).
à em làm được rồi thanks anh thì ra là vậy
mà anh ơi làm sao để thụt đầu dòng đúng ạ
Nhìn vào góc phải của sublime text
Click vào đó, chọn
Indent using spaces
vàTab size: 4
Đó là cách để thống nhất cách indent.
Muốn chuyển đổi tab thành space thì chọn
Convert indentation to spaces
Còn để indent đúng thì phải nắm được mình code cái gì, code block (- khối code) như thế nào, các lệnh nằm trong hàm nào, if/for/while nào…
Phải code nhiều và phải hiểu code mình viết.
mỗi hàm có 1 kiểu thụt đầu dòng riêng hả anh ???
Bạn không hiểu về indent trong python rồi…
Indent phụ thuộc vào hàm, chứ không phải là mỗi hàm có kiểu indent riêng…
Ví dụ như:
print "love me"
,if you == 1
và cáielse
kia là cùng lùi vào 1 tab so vớidef fun()
; bên trong if và bên trong else, các hàmprint "once"
vàprint "sometimes"
cùng lùi vào 1 tab so với if và else, nhưng là lùi vào 2 tab so vớidef fun()
à em hiểu rồi vậy còn cái nữa là có vài dòng code em thấy người ta hay viết liên tục mà tự nhiên lại cách 1 dòng rồi mới viết tiếp giống như dòng cuối cùng của đoạn code trên sao fun() lại phải cách dòng ạ
Cách dòng cho vui thôi =))
Đùa đấy, nếu thấy khó nhìn quá thì cách thêm 1 dòng, chẳng sao cả.
Lưu ý chuẩn PEP 8: Trước và sau 1 def (hàm) phải có 2 dấu xuống dòng.
p/s: bạn viết câu cú chả có dấu phẩy dấu chấm gì cả -_-
ủa sao cái đoạn code trên của em cái dòng return tổng em thụt sai thì chạy code vẫn được mà kết quả ra là 1 còn em sửa lại đúng thì ms là 6 , vậy thụt đầu dòng sai cũng có ảnh hưởng tới kết quả hả anh
Python quan trọng nhất là cái indent mà -_-
Mà lần sau đừng đặt tên biến trùng tên hàm.
Nói chung là code bạn sai vì nhiều cái, chứ không phải chỉ vì indent sai.