如何解决 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()
  1. 不要混用制表符和空格。
  2. 使用将制表符替换为空格的工具(例如 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"