Foros del Web » Programando para Internet » Python »

No veo el error de indentación

Estas en el tema de No veo el error de indentación en el foro de Python en Foros del Web. Hola pues me ha pasado una cosa extraña en concreto con este código tan corto no para de darme errores de indentación por todos lados ...
  #1 (permalink)  
Antiguo 14/04/2014, 15:58
 
Fecha de Ingreso: marzo-2014
Mensajes: 12
Antigüedad: 10 años, 9 meses
Puntos: 0
No veo el error de indentación

Hola pues me ha pasado una cosa extraña en concreto con este código tan corto no para de darme errores de indentación por todos lados y de vez en cuando en sitios distintos
Código:
import pygame
import sys
FPS = 60

def main():
    pygame.init()
    pantalla=pygame.display.set_mode((480,300))
    reloj1= pygame.time.Clock()
    vx,vy=0,0
    velocidad=5
    t = 0
    rect1= pygame.Rect(0,0,50,50)
    while True:
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				pygame.quit()
                sys.exit()
			if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    vx=-velocidad
                if event.key == pygame.K_RIGHT:
                    vx=velocidad   
                if event.key== pygame.K_UP:
                    vy=-velocidad
                if event.key == pygame.K_DOWN:
                    vy=velocidad 
        reloj1.tick(FPS)
        pantalla.fill((200,200,200))
        pygame.draw.rect(pantalla,(200,50,100), rect1)
        rect1.move_ip(vx,vy)
		pygame.display.update()
        if rect1.bottom >= 300:
			vy= -velocidad
		print rect1.left

                
if __name__ == "__main__":
	main()
No se porque pero al pegar el código aqui se trastorna y se pone mal pero desde mi editor sale bien
EDIT: Lo he solucionado escribiéndolo otra vez pero sin copiar y pegar, parece que va, lo siento por las molestias!

Última edición por Ai7or21; 14/04/2014 a las 16:16
  #2 (permalink)  
Antiguo 22/04/2014, 21:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: No veo el error de indentación

Hay un error de identacion para mi muy evidente:

Código Python:
Ver original
  1. while True
  2.     for event in pygame.event.get():  # aca tienes doble identacion


Ademas revisa no estes mezclando espacios con tabs
__________________
Salu2!
  #3 (permalink)  
Antiguo 23/04/2014, 04:22
Avatar de dcaraballo  
Fecha de Ingreso: abril-2013
Ubicación: San José
Mensajes: 13
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: No veo el error de indentación

Hola, como dice Italico76 tienes problemas con doble identación a partir del while True:

Saludos
  #4 (permalink)  
Antiguo 23/04/2014, 06:03
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: No veo el error de indentación

A mi parecer hay más de uno, y digo parecer porque no sé de Python. ¿No estás mezclando también tabulaciones con espacios? Es mejor trabajar con dos espacios, es más normal y es más compatible. Normalmente un editor se ocupa de indentar, no sé cómo habrás hecho para mezclar eso.
  #5 (permalink)  
Antiguo 23/04/2014, 08:51
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 9 meses
Puntos: 1329
Respuesta: No veo el error de indentación

Cita:
Iniciado por pzin Ver Mensaje
no sé cómo habrás hecho para mezclar eso.
Probablemente copiar y pegar código.
__________________
Grupo Telegram Docker en Español
  #6 (permalink)  
Antiguo 23/04/2014, 23:40
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No veo el error de indentación

Si efectivamente mezcló tabulaciones con espacios, es probable que el compañero copió código de un programa y lo pegó en otro.
Bueno no hay drama
Aquí lo dejo bien al código:

Código Python:
Ver original
  1. import pygame
  2. import sys
  3. FPS = 60
  4.  
  5. def main():
  6.     pygame.init()
  7.     pantalla=pygame.display.set_mode((480,300))
  8.     reloj1= pygame.time.Clock()
  9.     vx,vy=0,0
  10.     velocidad=5
  11.     t = 0
  12.     rect1= pygame.Rect(0,0,50,50)
  13.     while True:
  14.         for event in pygame.event.get():
  15.             if event.type == pygame.QUIT:
  16.                 pygame.quit()
  17.                 sys.exit()
  18.             if event.type == pygame.KEYDOWN:
  19.                 if event.key == pygame.K_LEFT:
  20.                     vx=-velocidad
  21.                 if event.key == pygame.K_RIGHT:
  22.                     vx=velocidad  
  23.                 if event.key== pygame.K_UP:
  24.                     vy=-velocidad
  25.                 if event.key == pygame.K_DOWN:
  26.                     vy=velocidad
  27.         reloj1.tick(FPS)
  28.         pantalla.fill((200,200,200))
  29.         pygame.draw.rect(pantalla,(200,50,100), rect1)
  30.         rect1.move_ip(vx,vy)
  31.         pygame.display.update()
  32.         if rect1.bottom >= 300:
  33.             vy= -velocidad
  34.         print rect1.left
  35.  
  36.                
  37. if __name__ == "__main__":
  38.     main()

Buena suerte.

Etiquetas: ip
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:33.