我没有在这里看到错误:python

时间:2011-11-26 01:35:05

标签: python indentation

  

可能重复:
  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

我发现它没有任何问题。

2 个答案:

答案 0 :(得分:5)

确保没有混合标签和空格以进行缩进。您的编辑器可能认为您的制表符是一个值(4?),而python解释器可能是其他值;如果你的某些行然后用空格缩进,而其他行带有制表符,那么当python解释器不同意时,你的编辑器会将这些行显示为排队。

答案 1 :(得分:1)

您的代码看起来正确无误。通过运行$ python -t yourcode.py验证是否未混合空格和制表符。这打开了标签保姆。