这是我的代码:
if (choice == 1) :
i = 0
username = raw_input("Enter your User Name : ")
with open("users.txt", "r") as ins :
for line in ins :
i += 1
if (username == line.rstrip()) :
j = 0
password = raw_input("Enter your Password : ")
with open("passwords.txt", "r" as sth) :
for line1 in sth :
j += 1
if (i == j) :
if (password == line1.rstrip()) :
usrName = username
break
break
break
我正在尝试创建一个接受用户名和密码的程序,并将它们与.txt文件中的等效项进行比较。但是,python给了我以下错误:
test@test-PC:~/Desktop/test$ python main.py
File "main.py", line 31
for line in ins :
^
IndentationError: expected an indented block
我无法弄清楚我没有正确缩进的位置。任何人都可以告诉我是什么原因导致这个问题并建议解决方案?
答案 0 :(得分:2)
您似乎使用了空格和制表符的混合,每个空格和制表符都被计为单个缩进,并且可能被视为错误的缩进,即使它在视觉上看起来很好,所以只需使用而是空格(4个空格,即PEP-008 recommendation)
您的上一个break
缩进不合适,它根本不对应任何for
循环。如果上面的代码片段是所有代码,我会删除它。
更准确地说,就是这个:
for line in ins :
| i += 1
| if (username == line.rstrip()) :
| j = 0
| password = raw_input("Enter your Password : ")
| with open("passwords.txt", "r" as sth) :
| for line1 in sth :
| j += 1
| if (i == j) :
| if (password == line1.rstrip()) :
| usrName = username
| break
| break
break # What does it break out of here?
答案 1 :(得分:1)
缩进错误通常在空格和标签混合在一起时发生。 另外,正如@mu所提到的那样,休息应该到位。