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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10
11  Programación / Scripting / Re: Generadores y yield en Python… en: 18 Diciembre 2022, 14:59 pm
Hola, gracias por el consejo.
Te comento que me llevo a esto, el blog donde encontré una explicación interesante sobre
generadores, decía tener un archivo .txt con más de 64.000.000 de registros, con la
manera "tradicional", por momentos la memoria colapsaba, en cambio, construyendo
un generador no ocurría lo mismo.-
Ya que estamos, en el segundo caso, ¿debo cerrar el archivo?
 
Código
  1. import codecs
  2.  
  3. with codecs.open('Movimientos.txt', 'r', encoding='utf-8') as archivo:
  4.    print(type(archivo))
  5.  
  6. filas = (rows for rows in open('Movimientos.txt'))
  7. print(type(filas))

Slds. Daniel ☕☕☕
12  Programación / Scripting / Re: Generadores y yield en Python… en: 17 Diciembre 2022, 19:20 pm
Hola gente, ¿cómo están?, bueno, conseguí lo deseado, solo que los resultados
me resultan todavía un tanto confusos, seguiré estudiando el tema.-

Código
  1. import codecs
  2. import time
  3. import sys
  4.  
  5. inicio = time.time()
  6. filas = (rows for rows in open('Movimientos.txt'))
  7.  
  8. row = 0
  9. for fil in filas:
  10.    row += 1
  11.  
  12. print(f"Con comprensión de generadores...: {row} registros")
  13. fin = time.time()
  14. tiempoUno=fin-inicio
  15. print(f"Tiempo consumido con comprensión de generadores...:{tiempoUno:.10f}")
  16.  
  17. print(f"Peso en memoria...; {sys.getsizeof(filas)} bytes")
  18. print("==============================================================")
  19. inicio = time.time()
  20. fila = 0
  21. with codecs.open('Movimientos.txt', 'r', encoding='utf-8') as archivo:
  22.    for row in archivo:
  23.        fila += 1
  24.  
  25. print(f"De manera tradicional...: {fila} registros")
  26. fin = time.time()
  27. tiempoDos=fin-inicio
  28. print(f"Tiempo consumido de manera tradicional...:{tiempoDos:.10f}")
  29. print(f"Peso en memoria...; {sys.getsizeof(archivo)} bytes")
  30. print("==============================================================")
  31. print(f" Diferencia...: {tiempoUno-tiempoDos:.10f}")
  32.  

Slds. Daniel ☕☕☕
13  Programación / Scripting / Re: Generadores y yield en Python… en: 15 Diciembre 2022, 21:07 pm
Como verán continuo con lo mismo, en este caso el generador tiene una ventaja de tiempo con respecto a una manera «tradicional» de contar la cantidad de registros de un archivo .txt.-
Alguien me podría decir, ¿ cómo puedo saber en memoria cuanto ocupa una y otra?, gracias

Código
  1. import codecs
  2. import time
  3.  
  4. inicio = time.time()
  5. filas = (row for row in open('Movimientos.txt'))
  6.  
  7. row = 0
  8. for fil in filas:
  9.    row += 1
  10.  
  11. print(row)
  12. fin = time.time()
  13. print(fin-inicio)
  14. print("====================================")
  15. inicio = time.time()
  16. fila = 0
  17. with codecs.open('Movimientos.txt', 'r', encoding='utf-8') as archivo:
  18.    for row in archivo:
  19.        fila += 1
  20.  
  21. print(fila)
  22. fin = time.time()
  23. print(fin-inicio)

Citar
51800
0.015956401824951172
========================================================
51800
0.11170220375061035

gracias Dani por los consejos...

Slds. Daniel ☕☕☕
14  Programación / Scripting / Re: Generadores y yield en Python… en: 14 Diciembre 2022, 20:01 pm
Hola tocayo, gracias por ocuparte, para serte franco es la página que más
había leído, por eso sigo con ta intriga de como aplicar en la práctica los
generadores y yield, seguiremos investigando, gracias, abrazo…

Slds. Daniel ☕☕☕
15  Programación / Scripting / Generadores y yield en Python… en: 13 Diciembre 2022, 19:43 pm
Hola gente linda, ¿cómo están?
La consulta es ¿le encontraron en la vida real alguna utilidad a los generadores?
Los consulto porque me pase 3 días enteros leyendo sobre el tema y en realidad
todos los ejemplos son con números primos, impares, pares y no pasa de eso.
Bueno es todo lo que necesito saber, ya que me falta aprender sobre yield from
y otras cositas, pero si no tiene una utilidad significativa continuo con el siguiente
tema.-

Código
  1. def principal():    
  2.    def tabla_del_cinco(oper):
  3.        num = 1
  4.        while True:
  5.            yield num , num * oper
  6.            num += 1
  7.  
  8.    try:
  9.        operando = int(input("\n Ingrese la tabla que desea consultar...: "))
  10.    except:
  11.        print("\n Debe ingresar un entero...")
  12.    else:
  13.        tabla = tabla_del_cinco(operando)
  14.  
  15.        print('\n===== "uno" para mostrar - "otro" para finalizar =====\n')
  16.  
  17.        while True:
  18.            salir = input('"Ingrese...: ')
  19.            if salir == '1':
  20.                tupla = tuple(next(tabla))
  21.                final = f"{operando} x {tupla[0]} = {tupla[1]}"
  22.                print(final)
  23.            else:
  24.                break
  25.  
  26.  
  27. if __name__ == "__main__":
  28.    principal()

Slds. Daniel ☕☕☕
16  Programación / Scripting / Re: lista de palabras agrupada por su letra inicial(diccionario) en: 26 Noviembre 2022, 14:23 pm
Hola muy buen día para todos.-
Aunque parezca redundante no puedo evitar agradecerle nuevamente a los 2.-
Una última pregunta(es un chiste) si le aplicaran comprensión de diccionario quedaría concluido
con 4 líneas, jajajajaj, abrazo.-

Slds. Daniel ☕☕☕
17  Programación / Scripting / Re: lista de palabras agrupada por su letra inicial(diccionario) en: 25 Noviembre 2022, 15:26 pm
Bueno, voy a dividir la respuesta:
MCKSys Argentina gracias por el código, interesante me atrevo a pedirte un favor
y es que me ayudes a hacerlo sin utilizar la lista abecedario, lo intente con chr(97)
pero todavía no lo logro.-
 
=========================================================

Rey, aprovecho para comentarte que el ej. de clase de este post lo guarde en un cuadrito
para tenerlo como ej. principal, gracias…

https://foro.elhacker.net/scripting/que_todos_los_entry_dentro_de_un_frame_sean_readonly_en_tkinter-t516282.0.html

En cuanto a tu código está muy bien, pero es muy avanzado para mí, si bien no son tantas las líneas
no logro entenderlo, lo voy a tener muy en cuenta, lo que ocurre es la primera vez que leo/práctico
sobre diccionario en Python, siempre lo deje a un lado, pero llego el momento de aprender al respecto.-

Slds. Daniel ☕☕☕
18  Programación / Scripting / Re: lista de palabras agrupada por su letra inicial(diccionario) en: 25 Noviembre 2022, 02:23 am
Bueno, parece funcionar, solo me queda que alguien me diga si hay
una manera mejor/distinta

Código
  1. palabras = ['mesa', 'móvil', 'barco', 'coche', 'avión', 'bandeja', 'casa',
  2.            'monitor', 'carretera', 'arco']
  3.  
  4. abecedario = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
  5.       'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
  6.  
  7. diccionario = {}
  8. acumulados = []
  9. for abc in abecedario:
  10.    for pal in palabras:
  11.        if abc == pal[0]:
  12.            acumulados.append(pal)
  13.    if len(acumulados):
  14.        diccionario[abc] = acumulados[:]
  15.        acumulados.clear()
  16.  
  17. for clave, valor in diccionario.items():
  18.    print(clave, ":", valor)

Slds. Daniel ☕☕☕
19  Programación / Scripting / lista de palabras agrupada por su letra inicial(diccionario) en: 24 Noviembre 2022, 20:28 pm
Citar
1. Escriba un programa en Python que acepte una lista de palabras y las agrupe por su
letra inicial usando un diccionario (solución).
Entrada: [ “mesa”, “móvil”, “barco”, “coche”, “avión”, “bandeja”, “casa”,
“monitor”, “carretera”, “arco”]
Salida: {“m”: [“mesa”, “móvil”, “monitor”], “b”: [“barco”, “bandeja”], “c”:
[“coche”, “casa”, “carretera”], “a”: [“avión”, “arco”]}

Código
  1. palabras = ['mesa', 'móvil', 'barco', 'coche', 'avión', 'bandeja', 'casa',
  2.            'monitor', 'carretera', 'arco']
  3.  
  4. abecedario = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
  5.       'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
  6.  
  7. diccionario = {}
  8. for abc in abecedario:
  9.    for pal in palabras:
  10.        if abc == pal[0]:
  11.            diccionario[abc] = [pal]
  12.  
  13. print(diccionario)
  14.  


Hola gente, ¿cómo están? Las consultas es ¿estoy bien encaminado,
o lo harían de otra manera?, no desconozco que no está del todo
bien porque logro poner una sola palabra por letra, pero bueno, ya lo
lograré…

Desde ya muchas gracias…
Slds. Daniel ☕☕☕
20  Programación / Scripting / Re: TypeError: 'str' object cannot be interpreted as an integer(python) en: 18 Noviembre 2022, 00:05 am
Hola Dani, ¿cómo estás?, muy interesante, me gusta esa manera.-
En cuanto al IDE utilizo Thonny para cosas chicas y cuando lo que
estoy estudiando se pone más complicado, PyScripter.-

Slds. Daniel ☕☕☕
Páginas: 1 [2] 3 4 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines