elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  [Python 3.6] no logro hacer funcionar esto:
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python 3.6] no logro hacer funcionar esto:  (Leído 2,383 veces)
n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
[Python 3.6] no logro hacer funcionar esto:
« 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... para más información)
Acá el código:
Código
  1. import os
  2.  
  3. filepath = "C:/Users/darling/Desktop/prueba2.ocl" # input("Ruta del archivo: ")
  4.  
  5. archivo = open(filepath, "r", encoding = 'utf-8') # Abre el archivo con codificado UTF-8
  6.  
  7. for linea in archivo.readlines():
  8.  
  9.    if "add" in linea: # "add" Indica que los proximos numeros que esten entre comillas simples seran sumados
  10.        arreglo = linea.split('"')
  11.        arreglo2 = linea.split('"')
  12.  
  13.        # print(arreglo[1])
  14.        # print(arreglo2[1])
  15.  
  16.        num1 = arreglo[1]
  17.        num2 = arreglo2[1]
  18.  
  19.        int(num1)
  20.        int(num2)
  21.  
  22.        total = float(num1) + float(num2)
  23.        print(total)
  24.  
  25.    elif "$$" in linea: # $$ Indica que hay un comentario
  26.        pass
  27.  
  28.    elif "clrscr()" in linea: # clrscr() indica en el código que se ha de limpiar la pantalla
  29.        os.system('cls')
  30.  
  31.    elif "int" in linea: # "int" Indica que es una variable de tipo entero
  32.        varName = linea.split('"') # Nombre de la variable
  33.        varValue = linea.split('|') # Valor de la variable
  34.  
  35.  
  36.        if "putsln" in linea:
  37.            putslnFunction = linea.split('"')
  38.  
  39.            if putslnFunction[1] == varValue[1] :
  40.                print(varValue[1]) # envez de imprimirme el valor de la variable, me imprime el nombre de la variable!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  41.  
  42.            elif putslnFunction[1] == '':
  43.                print("is null!")
  44.  
  45.  
  46.        # print(varName[1])
  47.        # print(varValue[1])
  48.  
  49.    elif "putsln" in linea:
  50.        putslnFunction = linea.split('"') # putsln Indica que se imprimira un texto
  51.        printedText = putslnFunction[1]
  52.  
  53.        '''
  54.        if printedText == '':
  55.            print(printedtext)
  56.        else:
  57.            print(printedText) # Imprime el texto que se ha introducido en la función putsln. Ejemplo: putsln "Hola!"
  58.        '''
  59.  
  60.        print(printedText) # Imprime el texto que se ha introducido en la función putsln. Ejemplo: putsln "Hola!"
  61.  
  62. archivo.close()
  63.  
  64. print("Code execution finished.")
  65. os.system('pause')
  66.  
  67.  
  68.  
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.  :)


En línea

null
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python 3.6] no logro hacer funcionar esto:
« Respuesta #1 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.   


En línea

n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: [Python 3.6] no logro hacer funcionar esto:
« Respuesta #2 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:
Código
  1. putslnFunction = linea.split('"')
  2.  
  3.            if putslnFunction[1] == varValue[1] :
  4.                print(varValue[1]) # envez de imprimirme el valor de la variable, me imprime el nombre de la variable!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  5.  
  6.            elif putslnFunction[1] == '':
  7.                print("is null!")
  8.  
  9.            else:
  10.                pass
  11.  
dentro del
Código
  1. elif "putsln" in linea:
me tira que la variable varValue y varName no están declaradas, cuando si lo están.
En línea

null
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Configurar eclipse para hacer funcionar python
Scripting
Shiro_himura 0 2,268 Último mensaje 17 Mayo 2008, 19:22 pm
por Shiro_himura
solo logro hacer transferencia de archivos de menos de 2mb, que puedo hacer?
Programación Visual Basic
Proxy Lainux 6 4,894 Último mensaje 9 Junio 2008, 03:00 am
por LeandroA
¿Como hacer esto en python?
Scripting
N4C 3 4,186 Último mensaje 29 Marzo 2011, 23:13 pm
por Novlucker
[PYTHON][AYUDA] Como hacer esto
Python
LaThortilla (Effort) 2 2,384 Último mensaje 10 Septiembre 2015, 21:56 pm
por LaThortilla (Effort)
[PYTHON] Hacer funcionar server.py en host de pago
Python
GMTurpin 1 4,944 Último mensaje 28 Mayo 2023, 17:05 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines