我在标题中描述了 Python 语言的问题。
for slovo in slova:
if pygame.mouse.get_pressed()[0] and slovo["rect"].collidepoint(pygame.mouse.get_pos()):
for i in range (len(randRijec)):
if slovo["name"] in randRijec[i]:
if i == 0:
slovo1 = randRijec[i].upper()
prvoSlovo = 1
...
...
else:
pogresnoBrojac += 1
slova.remove(slovo)
所以,即使这个 IF 语句是 true,ELSE 语句正在执行!但是,如果满足 if 语句,则应跳过 else 语句。
如何解决这个问题?
附注我以前遇到过几次这个问题,但我无法解决...
请您参考如下方法:
您的代码中混合了制表符和空格:
运行 cat -A test.py(在 Unix 上)产生
for slovo in slova:$
if pygame.mouse.get_pressed()[0] and slovo["rect"].collidepoint(pygame.mouse.get_pos()):$
for i in range (len(randRijec)):$
if slovo["name"] in randRijec[i]:$
if i == 0:$
slovo1 = randRijec[i].upper()$
prvoSlovo = 1$
^I^I^I^I^I^I...$
^I^I^I^I^I^I...$
else:$
pogresnoBrojac += 1$
slova.remove(slovo)$
^I 表示制表符。
因此,else block 未被解释为处于它出现 的缩进级别。
您的 Python 代码不应该混用制表符和空格来缩进。您可以通过运行 python -t script.py 检查您的脚本是否混合了制表符和空格。
在 Python 中,您必须 promise 只使用空格或制表符进行缩进。 PEP8建议仅使用空格缩进。
您可以使用 reindent.py program 将制表符转换为空格.
