如何解决 Python 中的缩进错误?
How do I solve indentation errors in Python?
当我 运行 下面的代码时,我在很多行中遇到缩进错误,例如第 6 行和我放置 exit(0)
:
的行
from sys import exit
def gold_room():
print "This room is full of gold, How much do you take?"
next = raw_input("> ")
if "0" in next or "1" in next:
how_much = int(next)
else:
dead("Man learn to type a number!")
if how_much < 50:
print "Nice, you're not greedy, you win!"
exit(0)
else:
dead("You greedy bastard!")
def bear_room():
print "There is a bear here."
print "The bear has a bunch of honey."
print "The fat bear is in front of another door."
print "How are you going to move a bear?"
bear_moved = False
while True:
next = raw_input("> ")
if next == "take honey":
dead("The bear looks at you and slaps your face off.")
elif next == "taunt bear" and not bear_moved:
print "The bear has moved from the door and you can go now."
bear_moved = True
elif next == "taunt bear" and bear_moved:
dead("The bear gets pissed off and chews your leg off.")
elif next == "open door" and bear_moved:
gold_room()
else:
print "I got no idea waht that means."
def cthulhu_room():
print "Here you see the great evil Cthulhu."
print " He, it, whatever stares at you and you go insane."
print "Do you flee for your life or eat your head?"
next = raw_input("> ")
if "flee" in next:
start()
elif "head" in next:
dead("Well that was tasty!")
else:
cthulhu_room()
def dead(why):
print why, "Good job!"
exit(0)
def start():
print "You are in dark room."
print "There is a door on your right and left."
print "Which one do you take?"
next = raw_input("> ")
if next == "left":
bear_room()
elif next == "right":
cthulhu_room()
else:
dead("You stumble around the room until you starved.")
start()
- 不要混用制表符和空格。
- 使用将制表符替换为空格的工具(例如 PyCharm)。
顺便说一下,您可以使用 PyCharm 来修复损坏的缩进。
你混用了制表符和空格。
要在 Linux 上修复您的文件:
tr \t ' ' < file_in.py > file_out.py
然后 Windows (7+) :
powershell -Command "(gc file_in.py) -replace '\t', ' ' | Out-File file_out.py"
当我 运行 下面的代码时,我在很多行中遇到缩进错误,例如第 6 行和我放置 exit(0)
:
from sys import exit
def gold_room():
print "This room is full of gold, How much do you take?"
next = raw_input("> ")
if "0" in next or "1" in next:
how_much = int(next)
else:
dead("Man learn to type a number!")
if how_much < 50:
print "Nice, you're not greedy, you win!"
exit(0)
else:
dead("You greedy bastard!")
def bear_room():
print "There is a bear here."
print "The bear has a bunch of honey."
print "The fat bear is in front of another door."
print "How are you going to move a bear?"
bear_moved = False
while True:
next = raw_input("> ")
if next == "take honey":
dead("The bear looks at you and slaps your face off.")
elif next == "taunt bear" and not bear_moved:
print "The bear has moved from the door and you can go now."
bear_moved = True
elif next == "taunt bear" and bear_moved:
dead("The bear gets pissed off and chews your leg off.")
elif next == "open door" and bear_moved:
gold_room()
else:
print "I got no idea waht that means."
def cthulhu_room():
print "Here you see the great evil Cthulhu."
print " He, it, whatever stares at you and you go insane."
print "Do you flee for your life or eat your head?"
next = raw_input("> ")
if "flee" in next:
start()
elif "head" in next:
dead("Well that was tasty!")
else:
cthulhu_room()
def dead(why):
print why, "Good job!"
exit(0)
def start():
print "You are in dark room."
print "There is a door on your right and left."
print "Which one do you take?"
next = raw_input("> ")
if next == "left":
bear_room()
elif next == "right":
cthulhu_room()
else:
dead("You stumble around the room until you starved.")
start()
- 不要混用制表符和空格。
- 使用将制表符替换为空格的工具(例如 PyCharm)。
顺便说一下,您可以使用 PyCharm 来修复损坏的缩进。
你混用了制表符和空格。
要在 Linux 上修复您的文件:
tr \t ' ' < file_in.py > file_out.py
然后 Windows (7+) :
powershell -Command "(gc file_in.py) -replace '\t', ' ' | Out-File file_out.py"