|
362
|
Programación / Scripting / Re: ¿Recomendáis usar POO con tkinter?
|
en: 17 Octubre 2017, 23:21 pm
|
en tu pregunta está la respuesta, es muy subjetivo, algunos te dirán que el paradigma de objetos es lo mejor y otros que sobra, en lo personal, python trabaja todo como objetos así que no veo porque no usarlos, tampoco hace falta la redundancia.
|
|
|
363
|
Programación / Scripting / Re: Validar ingreso de datos con Python
|
en: 17 Octubre 2017, 23:17 pm
|
lo primero que te aclaro es que python permite trabajar de distintas formas y salvo algunas excepciones no hay una mejor que otra, lo que si se sabe decir es que un script es a la vieja escuela o la nueva. usando básicamente tu código lo modifique para que veas otra forma: #-*-coding: utf -8 -*- import os,sys class Calculadora: def __init__(self): self.elecciones= { "1":self.sum, "2":self.res, "3":self.div, "4":self.mul, "5":self.salir, } def menu(self): print("=" * 25) #así sé con exactitud cuantos caracteres quiero imprimir print(" 1 - Suma\n 2 - Resta\n 3 - División\n 4 - Multiplicación\n 5 - Salir\n ") def ejecutar(self): while True: self.menu() eleccion= input("elige una opción: ") accion = self.elecciones.get(eleccion) if accion: accion() else: print("{} no es una elección válida".format(eleccion)) def validar(self): global num1,num2 con1=True while con1: try: num1= float(input("Ingrese el primer número: ")) con1= False except ValueError: print("El primer valor deber ser un número") con2=True while con2: try: num2= float(input("Ingrese el segundo número: ")) con2= False except ValueError: print("El segundo valor deber ser un número") def sum(self): print("Eligió SUMAR") self.validar() res=num1+num2 print("{} + {} = {}".format(num1,num2,res)) def res(self): print("Eligió RESTAR") self.validar() res=num1 - num2 print("{} - {} = {}".format(num1,num2,res)) def div(self): print("Eligió DIVIDIR") self.validar() if num1 == 0 or num2 == 0 : print("No se puede divividr por 0") else: res=num1 / num2 print("{} / {} = {}".format(num1,num2,res)) def mul(self): print("Eligió MULTIPLICAR") self.validar() res=num1 * num2 print("{} * {} = {}".format(num1,num2,res)) def salir(self): # ya que estás usando os agrego sys os.system("cls") msg=" Programa terminado " print(msg.center(28,"*")) os.system("pause") sys.exit(0) calc=Calculadora() calc.ejecutar()
me parece muy bien que uses distintas funciones para cada cosa(agregué algunas), como dicen es mejor dividir un problema en partes más pequeñas. En cuanto a tantos if o elif no es que no se pueda o deba usarlos, pero para eso están los diccionarios, que vienen a ser como los select o switch de otros lenguajes(por si programas en alguno de ellos). Después como ya te dijo engel lex podés usar para verificaciones distintas formas dependiendo de lo que busques, para algo más complejo sin lugar a dudas usar re, en este caso es simple así que no es tan necesario. Saludos.
|
|
|
364
|
Programación / Scripting / Re: .py a .apk
|
en: 15 Octubre 2017, 18:00 pm
|
para eso tenés que usar kivy, es la librería que permite hacer aplicaciones o juegos en python, claro está que esto es solo si querés usar python, sino vienen otras herramientas más especificas para android, android studio, eclipse, etc.
|
|
|
365
|
Programación / Scripting / Re: [Python 3.6] Duda con cursor en manejo de ficheros
|
en: 12 Octubre 2017, 04:51 am
|
estás tratando de hacer algo muy improductivo, aunque si persites en ello te conviene buscar sobre el uso de la librería curses para tu propósito, ahora si quieres hacer algo mejor y que sea productivo hasta con tkinter te quedará mejor.
Edito: si es para windows hay que implementar UniCurses, ya que no vi que haya curses para windows
|
|
|
366
|
Programación / Scripting / Re: [batch] [aporte] batch archive security v0.3
|
en: 7 Octubre 2017, 04:24 am
|
no caracteres, cadenas. "deutsch" "Fortfahren?" "Einige Include Dateien konnten nicht erstellt werden." "Falsches Passwort." "existiert bereits im aktuellen A" "Ein unbekannter Fehler ist aufgetreten. Das Programm wird beendet."
y varias más, no voy a ponerlas todas, en cualquier caso si debugueas con ollydbg o ida podrás verlas.
|
|
|
369
|
Programación / Scripting / Re: Python y GUI
|
en: 7 Octubre 2017, 01:19 am
|
hay un subforo de scripting,para tus futuras preguntas de python.Si querés algo para novatos o facil, tkimter, pero lejos lo mejor para entornos profesionales es pyqt5 ,lleva más tiempo aprenderla a usar muy bien
|
|
|
370
|
Programación / Scripting / Aporte python(preguntan muchas veces esto)
|
en: 4 Octubre 2017, 13:54 pm
|
Varias veces vi que preguntan como apretar un botón de otra aplicación,etc. Mi respuesta normalmente es con apis y espero que muestren un código para intentar ayudarlos.Elektro normalmente pone el código en .net así que hoy que estoy al vicio pondré uno básico en python, para que vean que es más fácil que jugar con tierra. Aproveché un programita que subieron como concurso de ingeniería inversa, que tiene dos botonoes y un control de texto. El texto muestra "*" cuando ingresas la clave y el botón de verificación se deshabilita al pasar el mouse sobre él. Ya hay tutoriales de como resolverlo por si alguien quiere verlo: http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1601-1700/1642-Crackme%20%20Enigma%20Group%20-%20App%20Challenge%202%20por%20QwErTy.pdfEs básico para los que recién se inician.No voy a hacer otro porque solo quiero mostrar como hacer cosas con python. El enlace al crackme es: https://www.mediafire.com/file/dw95rd6j0ytl268/App2.rarpor supuesto que muchos no lo van a querer bajar, por miedo y desconocimiento, así que vean como pueden probar el script en otro programa. A los que lo bajen, ejecutan el crackme(prueben para ver que hace si quieren),ejecutan el script y listo! A los que lo bajen será más fácil ver que hago: #-*- coding:utf -8 -*- import win32gui,win32con import time def click(identificador): #para simular el click del mouse win32gui.SendMessage(identificador, win32con.WM_LBUTTONDOWN, 0, 0) #señal de presionar el botón win32gui.SendMessage(identificador, win32con.WM_LBUTTONUP, 0, 0) #señal de soltar el botón nombre = "Enigma Group - App Challenge 2" #acá va el título de la ventana ventana = win32gui.FindWindow(None,nombre) #asigno a la variable ventana un valor entero que sería el identificador if ventana != 0: #si el valor es distinto de 0 es que la encontró print("Encontrada") win32gui.SetForegroundWindow(ventana) #traigo la ventana al frente para ver que hace,aunque no es necesario boton1 = win32gui.FindWindowEx(ventana,None,None,"Submit") #el identificador del botón submit boton2 = win32gui.FindWindowEx(ventana,None,None,"Cancel") #el identificador del botón cancel texto= win32gui.FindWindowEx(ventana,None,"ThunderRT6TextBox","") # lo bueno de conocer otros lenguajes y sus clases ThunderRT6TextBox texto1= win32gui.FindWindowEx(ventana,None,None,"") #no tiene nada como titulo y se obtiene igual el identificador clave="topgun" time.sleep(2) #espero para poner la clave, porque quiero nada más win32gui.SendMessage(texto1,win32con.EM_SETPASSWORDCHAR,None,3) #cambio el "*" por su caracter win32gui.SendMessage(texto, win32con.WM_SETTEXT, 8, clave) #envío la clave al textbox, también podría usar texto1 time.sleep(2) #otra espera porque si click(boton1) #aunque no este activado ejecuta las sentencias igual time.sleep(5) #ya sabemos click(boton2) #cerramos la aplicación else: print("No encontrada")
Como ven una real huevada.Saludos
|
|
|
|
|
|
|