Título: [Python 3.6] no logro hacer funcionar esto:
Publicado por: n1sen en 28 Septiembre 2017, 21:33 pm
Hola, primero de todo, tengo que explicar de que se trata este código, es una especie de interprete, para un lenguaje de programación (?) que cree yo (ver este tema mio, [Python 3.6] Un intento de no se que... (https://foro.elhacker.net/scripting/python_36_un_intento_de_no_se_que_y_un_problemita-t474992.0.html) para más información) Acá el código: import os filepath = "C:/Users/darling/Desktop/prueba2.ocl" # input("Ruta del archivo: ") archivo = open(filepath, "r", encoding = 'utf-8') # Abre el archivo con codificado UTF-8 for linea in archivo.readlines(): if "add" in linea: # "add" Indica que los proximos numeros que esten entre comillas simples seran sumados arreglo = linea.split('"') arreglo2 = linea.split('"') # print(arreglo[1]) # print(arreglo2[1]) num1 = arreglo[1] num2 = arreglo2[1] int(num1) int(num2) total = float(num1) + float(num2) print(total) elif "$$" in linea: # $$ Indica que hay un comentario pass elif "clrscr()" in linea: # clrscr() indica en el código que se ha de limpiar la pantalla os.system('cls') elif "int" in linea: # "int" Indica que es una variable de tipo entero varName = linea.split('"') # Nombre de la variable varValue = linea.split('|') # Valor de la variable if "putsln" in linea: putslnFunction = linea.split('"') if putslnFunction[1] == varValue[1] : print(varValue[1]) # envez de imprimirme el valor de la variable, me imprime el nombre de la variable!!!!!!!!!!!!!!!!!!!!!!!!!!!!! elif putslnFunction[1] == '': print("is null!") # print(varName[1]) # print(varValue[1]) elif "putsln" in linea: putslnFunction = linea.split('"') # putsln Indica que se imprimira un texto printedText = putslnFunction[1] ''' if printedText == '': print(printedtext) else: print(printedText) # Imprime el texto que se ha introducido en la función putsln. Ejemplo: putsln "Hola!" ''' print(printedText) # Imprime el texto que se ha introducido en la función putsln. Ejemplo: putsln "Hola!" archivo.close() print("Code execution finished.") os.system('pause')
Bueno, como aparece en el código (línea 40), envés de darme el valor de la variable, me da el nombre, he intentado de todo y no lo logro hacer funcionar. :-( Gracias. :)
Título: Re: [Python 3.6] no logro hacer funcionar esto:
Publicado por: tincopasan en 28 Septiembre 2017, 22:11 pm
voy a intentar ser amable, aunque todos estamos aprendiendo, ese código es un horror(en mi forma amable),¿has debugueado el código poniendo un breakpoint en la línea 40 para ver el valor que tiene cada una de las variables que intentas usar? es más, ¿estás seguro que alguna vez pasa por la condición de la línea 39? Está bueno tener ideas y quererlas plasmar, pero de ahí a hacer un motor con latas y cuchillos falta un poco. Revisa la estructura del código, prueba cada una de las partes de forma individual, pon breakspoint, mira que valor tienen las variables y podrás seguir de una forma más fácil esto.
Título: Re: [Python 3.6] no logro hacer funcionar esto:
Publicado por: n1sen en 28 Septiembre 2017, 22:27 pm
Lo sé, el código es un horror... Ah, y al depurarlo se saltaba ese if de la linea 39, pero tampoco se ejecutaba el else, asi que me da a saber que hay algo mal ahi, quisas sea el if de la linea 36. pero si yo pongo esto parte: putslnFunction = linea.split('"') if putslnFunction[1] == varValue[1] : print(varValue[1]) # envez de imprimirme el valor de la variable, me imprime el nombre de la variable!!!!!!!!!!!!!!!!!!!!!!!!!!!!! elif putslnFunction[1] == '': print("is null!") else: pass
dentro del elif "putsln" in linea:
me tira que la variable varValue y varName no están declaradas, cuando si lo están.
|