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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Temas
Páginas: [1] 2 3
1  Programación / Desarrollo Web / El lenguaje más conveniente para hacer páginas web... en: 30 Octubre 2023, 23:49 pm
Hola gente, ¿cómo están?, alguien me puede ayudar, necesito
saber cuál es el lenguaje más conveniente para hacer páginas web.-
Para tener en cuenta, tengo 71 años y soy autodidacta, es simplemente
para pasar el tiempo si luego sale algo bienvenido sea.-
Desde ya muchas gracias…
2  Programación / Scripting / Primeros pasos con programación orientada a objetos(POO) en: 27 Diciembre 2022, 14:40 pm
Esta vez estoy decidido a aprender la POO y no voy a continuar
con el próximo tema hasta aprender por lo menos lo básico.-
Primero dejo un programita para demostrarle que algo pude lograr.-

Código
  1. class Super:
  2.    def __init__(self, codigo, nombre, precio):
  3.        self.codigo = codigo
  4.        self.nombre = nombre
  5.        self.precio = precio
  6.  
  7.    def __str__(self):
  8.        return f"{self.codigo} {self.nombre} {self.precio}"
  9.  
  10.  
  11. if __name__ == '__main__':
  12.    tomate = Super(125, "Arcor tomate perita lata x 380 grs.", 129.50)
  13.    print(tomate)


Código
  1. import codecs
  2. import os
  3.  
  4. def principal():
  5.    lemario = leer_lemario()
  6.    palabra = True
  7.    mostrar = []
  8.    while palabra:
  9.        palabra = input("\n Ingrese la palabra a corregir...: ")
  10.        if buscar_palabra(palabra, lemario) == True:
  11.            print(f'\n La palabra "{palabra}" existe en el diccionario y es correcta.')
  12.        elif len(palabra) == 0:
  13.            break
  14.        else:    
  15.            for lema in lemario:
  16.                posibles = distancia(lema, palabra)
  17.                if int(posibles) == 1:
  18.                    mostrar.append(lema)
  19.            if len(mostrar) == 0:
  20.                print("\n No se encontraron palabras parecidas...")
  21.            else:    
  22.                print("\n ===== Posibles palabras correctas =====")
  23.                cont = 0
  24.                for mos in mostrar:
  25.                    print(" ", mos, end=" - ")
  26.                    cont += 1
  27.                    if cont == 5:
  28.                        print(" ")
  29.                        cont = 0    
  30.                print("\n =======================================")
  31.                mostrar.clear()
  32.  
  33. def buscar_palabra(palabra, lemario):
  34.    for lema in lemario:
  35.        if palabra == lema:
  36.            return True
  37.    return False
  38.  
  39.  
  40. def leer_lemario():
  41.    lemario = []
  42.    with codecs.open('Ortografia.txt', 'r', encoding='utf-8') as archivo:
  43.        for linea in archivo:
  44.            linea = linea.strip()
  45.            if len(linea) > 0:
  46.                lemario.append(linea)
  47.    return lemario
  48.  
  49.  
  50. def distancia(str1, str2):
  51.  posibles = []
  52.  d=dict()
  53.  for i in range(len(str1)+1):
  54.     d[i]=dict()
  55.     d[i][0]=i
  56.  for i in range(len(str2)+1):
  57.     d[0][i] = i
  58.  for i in range(1, len(str1)+1):
  59.     for j in range(1, len(str2)+1):
  60.        d[i][j] = min(d[i][j-1]+1, d[i-1][j]+1, d[i-1][j-1]+(not str1[i-1] == str2[j-1]))
  61.  return d[len(str1)][len(str2)]
  62.  
  63.  
  64. if __name__ == "__main__":
  65.    principal()

La pregunta es: ¿alguien me podría orientar para pasar este programa
(que intenta ser un corrector ortográfico)a la POO?.-
Si les resulta muy tedioso hacer un ej. completo, por lo menos desearía
que me muestren tan solo un método, desde ya muchas gracias…

Slds. Daniel ☕☕☕
3  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 ☕☕☕
4  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 ☕☕☕
5  Programación / Scripting / TypeError: 'str' object cannot be interpreted as an integer(python) en: 17 Noviembre 2022, 15:18 pm
Hola gente, ¿ cómo están? Créanme que pase un rato buscando la manera de solucionar esto, pero como es la primera vez que trabajo con archivo binario no hay manera de conseguirlo.-
Siendo prejuicioso, debo decir que debe ser algo muy simple lo que me falta, pero no me cae la ficha.-
Esto tiene que ver con el post anterior, quiero medir el peso en disco de un archivo plano y uno binario.-

