2016-01-05 33 views
-2

当我运行下面的代码,我得到许多行缩进错误,如6号线行,我把exit(0)如何解决Python中的缩进错误?

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() 
+3

你是混合制表符和空格?如果您使用空格,您是否有一致的空格数(例如2 vs 4)? – CoryKramer

+0

你的Python版本是什么?尝试使用print(); –

+0

@AnthonyGranger:99%肯定它是Python 2. – vaultah

回答

2
  1. 不要混合使用制表符和空格。
  2. 使用将用空格替换制表符的工具(例如PyCharm)。

顺便说一句,您可以使用PyCharm来修复您的破损缩进。

0

您正在混合标签和空格。

要解决您的文件在Linux上:

tr \\t ' ' <file_in.py> file_out.py 

和Windows(7+):

powershell -Command "(gc file_in.py) -replace '\t', ' ' | Out-File file_out.py" 
+0

我正在使用windows。 – Harry90