
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-----------
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


0