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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: 1 [2] 3
11  Programación / Scripting / Cosas interesante de f-strings. en: 4 Octubre 2022, 15:35 pm
Hola gente, un gran saludo para todos, dejo el siguiente código
como un aporte, ya que me costó mucho, pero mucho lograr
esto y al momento de iniciar un post para consultarlos(no sabía
como llamar a la función "elección") apareció la solución.-

Código
  1. def eleccion(mes):
  2.    print("\nOpto por...: ", mes.capitalize())
  3.  
  4.  
  5. meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio',
  6.         'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']
  7.  
  8.  
  9. mes = input('\nIngrese el mes a consultar...: ')
  10. f"{eleccion(mes) if mes.capitalize() in meses else print('Ingreso incorrecto')}"
  11.  

Por favor, si el moderador considera que no aporta nada pueden
borrar este post y lo comprenderé perfectamente y de no ser
así me gustaría que alguien ponga una forma alternativa para lograr
lo mismo (con menos líneas de código, claro jajajajaja), gracias...

Slds. Daniel ☕☕☕
12  Programación / Scripting / Método duplicado en herencia con python.- en: 28 Septiembre 2022, 15:51 pm
Hola gente ¿como estan?.
Una simple pregunta ¿puedo  hacer que de los 2 metodos
hacer lo mismo con solo uno?.-
Bueno es todo, espero que no lo borren porque me esta
costando con la POO y estas que debe ser una cosa simple
para Uds. para mi es mucho, gracias...

Código
  1. class Automovil():
  2.    def __init__(self, ruedas, puertas):
  3.        self.ruedas = ruedas
  4.        self.puertas = puertas
  5.  
  6.    def mostrar(self):
  7.        print(f"ruedas...: {a.ruedas}\npuertas..: {a.puertas}")    
  8.  
  9.  
  10. class Audi(Automovil):
  11.    def __init__(self, ruedas, puertas, color, modelo):
  12.        super().__init__(ruedas, puertas)
  13.        self.color = color
  14.        self.modelo = modelo
  15.  
  16.    def mostrar(self):
  17.        print(f"\nruedas...: {b.ruedas}\npuertas..: {b.puertas}\ncolor....: {b.color}\nmodelo...: {b.modelo}")
  18.  
  19.  
  20. a = Automovil(ruedas=4, puertas=5)
  21. a.mostrar()
  22. b = Audi(ruedas=4, puertas=4, color='azul', modelo=2020)
  23. b.mostrar()


Slds. Daniel ☕☕☕
13  Programación / Scripting / Dudas con herencia en python. en: 23 Septiembre 2022, 17:45 pm
Hola, gente ¿ como estan ?.-
desearia que me den una mano con esto y comprendan que hace
escasos 3 dias que comence con la POO en python.-
El caso es que estoy con herencia y lo unico que debo cambiar
es esta linea:
Código
  1. self.total_compra = input("Ingrese total de compra......: ")
por esta
Código
  1. self.total_compra = input("Ingrese total de venta......: ")

La primera se refiere a un proovedor y la segunda a un cliente,
alguien me podria decir como lo debo codificar?, gracias

Código
  1. class SuperMercado:
  2.    def __init__(self, nombre_completo, ciudad, total_compra, condiciones):
  3.        self.nombre_completo = nombre_completo
  4.        self.ciudad = ciudad
  5.        self.total_compra = total_compra
  6.        self.condiciones = condiciones
  7.  
  8.    def ingreso(self):
  9.        self.nombre_completo = input("Ingrese el nombre completo...: ")
  10.        self.ciudad = input("Ingrese ciudad de residencia.: ")
  11.        self.total_compra = input("Ingrese total de compra......: ")
  12.        self.condiciones = input("Ingrese condiciones de pago..: ")
  13.  
  14.    def mostrar(self):
  15.        print(f'''
  16. Nombre completo...: {self.nombre_completo}
  17. Ciudad............: {self.ciudad}
  18. Total compra......: {self.total_compra}
  19. Condiciones.......: {self.condiciones}        
  20.              ''')
  21.  
  22. class clientes(SuperMercado):
  23.    pass
  24.  
  25.  
  26.  
  27. """
  28. proveedor = SuperMercado("", "", 0.00, "")
  29. proveedor.ingreso()
  30. proveedor.mostrar()
  31. """
  32. cliente = clientes("", "", 0.00, "")
  33. cliente.ingreso()
  34. cliente.mostrar()
  35.  

