所以我一直在制作这个控制台文字"游戏"似乎有一个我无法解决的错误。它看起来像这样:
def left_room3():
while True:
i = 0;
while i < len(weapons):
print "One of your weapons are: " + weapons[i]
i = i + 1
yee = raw_input("You have encountered a zombie! What weapon do you use?\n")
if yee == "sword":
zombie.health -= sword.damage
zombie.durability -= 1
print "The zombie has taken " + str(sword.damage) + " damage."
me.health -= zombie.damage
print "You have taken " + str(zombie.damage) + " damage."
elif yee == "gun":
zombie.health -= gun.damage
print "The zombie has taken " + str(gun.damage) + " damage."
me.health - zombie.damage
print "You have taken " + str(zombie.damage) + " damage."
gun.durability -= 1
else:
print "That is not an option. Please try again."
if zombie.health <= 0:
print "You won against the zombie!"
print "Your save code: 08927672. Enter this at the start to come back to this point."
room4()
break
elif me.health <= 0:
print "You died!"
exit(0)
所以它似乎给了我这个错误:
Error: Inconsistent indentation detected!
1) Your indentation is outright incorrect (easy to fix) OR
2) Your indentation mixes tabs and spaces.
我使用IDLE,它提供了更清晰的错误信息。
它强调了这一行代码:
i = 0;
但我不知道这是否真的导致问题的代码...... (我已经看到IDE /编译器突出显示一段代码的情况,但是它导致了这个问题的不同部分)
我还有其他几乎完全相同的代码块,但IDLE并没有突出显示它们(也许是因为它首先检查了阻塞?我不知道,但是我觉得IDLE非常错误将从下到上检查(因为代码从上到下),但它可能是可能的。)
答案 0 :(得分:1)
您强烈建议您error
混合使用spaces
和tabs
。在大多数其他编程语言中,缩进不影响code
的运行方式,只是让它更容易理解。
这在Python中是不同的,其中所有scopes
(我认为这是正确的术语)所以if-statements
,loops
等由行的缩进级别定义。
因此,您需要在整个代码中一致,了解您使用的缩进类型 - 所以1
标签,4
空格或其他并坚持下去!否则,编译器将不知道该行所在的scope
以及何时退出该部分。
很难从你的问题代码中看到你确切错误的哪一行,但这很可能是导致问题的原因所以你应该仔细看看你的实际代码。
如果您无法通过查找找到它,大多数文本编辑都可以选择'highlight / show white-space and tab'
,这将使错误的来源脱颖而出。
希望这有帮助!