Python - NameError: name 'recorre_cadena' is not defined

   
Vista:

NameError: name 'recorre_cadena' is not defined

Publicado por Ramses (1 intervención) el 06/02/2016 22:11:23
Buenas compañeros, primero soy nuevo en el lenguaje de python y estoy llevando un curso con este lenguaje, estoy intentando compilar un código del juego de la vida, solo que me aparece este error:

Traceback (most recent call last):
File "python", line 75, in <module>
NameError: name 'recorre_cadena' is not defined

ya intente solucionarlo definiendo lo así: recorre_cadena=" " pero me sale otro error :

Traceback (most recent call last):
File "python", line 76, in <module>
TypeError: 'str' object is not callable

Alguien me podría apoyar como se solucionaría o en que me estoy equivocando, porfavor.
-----------Código-----------
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
'''
 
 Programacion de Sistemas Adaptativos
 Automatas celulares
 Automata con celdas binarias, donde cada celda tiene dos vecinos
'''
 
import sys
 
# Imprimir resultado con el formato establecido: 0=blanco, 1=*.
#  Entrada: cadena
#  Salida: cadena con formato establecido (anexa guiones al principio y al final)
cadena=" "
resultado_formato=" "
 
def imprime_resultado(cadena):
 resultado_formato='_'
for caracter in cadena:
 if caracter=='1':
  resultado_formato=resultado_formato + '+'
else:
 resultado_formato=resultado_formato + 'a'
 print ("_")
 
# Aplicar la regla con la ventana recibida.
#  Entrada: Ventana (coleccion de tres celdas, la central y dos vecinos a los lados)
#  Salida: 0 o 1, dependiendo de la regla utilizada
#  Regla 165: Vecinos con el mismo color=1, de otra manera=0    
def procesa_ventana():
     if ventana[0]==ventana[2]:
      resultado='1'
     else:
       resultado='0'
 
 
# Generar una nueva cadena de acuerdo a una regla (0-255)
# Entrada: cadena actual (t=i)
# Salida: cadena nueva (t=i+1)
 
     def recorre_cadena(cadena):
      nueva_cadena=''
      for i in range(0,len(cadena)-2):
       n=len(cadena)
       ventana=cadena[i:i+3]
       nueva_cadena=nueva_cadena+procesa_ventana(ventana)
       ultima_ventana=cadena[len(cadena)-2]+cadena[len(cadena)-1]+cadena[0]
       primera_ventana=cadena[len(cadena)-1]+cadena[0]+cadena[1]
       ultima_celda=procesa_ventana(ultima_ventana)
       primer_celda=procesa_ventana(primera_ventana)
       nueva_cadena=primer_celda+nueva_cadena+ultima_celda;
       return nueva_cadena
 
 
#-------------------------------------------------------------
# Main (parte principal del programa)
 
# Cadenas de prueba
mi_cadena="0000000000000000000000000000000000100000000000000000000000000000000000"
 
#mi_cadena="0000100000"
 
# Toma la cantidad de iteraciones como argumento de la linea de comand
iteraciones=sys.argv[0]
 
# Por la cantidad fijada de iteraciones:
#   Imprime la cadena actual
#   Genera una nueva cadena de acuerdo a la regla
#   Reemplaza la cadena actual por esta nueva cadena
for i in range(0,len(iteraciones)):
 imprime_resultado(mi_cadena)
 nueva_cadena=recorre_cadena(mi_cadena)
 mi_cadena=nueva_cadena
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 Miguel Angel

NameError: name 'recorre_cadena' is not defined

Publicado por Miguel Angel (1 intervención) el 07/02/2016 15:11:30
No entiendo tu solución, recorre_cadena es una función, y dices que ya intentaste solucionarlo poniendo recorre_cadena=""?
Creo que tu error está en dar el mismo nombre a una variable como una función. Por ahí está el error
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

NameError: name 'recorre_cadena' is not defined

Publicado por Jose (1 intervención) el 07/02/2016 18:35:35
Gracias, ya intente eso tambien le puse diferente nombre e igual me sigue saliendo el mismo error
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