Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - tincopasan

#361
un error de interpretación de un niño de 7 años es eso, un error, lo peor son los comentaris de ******** más grandes que ni tienen ni tendrán la capacidad de ver de una forma diferente, revisen post donde coemtan cosas que ni chicos de 6 años inetrpretarían mal, que fácil es apalear a un niño y sus distintas formas de aprender a entender las boludeces que les piden.
#362
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
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:

Código (python) [Seleccionar]

#-*-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
Scripting / Re: .py a .apk
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
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
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.
#367
disculpa, no me interezan ninguna de las dos, batch me parece muy improductivo, simplemente estoy analizando el exe y como tiene cadenas en alemán quiero ver de donde salen.
#368
¿con qué hiciste el exe?
#369
Scripting / Re: Python y GUI
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
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.pdf
Es 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.rar
por 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:
Código (python) [Seleccionar]

#-*- 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