Slds. Daniel ☕☕☕
14  Programación / Scripting / Relación entre píxeles y fila/columnas en widget TEXT. en: 10 Septiembre 2022, 20:51 pm
Hola gente, ¿cómo están? Necesitaría saber si se puede obtener
alguna relación entre píxeles y fila/columnas.-
Para ejemplificar, tengo un widget TEXT y necesito relacionar
el contenido en fila/columnas para establecer las dimensiones
de este y la ventana.-

Bueno, es todo, pase bastante tiempo buscando y nada y eso
que tengo bastante documentación pero nada.-

Código
  1. from tkinter import ttk
  2. import tkinter as tk
  3. import tkinter.scrolledtext as scrolledtext
  4. import codecs
  5.  
  6. def centrar_ventana(root):
  7.    w = 500
  8.    h = 500
  9.  
  10.    ws = root.winfo_screenwidth()
  11.    hs = root.winfo_screenheight()
  12.    x = (ws/2) - (w/2)
  13.    y = (hs/2) - (h/2)
  14.    root.geometry('%dx%d+%d+%d' % (w, h, x, y))
  15.  
  16.  
  17. #Función para pasar de los métodos al correspondiente código.
  18. def boton_codigo(lista_ayuda_secundaria, segunda_Ayuda, lista_codigo, ventana):
  19.    if len(segunda_Ayuda.curselection())!=0:
  20.        listaCodigo = []
  21.        codigoLista = "".join(lista_codigo)
  22.        cont=0
  23.        with codecs.open('codigos.txt', 'r', encoding='utf-8') as archivo:
  24.            for linea in archivo:
  25.                lineaTmp = linea.rstrip('\n,\r')
  26.                tmpLinea = lineaTmp.split(',')
  27.                codigoCodigos = lineaTmp[:4]
  28.                if codigoLista == codigoCodigos:
  29.                    cont += 1
  30.                    listaCodigo.append(tmpLinea[1])
  31.                elif codigoLista != codigoCodigos and cont == 1:
  32.                    break
  33.    else:
  34.        messagebox.showinfo(message="Debe seleccionar un item.", title="!!! Atención !!!")
  35.  
  36.  
  37.    t1 = tk.Toplevel(ventana)
  38.    t1.title("Códigos")
  39.    t1.focus_set()
  40.    centrar_ventana(t1)
  41.    t1.grab_set()
  42.    t1.transient(master=ventana)
  43.  
  44.    muestra_codigo = scrolledtext.ScrolledText(t1, width=58, height = cont+1)
  45.    muestra_codigo.place(x=10, y=10)
  46.  
  47.    for lista in listaCodigo:
  48.        muestra_codigo.insert(tk.INSERT, lista)
  49.  
  50.    muestra_codigo.config(state= tk.DISABLED)
  51.  
  52.    t1.wait_window(t1)

Slds. Daniel ☕☕☕
15  Programación / Scripting / Consulta sobre listbox en tkinter.(ayuda personalizada) en: 5 Septiembre 2022, 22:35 pm


Hola a todos, ¿cómo están? Tengo 2 preguntas para hacerles:
Una lista como esta:

0100,archivos
0101,ASCII
0102,bucles
0103,cadenas
0104,condicionales
0105,datos
0106,diccionarios
0107,fechas
0108,listas
0109,poo
0110,tuplas
0111,búsqueda binaria
0112,validar
0113,errores
0114,funciones
0115,gráfica
0116,abecedario

