|
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.- def eleccion(mes): print("\nOpto por...: ", mes.capitalize()) meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'] mes = input('\nIngrese el mes a consultar...: ') f"{eleccion(mes) if mes.capitalize() in meses else print('Ingreso incorrecto')}"
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... class Automovil(): def __init__(self, ruedas, puertas): self.ruedas = ruedas self.puertas = puertas def mostrar(self): print(f"ruedas...: {a.ruedas}\npuertas..: {a.puertas}") class Audi(Automovil): def __init__(self, ruedas, puertas, color, modelo): super().__init__(ruedas, puertas) self.color = color self.modelo = modelo def mostrar(self): print(f"\nruedas...: {b.ruedas}\npuertas..: {b.puertas}\ncolor....: {b.color}\nmodelo...: {b.modelo}") a = Automovil(ruedas=4, puertas=5) a.mostrar() b = Audi(ruedas=4, puertas=4, color='azul', modelo=2020) 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: self.total_compra = input("Ingrese total de compra......: ")
por esta 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 class SuperMercado: def __init__(self, nombre_completo, ciudad, total_compra, condiciones): self.nombre_completo = nombre_completo self.ciudad = ciudad self.total_compra = total_compra self.condiciones = condiciones def ingreso(self): self.nombre_completo = input("Ingrese el nombre completo...: ") self.ciudad = input("Ingrese ciudad de residencia.: ") self.total_compra = input("Ingrese total de compra......: ") self.condiciones = input("Ingrese condiciones de pago..: ") def mostrar(self): print(f''' Nombre completo...: {self.nombre_completo} Ciudad............: {self.ciudad} Total compra......: {self.total_compra} Condiciones.......: {self.condiciones} ''') class clientes(SuperMercado): pass """ proveedor = SuperMercado("", "", 0.00, "") proveedor.ingreso() proveedor.mostrar() """ cliente = clientes("", "", 0.00, "") cliente.ingreso() cliente.mostrar()
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.- from tkinter import ttk import tkinter as tk import tkinter.scrolledtext as scrolledtext import codecs def centrar_ventana(root): w = 500 h = 500 ws = root.winfo_screenwidth() hs = root.winfo_screenheight() x = (ws/2) - (w/2) y = (hs/2) - (h/2) root.geometry('%dx%d+%d+%d' % (w, h, x, y)) #Función para pasar de los métodos al correspondiente código. def boton_codigo(lista_ayuda_secundaria, segunda_Ayuda, lista_codigo, ventana): if len(segunda_Ayuda.curselection())!=0: listaCodigo = [] codigoLista = "".join(lista_codigo) cont=0 with codecs.open('codigos.txt', 'r', encoding='utf-8') as archivo: for linea in archivo: lineaTmp = linea.rstrip('\n,\r') tmpLinea = lineaTmp.split(',') codigoCodigos = lineaTmp[:4] if codigoLista == codigoCodigos: cont += 1 listaCodigo.append(tmpLinea[1]) elif codigoLista != codigoCodigos and cont == 1: break else: messagebox.showinfo(message="Debe seleccionar un item.", title="!!! Atención !!!") t1 = tk.Toplevel(ventana) t1.title("Códigos") t1.focus_set() centrar_ventana(t1) t1.grab_set() t1.transient(master=ventana) muestra_codigo = scrolledtext.ScrolledText(t1, width=58, height = cont+1) muestra_codigo.place(x=10, y=10) for lista in listaCodigo: muestra_codigo.insert(tk.INSERT, lista) muestra_codigo.config(state= tk.DISABLED) 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? def boton_ayuda(primer_Ayuda, inicio_ayuda): if len(primer_Ayuda.curselection())!=0: items = primer_Ayuda.get(primer_Ayuda.curselection()[0]) codigo = 0 for inicio in inicio_ayuda: if inicio[1] == items: codigo = inicio[0] break pasar_ayuda_secundaria(codigo) else: messagebox.showinfo(message="Debe seleccionar un item.", title="!!! Atención !!!")
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? def pasar_ayuda_secundaria(codigo): with codecs.open('segundaAyuda.txt', 'r', encoding='utf-8') as archivo: segunda_ayuda=[linea.strip().split(",") for linea in archivo]
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.- import codecs def main(): lemario = leer_lemario() palabra = True while palabra: palabra = input("Ingrese la palabra a corregir...: ") if buscar_palabra(palabra, lemario) == True: print(f'\nLa palabra "{palabra}" existe en el diccionario y es correcta.\n') else: parecidos = buscar_parecidos(palabra, lemario) if len(parecidos) >= 1 and len(parecidos) <= 10: print(f'Palabras parecidas:\n{parecidos}\n') else: print("Posible faltante de hache...") def leer_lemario(): lemario = [] with codecs.open('Ortografia.txt', 'r', encoding='utf-8') as archivo: for linea in archivo: linea = linea.strip() if len(linea) > 0: lemario.append(linea) return lemario def buscar_palabra(palabra, lemario): for lema in lemario: if palabra == lema: return True return False def buscar_parecidos(palabra, lemario): parecidos = [] for lema in lemario: if len(lema) == len(palabra) and letras_distintas(lema, palabra) <= 2: parecidos.append(lema) return parecidos def letras_distintas(palabra, lema): errores = 0 for i in range(len(palabra)): if palabra[i] != lema[i]: errores = errores + 1 return errores 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? keyboard.on_press_key("space", partial(corregir.comienzo, editorTexto, ortografia)) def comienzo(editorTexto, ortografia, event): lineaColumna = editorTexto.index(tk.INSERT) print(lineaColumna)
"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... import codecs palabras = [] with codecs.open('Traductor.txt', 'r', encoding='utf-8') as archivo: for tmpLinea in archivo: tmpLinea[:].strip() linea = tmpLinea.split(',') palabras.append(linea) palabras.sort() with codecs.open('Traductor.txt', 'w', encoding='utf-8') as archivo: for item in palabras: final = f"{item[0]},{item[1]}" archivo.write(final)
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.- import tkinter as tk from tkinter import ttk from functools import partial from tkinter import * def centrarVentana(root): w = 500 h = 300 ws = root.winfo_screenwidth() hs = root.winfo_screenheight() x = (ws/2) - (w/2) y = (hs/2) - (h/2) root.geometry('%dx%d+%d+%d' % (w, h, x, y)) def otra(ventana): t1 = Toplevel(ventana) t1.geometry('400x200') t1.title("Ventana hija") t1.focus_set() t1.grab_set() t1.transient(master=ventana) t1.focus() t1.wait_window(t1) def imprimir_informacion(ventana): ventana.update() altura = ventana.winfo_reqheight() anchura = ventana.winfo_reqwidth() altura_pantalla = ventana.winfo_screenheight() anchura_pantalla = ventana.winfo_screenwidth() print(f"Altura: {altura}\nAnchura: {anchura}\nAltura de pantalla: {altura_pantalla}\nAnchura de pantalla: {anchura_pantalla}") def main(): ventana = tk.Tk() ventana.title("Posicionar ventana") centrarVentana(ventana) boton = ttk.Button(ventana, text="Información", command=partial(imprimir_informacion, ventana)) boton.place(x=150, y=150) boton = ttk.Button(ventana, text="Otra ventana", command=partial(otra, ventana)) boton.place(x=250, y=150) ventana.mainloop() if __name__ == '__main__': main()
https://ibb.co/0DF0fkDSlds. 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. #------------------------------------------------------------------------------- # 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 ☕☕☕
|
|
|
|
|
|
|