https://foro.elhacker.net/scripting/bases_de_datos_utilizando_archivo_txt_en_python-t516456.0.html


Código
  1. def main():
  2.    otra=[f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo" for x in range(1,100_001)]
  3.    with open("numeros.bin","wb") as archivo:
  4.        archivo.write(bytearray(otra))
  5.  
  6. if __name__ == "__main__":
  7.    main()

Slds. Daniel ☕☕☕
6  Programación / Scripting / Bases de datos utilizando archivo .txt en Python. en: 13 Noviembre 2022, 21:29 pm
Estoy tratando de realizar mi gran sueño que es crear mis propias BD y para ello necesito
alguna ayudita(descarto que alguien me diga «para que reinventar la rueda» gente sueños
son sueños).-
La ayuda es ¿de dónde puedo bajar un archivo con más de 100.000 registros y un ancho
de por lo menos unas 40 caracteres, cada uno?
Para hacerme enter mejor, lo que quiero medir (en tiempo) cuanto tarda en mostrar un
registro(por ej. el 100.000) ordenado y cuanto tarda sin ordenar (esto desde una lista,
por supuesto).-
Bueno es todo y desde ya muchas gracias por el tiempo que le dediquen.-

Slds. Daniel ☕☕☕
7  Programación / Scripting / wait windows para tkinter... en: 27 Octubre 2022, 02:05 am
Hola gente, ¿cómo están? Bueno ahora hago un cambio de rol,
vengo a traerles un aporte, lo que ocurre es que estuve estudiando
bastante(hace ya mucho tiempo) VFP y en ese lenguaje se utilizaba
muchísimo, pero muchísimo una wait windows y en python por más
que busco no encuentro nada parecido.-
Lo dejo a vuestra consideración y cualquier aporte o crítica será
bien venida.-
 
Código
  1. import tkinter as tk
  2. from tkinter import ttk
  3. from functools import partial
  4.  
  5. def cerrar(*waitVentana):
  6.    waitVentana[0].destroy()
  7.  
  8.  
  9. def posicionarVentana(root):
  10.    ventanaRaiz = root.geometry()
  11.    ventanaRaiz = ventanaRaiz.replace('x', ',')
  12.    ventanaRaiz = ventanaRaiz.replace('+', ',')
  13.    dimPos = ventanaRaiz.split(',')
  14.  
  15.    xInicio = int(dimPos[0]) + int(dimPos[2])
  16.    yAlto = int(dimPos[3]) -50
  17.  
  18.    return xInicio, yAlto
  19.  
  20. def ventanaMensaje(texto, root):
  21.    posicion = posicionarVentana(root)
  22.    mensaje = texto
  23.    waitVentana = tk.Toplevel(root)
  24.    waitVentana.geometry('+%d+%d' % (posicion[0], posicion[1]))
  25.    waitVentana.overrideredirect(1)
  26.    waitVentana.grab_set()
  27.    waitVentana.focus_set()
  28.  
  29.    waitVentana.bind('<Escape>', partial(cerrar, waitVentana))
  30.  
  31.    frame = ttk.Frame(waitVentana)
  32.    frame.pack()
  33.    label = tk.Label(frame, text=mensaje,
  34.        font=("vardana", 14), borderwidth=6, relief="ridge")
  35.    label.pack()
  36.  
  37.    waitVentana.after(5000, waitVentana.destroy)
  38.    frame.after(5000, frame.destroy)
  39.  

Código
  1. def ventanaMensaje(texto, root):

Esta es la función principal y hay que pasarle el texto a mostrar
y el nombre de la ventana que la invoca para darle una posición
relativa.-

Slds. Daniel ☕☕☕
8  Programación / Scripting / Que todos los entry dentro de un frame sean readonly en tkinter. en: 20 Octubre 2022, 16:40 pm
Bueno, eso, tengo 7 entrys dentro de un frame y quisiera que sean
todos de solo lectura hasta que se pulse el botón <Agregar>, es bastante
tedioso tener que cambiar el estado de cada uno cada vez que se quieran editar.-
Encontré por allí una manera de hacerlo con un bucle for, pero no me convenció.-
Les dejo el programa por si alguien necesita correrlo…

Código
  1. import tkinter as tk
  2. import Funciones
  3. from tkinter import ttk
  4. from functools import partial
  5. from idlelib.tooltip import Hovertip
  6.  
  7. def centrarVentana(root):
  8.    w = 430
  9.    h = 375
  10.  
  11.    ws = root.winfo_screenwidth()
  12.    hs = root.winfo_screenheight()
  13.    x = (ws/2) - (w/2)
  14.    y = (hs/2) - (h/2)
  15.    root.geometry('%dx%d+%d+%d' % (w, h, x, y))
  16.  
  17. def main():
  18.    servicios = tk.Tk()
  19.    servicios.title(" Servicios.")
  20.    centrarVentana(servicios)
  21.  
  22.    # Mensajes(label)
  23.    mensaje_mes = tk.Label(servicios, text="Mes", font=("Vardana", 12))
  24.    mensaje_mes.place(x=15, y=10)
  25.  
  26.    # Llenar el Combobox de los meses.
  27.    meses = Funciones.meses_()
  28.  
  29.    # Llenar combo MES y seleccionar el MES actual.
  30.    combo_mes = ttk.Combobox(servicios, state="readonly",
  31.        width=9, font=("Verdana", 11), values=meses[0])
  32.    combo_mes.place(x=60, y=10)
  33.    combo_mes.bind("<<ComboboxSelected>>")    
  34.  
  35.    combo_mes.set(meses[1])
  36.  
  37.    mensaje_anio = tk.Label(servicios, text="Año", font=("Vardana", 12))
  38.    mensaje_anio.place(x=15, y=50)
  39.  
  40.    combo_mes.set(meses[1])    
  41.  
  42.  
  43.    año = Funciones.anios_()
  44.  
  45.    # Llenar combo AÑO y seleccionar el AÑO actual.
  46.    combo_anio = ttk.Combobox(servicios, state="readonly",
  47.        width=9, font=("Verdana", 11), values=año[0])
  48.    combo_anio.place(x=60, y=50)
  49.    combo_anio.bind("<<ComboboxSelected>>")    
  50.  
  51.    combo_anio.set(año[1])
  52.  
  53.    # Frame para contener los botones
  54.    caja_entrys = tk.Frame(servicios)
  55.    caja_entrys.place(x=5, y=85)
  56.    caja_entrys.config(width="416", height="213")
  57.    caja_entrys.config(bd=5)
  58.    caja_entrys.config(relief="ridge")
  59.  
  60.    mensaje_epe = tk.Label(caja_entrys,
  61.             text="E.P.E - Factura......$                                Kwh....$",
  62.             font=("Vardana", 12))
  63.    mensaje_epe.place(x=5, y=10)
  64.  
  65.    mensaje_gas = tk.Label(caja_entrys,
  66.             text="Gas - Factura.........$                                M3......$",
  67.             font=("Vardana", 12))
  68.    mensaje_gas.place(x=5, y=50)
  69.  
  70.    mensaje_comuna = tk.Label(caja_entrys, text="Comuna..................$",
  71.            font=("Vardana", 12))
  72.    mensaje_comuna.place(x=5, y=90)
  73.  
  74.    mensaje_ceodal = tk.Label(caja_entrys, text="Ceodal....................$",
  75.            font=("Vardana", 12))
  76.    mensaje_ceodal.place(x=5, y=130)
  77.  
  78.    mensaje_cable = tk.Label(caja_entrys, text="Cable Max..............$",
  79.            font=("Vardana", 12))
  80.    mensaje_cable.place(x=5, y=170)
  81.  
  82.    # Entradas(E.P.E-Factura)    
  83.    entrada_epe_monto = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  84.    entrada_epe_monto.place(x=155, y=10)
  85.  
  86.    # Entradas(E.P.E-Kwh)    
  87.    entrada_epe_kwh = tk.Entry(caja_entrys, font=("Vardana", 12), width=5)
  88.    entrada_epe_kwh.place(x=335, y=10)
  89.  
  90.    # Entrada(Gas- Factura)    
  91.    entrada_gas_monto = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  92.    entrada_gas_monto.place(x=155, y=50)
  93.  
  94.    # Entradas(Gas- M3)    
  95.    entrada_gas_M3 = tk.Entry(caja_entrys, font=("Vardana", 12), width=5)
  96.    entrada_gas_M3.place(x=335, y=50)
  97.  
  98.    # Entrada(Comuna)    
  99.    entrada_comuna = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  100.    entrada_comuna.place(x=155, y=90)
  101.  
  102.    # Entrada(Ceodal)    
  103.    entrada_ceodal = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  104.    entrada_ceodal.place(x=155, y=130)
  105.  
  106.    # Entrada(Cable)    
  107.    entrada_cable = tk.Entry(caja_entrys, font=("Vardana", 12), width=10)
  108.    entrada_cable.place(x=155, y=170)
  109.  
  110.    # Frame para contener los botones
  111.    caja_botones = tk.Frame(servicios)
  112.    caja_botones.place(x=5, y=305)
  113.    caja_botones.config(width="416", height="60")
  114.    caja_botones.config(bd=5)
  115.    caja_botones.config(relief="ridge")
  116.  
  117.    # Botón Agregar
  118.    texto = ''' Agregar movimiento,
  119. no olvide seleccionar la fecha correcta... '''
  120.    boton_agregar = ttk.Button(caja_botones, text="Agregar",
  121.              command=partial(Funciones.agregar, caja_botones))
  122.    boton_agregar.place(x=5, y=5, width=80, height=40)
  123.    hovertip = Hovertip(boton_agregar, texto)
  124.  
  125.    # Botón Estadisticas
  126.    boton_estad = ttk.Button(caja_botones, text="Estadisticas",
  127.              command=partial(Funciones.estadisticas))
  128.    boton_estad.place(x=95, y=5, width=80, height=40)
  129.    hovertip = Hovertip(boton_estad, ' Estadisticas de servicios ')
  130.  
  131.    # Botón Cerrar
  132.    boton_cerrar = ttk.Button(caja_botones, text="Cerrar",
  133.              command=servicios.destroy)
  134.    boton_cerrar.place(x=320, y=5, width=80, height=40)
  135.    hovertip = Hovertip(boton_cerrar, ' Cerrar aplicación. ')
  136.  
  137.    servicios.mainloop()
  138.  
  139.  
  140. if __name__ == '__main__':
  141.    main()
  142.  

Código
  1. from datetime import datetime
  2.  
  3. def meses_():
  4.    meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio",
  5.             "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
  6.  
  7.    now = datetime.now()
  8.    mes = now.month
  9.    actual = meses[mes-1]
  10.  
  11.    return meses, actual
  12.  
  13. def anios_():
  14.    años = ["2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017",
  15.             "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025",
  16.             "2026", "2027", "2028", "2029", "2030", "2031", "2032", "2033"]
  17.  
  18.    now = datetime.now()
  19.    actual = now.year
  20.  
  21.    returnos, actual
  22.  
  23. def agregar(caja_botones):
  24.    caja_botones.place_forget()
  25.  
  26. def estadisticas():
  27.    print("estadisticas")
  28.  
Desde ya muchas gracias y que tengan todos un lindo jueves...
Slds. Daniel ☕☕☕
9  Programación / Scripting / Seleccionar palabras con espacios en widget TEXT en tkinter… en: 16 Octubre 2022, 20:11 pm
Hola gente, ¿cómo están?, demasiado tiempo practicando y no logro
encontrar la solución.

Dejo algunos ejemplos:
«from collections import Counter»
Si arrastro el mouse del inicio al final de «from» ok
Si arrastro el mouse del inicio al final de «from collections» copia solamente «collections»
lo que necesito es que copie el total de lo seleccionado.-
En cuanto al «doble clic» no me hace falta, por lo menos en este programa…
Lo que ocurre también es que seleccionar todo lo tengo implementando
correctamente, pero hay texto que debo extraer solo una parte.-

Código
  1. def copiar_al_portapapeles(t1, muestra_codigo):
  2.    inicio = muestra_codigo.index("insert-1c wordstart")
  3.    final  = muestra_codigo.index("insert -1c wordend")
  4.    texto = muestra_codigo.get(inicio, final)
  5.    print(texto)
  6.    clib.copy(texto)
  7.  

Desde ya gracias por el tiempo que le dediquen, gracias.-
Slds. Daniel ☕☕☕
10  Programación / Scripting / Obtener el número mayor con comprensión de listas en Python. en: 8 Octubre 2022, 22:06 pm
Hola gente, ¿cómo están?, es demasiado lo que estoy renegando por eso los consulto, ¿es posible obtener el número mayor de una lista sin utilizar el método MAX con comprensión de listas?.-
Dejo lo que tengo hecho...


#El mayor con comprensión de listas y método MAX
Código
  1. a = [[10, 13, 454, 66, 44]]
  2. b = [max(p) for p in a]
  3. print(b)


Código
  1. lista = [10, 13, 454, 66, 44]
  2. el_mayor=0
  3. for a in lista:
  4.    if a > el_mayor:
  5.        el_mayor = a
  6.  
  7. print(el_mayor)


¿cómo inserto el condicional?

Código
  1. lista = [[10, 13, 454, 66, 44]]
  2. mayor = [lis for lis in lista --> if....]
  3.  
  4. print(mayor)
  5.  

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