¿Es necesario poner todas estas líneas para obtener la cadena seleccionada
del listbox o hay algún método que ya viene para esto?

Código
  1. def boton_ayuda(primer_Ayuda, inicio_ayuda):
  2.    if len(primer_Ayuda.curselection())!=0:
  3.        items = primer_Ayuda.get(primer_Ayuda.curselection()[0])
  4.        codigo = 0
  5.        for inicio in inicio_ayuda:
  6.            if inicio[1] == items:
  7.                codigo = inicio[0]
  8.                break
  9.        pasar_ayuda_secundaria(codigo)
  10.    else:
  11.        messagebox.showinfo(message="Debe seleccionar un item.", title="!!! Atención !!!")
  12.  

La segunda:
Como no tengo experiencia con compresión de lista, pregunto:
¿puedo insertar un condicional if para que por ej. si él .txt contiene
3000 líneas/filas agregue tan solo las que contengan el código 0111?

Código
  1. def pasar_ayuda_secundaria(codigo):
  2.    with codecs.open('segundaAyuda.txt', 'r', encoding='utf-8') as archivo:
  3.        segunda_ayuda=[linea.strip().split(",") for linea in archivo]
  4.  
           

Desde ya muchas gracias.
Slds. Daniel ☕☕☕
16  Programación / Scripting / Bloc de notas con corrector ortográfico propio. en: 30 Agosto 2022, 17:47 pm
Estoy consiente que esto no tiene mucho que ver con la esencia del foro,
pero necesito de esas mentes brillantes y criteriosas de este para darle
forma a mi proyecto de "bloc de notas" con corrector ortográfico.-
Lo que llevo hecho:
1): Si la palabra está bien escrita(está en el diccionario, todo ok)
2): De no ser así busco una a una las letras(con igual longitud) y si hay 1 o 2
      diferencias las incluyo para mostrar posibles palabras correctas.-
Hasta hay está casi correcto, casi porque por momentos aparecen
20 o más coincidencia y no se pueden ni mostrar.-
Pero las dudas me las da las hache al comienzo y en el interior de las palabras.-
¿alguna idea?.-

Mi idea con las haches:
Al inicio: "hirvieron", si la palabra a corregir es "irvieron" fácil, busco palabras en el
diccionario que tengan una letra más y comparo "irvieron" con "irvieron"
y la agrego con un error, pero que pasa si la palabra a corregir es "irbieron"
(lo mando a la primaria, jajajajaj).-
Con una hache intermedia "albahaca" comparo "alba" y "aca" y si coinciden la agrego.-

Les dejo lo que llevo hecho, si alguien desea ayudarme muchas gracias...
Aclaro que tengo conocimiento de la existencia de las bibliotecas "autocorrect"
"pyspellchecker" "textblob" es para practicar e ir aprendiendo el lenguaje más
en profundidad.-

Código
  1. import codecs
  2.  
  3. def main():
  4.    lemario = leer_lemario()
  5.    palabra = True
  6.    while palabra:
  7.        palabra = input("Ingrese la palabra a corregir...: ")
  8.        if buscar_palabra(palabra, lemario) == True:
  9.            print(f'\nLa palabra "{palabra}" existe en el diccionario y es correcta.\n')
  10.        else:
  11.           parecidos = buscar_parecidos(palabra, lemario)
  12.           if len(parecidos) >= 1 and len(parecidos) <= 10:
  13.                print(f'Palabras parecidas:\n{parecidos}\n')
  14.           else:
  15.               print("Posible faltante de hache...")
  16.  
  17.  
  18. def leer_lemario():
  19.    lemario = []
  20.    with codecs.open('Ortografia.txt', 'r', encoding='utf-8') as archivo:
  21.        for linea in archivo:
  22.            linea = linea.strip()
  23.            if len(linea) > 0:
  24.                lemario.append(linea)
  25.    return lemario
  26.  
  27.  
  28. def buscar_palabra(palabra, lemario):
  29.    for lema in lemario:
  30.        if palabra == lema:
  31.            return True
  32.    return False
  33.  
  34.  
  35. def buscar_parecidos(palabra, lemario):
  36.    parecidos = []
  37.    for lema in lemario:
  38.        if len(lema) == len(palabra) and letras_distintas(lema, palabra) <= 2:
  39.            parecidos.append(lema)
  40.    return parecidos
  41.  
  42.  
  43. def letras_distintas(palabra, lema):
  44.    errores = 0
  45.    for i in range(len(palabra)):
  46.        if palabra[i] != lema[i]:
  47.            errores = errores + 1
  48.    return errores
  49.  
  50.  
  51. main()


