Python - Donde debo colocar "break" para que no me salga error?

 
Vista:
Imágen de perfil de Junior

Donde debo colocar "break" para que no me salga error?

Publicado por Junior (7 intervenciones) el 21/01/2015 05:51:55
Hola, estudiando en Codecademy.com me pasa que tengo que poner un break pero cuando lo pongo me dice "SyntaxError: 'break' outside loop", que tengo que hacer?, les dejo el código y el mandato para que me ayuden por favor, soy nuevo y estoy tratando de aprender todo lo posible de dicho lenguaje de fácil aprendizaje.

Mandato:

Instrucciones
Agrega un break bajo la condición ganar para terminar el ciclo después de ganar.

?
Consejo
Tu break debe ir dentro de tu sentencia if, justo después del mensaje de "¡Felicitaciones!" .

Codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import random
 
tablero = []
 
for x in range(0,5):
  tablero.append(["O"] * 5)
 
def print_tablero(tablero):
  for fila in tablero:
    print " ".join(fila)
 
print "Juguemos as la batalla naval!"
print_tablero(tablero)
 
def fila_aleatoria(tablero):
  return random.randint(0,len(tablero)-1)
 
def columna_aleatoria(tablero):
  return random.randint(0,len(tablero[0])-1)
 
barco_fila = fila_aleatoria(tablero)
barco_columna = columna_aleatoria(tablero)
print barco_fila
print barco_columna
 
#¡De acá en adelante todo debería ir en tu ciclo for!
#¡Asegurate de indentar!
adivina_fila = input("Adivina fila: ")
adivina_columna = input("Adivina columna: ")
 
if adivina_fila == barco_fila and adivina_columna == barco_columna:
  print "Felicitaciones! Hundiste mi barco!"
  break
else:
  if (adivina_fila < 0 or adivina_fila > 4) or (adivina_columna < 0 or adivina_columna > 4):
    print "Huy, eso ni siquiera esta en el oceano."
  elif(tablero[adivina_fila][adivina_columna] == "X"):
    print "Ya dijiste esa."
  else:
  	print "No tocaste mi barco!"
  	tablero[adivina_fila][adivina_columna] = "X"
  # ¡Mostrá (turno + 1) acá!
  print_tablero(tablero)
 
for turno in range(4):
    print "Turno", turno + 1
 
if turno == 4:
    "Fin del juego"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Nacho

Donde debo colocar "break" para que no me salga error?

Publicado por Nacho (7 intervenciones) el 21/01/2015 07:44:33
1.- No se entiende nada, te agradecería que indentaras el código u.u
2.- #¡De acá en adelante todo debería ir en tu ciclo for!... creo que no agregaste el ciclo for.
3.- Los break son para salir de ciclos, por lo tanto no puedes poner un break amenos que este DENTRO de un ciclo.
4.- cual es la condición ganar?
Me cuentas como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Junior

Donde debo colocar "break" para que no me salga error?

Publicado por Junior (7 intervenciones) el 21/01/2015 18:23:47
Voy a intentar introducir el if en un ciclo for para ver que pasa, te digo informo cualquier cosa ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Donde debo colocar "break" para que no me salga error?

Publicado por 12-trunks-12 (37 intervenciones) el 21/01/2015 17:21:32
Buenas,

como bien dice el problema: 'break' outside loop , la función break no puede salir de un bucle porque precisamente no está dentro de un bucle, está dentro del condicional if. Si quieres usar la función break debes poner un bucle (for o while) y sinó si lo que quieres es salir de la condición puedes poner quit()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar