可能重复:
IndentationError: unindent does not match any outer indentation level
这是我查看了几个小时的代码。它可能是Lion的python bug。我使用的是python 2.7。
import os, pygame
from pygame.locals import *
import spritesheet
import sound
from map import Level
level = Level()
level.loadFile("level.map")
pygame.init()
screen = pygame.display.set_mode((640, 480))
background = level.render(spritesheet.spritesheet("spritesheet.bmp"))
pygame.display.set_caption('Game')
character=spritesheet.spritesheet("spritesheet.bmp").image_at(pygame.rect.Rect(64, 64, 32, 32), colorkey = (255, 255, 255))
#Create The Backgound
background.blit(character, (304, 224))
screen.blit(background, (0, 0))
clock = pygame.time.Clock()
level.setTile(1, 1, "3")
pygame.display.flip()
xoffset=0
yoffset=0
while True:
background = level.render(spritesheet.spritesheet("spritesheet.bmp"))
background.blit(character, (304, 224))
screen.blit(background, (0+xoffset, 0+yoffset))
pygame.display.flip()
for event in pygame.event.get():
if event.type==QUIT:
exit()
elif event.type == KEYDOWN:
if event.key == K_w:
yoffset-=5
if event.key == s:
yoffset+=5
它返回:
File "main.py", line 30
elif event.type == KEYDOWN:
^
IndentationError: unindent does not match any outer indentation level
我发现它没有任何问题。
答案 0 :(得分:5)
确保没有混合标签和空格以进行缩进。您的编辑器可能认为您的制表符是一个值(4?),而python解释器可能是其他值;如果你的某些行然后用空格缩进,而其他行带有制表符,那么当python解释器不同意时,你的编辑器会将这些行显示为排队。
答案 1 :(得分:1)
您的代码看起来正确无误。通过运行$ python -t yourcode.py
验证是否未混合空格和制表符。这打开了标签保姆。