Slds. Daniel ☕☕☕
17  Programación / Scripting / Obtener palabra a partir de la última letra(widget TEXT) en: 27 Agosto 2022, 20:51 pm
Hola gente, ¿cómo están?.
Voy a tratar de ser práctico, estoy haciendo una especie de bloc de notas
con la particularidad que tiene un corrector ortográfico y para ello decidí que
al pulsar la tecla <space> se corrija la palabra que se acaba de escribir.-
El caso es que de esta manera obtengo la última letra¿como hacer para
retroceder y obtener la palabra completa?.-
Si la respuesta es regresando con las coordenadas una a una hasta que
encuentre un espacio o la columna sea cero, ya me imagino como hacerlo
la consulta es ¿hay otra manera más práctica?

Código
  1. keyboard.on_press_key("space", partial(corregir.comienzo, editorTexto, ortografia))
  2.  
  3. def comienzo(editorTexto, ortografia, event):
  4.    lineaColumna = editorTexto.index(tk.INSERT)
  5.    print(lineaColumna)

Citar
"la consulta"
a = 1.11
t = 1.10
l = 1.9
u = 1.8
[...]

Slds. Daniel ☕☕☕
18  Programación / Scripting / Ordenar lista con sort y key en python. en: 24 Agosto 2022, 15:17 pm
Hola, gente, ¿cómo están?.-
Le expongo lo que deseo hacer y evidentemente no logro concretar,
estoy haciendo mi propio traductor inglés/español y quisiera ordenar
él .txt que contiene las 1300 palabras, pero los pocos ejemplos que
encuentro con key son sobre diccionarios, concretamente quisiera
ordenar todas las palabras teniendo en cuenta solamente las palabras
en inglés...

Código
  1. import codecs
  2.  
  3. palabras = []
  4. with codecs.open('Traductor.txt', 'r', encoding='utf-8') as archivo:
  5.    for tmpLinea in archivo:
  6.        tmpLinea[:].strip()
  7.        linea = tmpLinea.split(',')
  8.        palabras.append(linea)
  9.  
  10. palabras.sort()
  11.  
  12. with codecs.open('Traductor.txt', 'w', encoding='utf-8') as archivo:
  13.    for item in palabras:
  14.        final = f"{item[0]},{item[1]}"
  15.        archivo.write(final)



Citar
ability,capacidad
able,poder
abortion,aborto
about,acerca de
above,encima
abstract,resumen abstracto
accept,aceptar
access,acceso
accord,acuerdo
account,cuenta
accuse,acusar
achieve,lograr
across,a través de
act,acto
action,acción
activity,actividad
actually,actualmente

Desde ya muchas gracias por la ayuda.
Slds. Daniel ☕☕☕
19  Programación / Scripting / Posicionar ventana hija siempre relativa a la ventana padre.- en: 16 Agosto 2022, 20:56 pm
Hola, ¿cómo están?, buen día para todos.
Les cuento lo que me ocurre, estoy haciendo un editor de texto/bloc de notas
y como es obvio necesito mostrar una ventana hija para realizar búsquedas,
el inconveniente lo tengo aquí, ¿cómo hago para que aparezca(como
aparece en el recorte de pantalla) siempre de la misma manera sin tener en
cuenta el lugar al cual se haya movido la ventana principal?.-

Es todo, desde ya muchas gracias por el tiempo que le dedique, yo seguiré
buscando y practicando.-

Código
  1. import tkinter as tk
  2. from tkinter import ttk
  3. from functools import partial
  4. from tkinter import  *
  5.  
  6.  
  7. def centrarVentana(root):
  8.    w = 500
  9.    h = 300
  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.  
  18. def otra(ventana):
  19.    t1 = Toplevel(ventana)
  20.  
  21.    t1.geometry('400x200')
  22.    t1.title("Ventana hija")
  23.  
  24.    t1.focus_set()
  25.  
  26.    t1.grab_set()
  27.  
  28.    t1.transient(master=ventana)
  29.  
  30.    t1.focus()
  31.  
  32.    t1.wait_window(t1)
  33.  
  34.  
  35. def imprimir_informacion(ventana):
  36.    ventana.update()
  37.    altura = ventana.winfo_reqheight()
  38.    anchura = ventana.winfo_reqwidth()
  39.    altura_pantalla = ventana.winfo_screenheight()
  40.    anchura_pantalla = ventana.winfo_screenwidth()
  41.    print(f"Altura: {altura}\nAnchura: {anchura}\nAltura de pantalla: {altura_pantalla}\nAnchura de pantalla: {anchura_pantalla}")
  42.  
  43.  
  44.  
  45.  
  46. def main():
  47.    ventana = tk.Tk()
  48.    ventana.title("Posicionar ventana")
  49.    centrarVentana(ventana)
  50.  
  51.  
  52.    boton = ttk.Button(ventana, text="Información", command=partial(imprimir_informacion, ventana))
  53.    boton.place(x=150, y=150)
  54.  
  55.  
  56.    boton = ttk.Button(ventana, text="Otra ventana", command=partial(otra, ventana))
  57.    boton.place(x=250, y=150)
  58.  
  59.    ventana.mainloop()
  60.  
  61. if __name__ == '__main__':
  62.    main()

https://ibb.co/0DF0fkD

Slds. Daniel ☕☕☕
20  Programación / Scripting / Capturar un evento antes que ocurra, tkinter.- en: 13 Agosto 2022, 15:33 pm
Hola gente, ¿cómo están?.
Créanme que como siempre antes de pedir ayuda busco práctico
y como en este caso cuando tengo que tirar la toalla recurro a Uds.
La consulta concreta es ¿hay alguna manera de capturar el evento
antes que se efectivice?, o ¿tiene esto otra solución?.-
En apariencia funciona, lo que ocurre es que cuando se ejecuta
la excepción el IDE se queda como en un bucle infinito y no se deja
cerrar.
Bueno, es todo, desde ya gracias, muchas gracias por el tiempo.

Código:
#-------------------------------------------------------------------------------
# Name:        módulo1
# Purpose:     Copiar/pegar
#
# Author:      Daniel
#
# Created:     11/08/2022
# Copyright:   (c) Daniel 2022
# Licence:     <your licence>
#-------------------------------------------------------------------------------
import tkinter as tk
from tkinter import ttk
from functools import partial
import funciones

def rehacer(text, temp, event):
    try:
        text.edit_undo()
    except:
        text.insert(tk.INSERT, temp)

    return


def main():

    root = tk.Tk()

    text = tk.Text(root,width = 55,height = 10, undo=True)
    text.pack()

    temp = """ La inteligencia no se mide por el número
 de palabras que sabes pronunciar,
 sino por aquellas que no dices para no lastimar!!!
 """

    text.insert(tk.INSERT, temp)

    root.bind('<Control-z>', partial(rehacer, text, temp))
   
    root.mainloop()


if __name__ == '__main__':
    main()

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