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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9
21  Programación / Scripting / Re: Click en boton selenium y python en: 7 Marzo 2023, 11:39 am
¿y cómo está declarado driver?
otra cosa el nombre de la clase es start-button y no Start
22  Programación / Scripting / Re: Objetos imprimen None en: 10 Enero 2023, 05:01 am
veamos:
1)que raro que usas return en casi todas las funciones y justo esa tiene un print. Es un error pésimo usar funciones sin que retornen algo, de ahí el none.
2) está bien que estás empezando con el lenguaje pero hay muchas cosas innecesarias, muchas faltantes y lo peor una mala lógica en lo que esperas lograr, por ejemplo imaginate que tenés que agregar miles de productos, no sirve declararlos como lo estás haciendo, para eso existe como mínimo los nodos y los árboles, aunque es otro tema anda viendo otra forma de hacer lo mismo.
3)tengo un ratito y como estoy aburrido cambiaré algunas cosas para ver si te sirven de guía:
Código
  1. class Producto:
  2.    contador_productos = 0
  3.    def __init__(self,nombre: str, precio: float):
  4.        self._id = Producto._generar_id()
  5.        self._nombre = nombre
  6.        self._precio = self._verificar_precio(precio)
  7.  
  8.    @staticmethod
  9.    def _generar_id():
  10.        Producto.contador_productos += 1
  11.        return Producto.contador_productos
  12.  
  13.    def __str__(self):
  14.        return f'{self._id},{self._nombre},{self._precio}'
  15.  
  16.    def _verificar_precio(self,precio):
  17.        return precio if precio > 0 else  -1
  18.  
  19. def main():
  20.    a = Producto("Mouse",1700)
  21.    b = Producto("Teclado",8000)
  22.    c = Producto("Monitor",15000)
  23.  
  24.    print(f"""{a._id},{a._nombre},{a._precio}
  25. {b._id},{b._nombre},{b._precio}
  26. {c._id},{c._nombre},{c._precio} \n""")
  27.  
  28.    print(f"{a}\n{b}\n{c}")
  29.  
  30. if __name__ == '__main__':
  31.    main()
  32.  


Donde obtenés lo mismo, agregando solo una función y eliminando varias,
obviamente los print del main son repetitivos ya que ambos obtienen lo mismo,
pero como dije antes es una muy mala idea la forma en que estas creando los objetos.
23  Programación / Scripting / Re: ayuda con esto en: 8 Enero 2023, 05:33 am
mirando rápido lo que está mal es no escapar los caracteres"\" la forma más simple de hacerlo es usar "/"
24  Programación / Scripting / Re: Primeros pasos con programación orientada a objetos(POO) en: 1 Enero 2023, 00:43 am
Hola Daniel:
                  vivo en un país gobernado por ladrones,corruptos e inútiles que mantienen vagos y favorecen a ladrones, han robado los cables de internet así que lo hago desde el télefono y es un asco, pero te diré:
1)tienes que pensar y entender bien cuando es mejor usar clases y cuando es innecesario
2)si entendiste lo básico es crear la clase y cada función es un método
3)en lo personal uso clases si hay herencia ,combinaciones,repeticiones, polimofirsmo, etc
4)te dejo una orientación, para que vayas viendo la aplicación en este caso.
5) obvio no haré todo, te lo dejo para que practiques y cualquier duda consultes.

Código
  1. #-*- coding: utf  -8 -*-
  2. import os
  3. class Archivo:
  4.    def __init__(self,nombre="Ortografia.txt"):
  5.        self.nombre = nombre
  6.        self.palabras= open(nombre).readlines() if os.path.exists(nombre) else []
  7.        self.palabras = [palabra.strip() for palabra in self.palabras]
  8.  
  9.    def buscar_palabra(self,buscada):
  10.        if buscada in self.palabras:
  11.            return True
  12.        return False
  13.  
  14. def principal():
  15.    lista = Archivo()
  16.    palabra = lista.buscar_palabra(input("Ingrese la palabra a corregir...: "))
  17.    if palabra:
  18.        print(f'La palabra  existe en el diccionario y es correcta.')
  19.  
  20.  
  21. if __name__ == "__main__":
  22.        principal()
  23.  
25  Programación / Scripting / Re: Generadores y yield en Python… en: 18 Diciembre 2022, 20:26 pm
Bueno, se ve que  hay muchos "programadores" que dan su opinión, así que no lo haré, pero te comento algo que ya vas descubriendo:
los generadores no son para ahorrar "tiempo", al contrario son más lerdos que la compresión de listas
por ejemplo, sirven para ahorrar memoria, en grandes cantidades dependiendo de la dsiponibilidad de ella sin el uso de generadores la memoria colapsa.
hay varias formas de crear generadores.
para medir el uso de memoria se usa uno de los métodos  que trae el módulo sys
además hay otras formas de medir el "tiempo" la que estás usando es la más básica que abunda en la red.
 
Código
  1. import sys
  2. dobles_lc   = [num **2 for num in range(1,5000)]
  3. dobles_ge = (num **2 for num in range(1,5000))
  4.  
  5. print(sys.getsizeof(dobles_lc))
  6. print(sys.getsizeof(dobles_ge))
  7.  

En ese ejemplo creo dos "listas" una con por compresión la primera y la segunda con generadores después imprimo la memoria que ocupa cada una y ahí verás la diferencia que ocupan.  Aumenta el tamaño y seguí comparando. Espero que te oriente al uso real de los generadores
26  Informática / Software / Re: Abrir archivos vce o pasarlos a PDF en: 8 Diciembre 2022, 21:43 pm
tendrías que poner un enlace al archivo, sino no hay forma de saber si se puede o no.
27  Seguridad Informática / Análisis y Diseño de Malware / Re: 4n4lDetector v1.8 en: 7 Diciembre 2022, 05:57 am
Lo estuve mirando:
1)Me parecen muchas líneas para el Entry point, con las 3 primeras sobran
2)  Quizá poner los offset de las direcciones
3)Dentro de las opciones no figura para aumentar el tamaño de fuente o no lo vi, solo los colores.
4) Sé que a los "programadores" les gustan las aplicaciones mononeuronales en inglés, pero hay personas que también disfrutan del español, opción que  no existe.
28  Foros Generales / Sugerencias y dudas sobre el Foro / Re: ¿Por que me han borrado la noticia? en: 28 Noviembre 2022, 00:42 am
porque como siempre el foro esta a "criterio" de los moderadores, y como ellos siempre tienen la "razón", es la ventaja de tener un mísero poder.
29  Programación / Scripting / Re: lista de palabras agrupada por su letra inicial(diccionario) en: 25 Noviembre 2022, 15:59 pm
Daniel:
mil disculpas, me olvido cuando pongo un código que no tienen porque conocer los métodos.

Código
  1. for x in palabras:
  2.    if x[0] not in diccionario:

x[0] es un slice(rebanada), o sea tomo la primer letra de la palabra, para no tener que hacer una lista con las letras, y sino está como clave en el diccionario:
 
Código
  1. diccionario.setdefault(x[0],[x])

setdefault es un método de los diccionarios, verifica si una clave existe y sino está la agrega, con un valor deterninado en este caso una lista con la palabra.
 
en caso contrario:
Código
  1.    else:
  2.        diccionario[x[0]]+=[ x]
  3.  

asigno a la clave un nuevo valor que es agregar la palabra.

sonará raro pero lo hice así porque me pareció más entendible, porque en realidad en mis códigos lo haría con menos líneas:

Código
  1. #-*- coding:utf-8 -*-
  2. palabras = ['mesa', 'móvil', 'barco', 'coche', 'avión', 'bandeja', 'casa',
  3.            'monitor', 'carretera', 'arco']
  4. diccionario={}
  5. for x in palabras:
  6.    diccionario.setdefault(x[0],[])
  7.    diccionario[x[0]]+=[ x]
  8.  
  9. for clave, valor in diccionario.items():
  10.    print(clave, ":", valor)    
  11.  

en donde es lo mismo sin necesidad de los condicionales.
30  Programación / Scripting / Re: lista de palabras agrupada por su letra inicial(diccionario) en: 25 Noviembre 2022, 04:53 am
No sé si definir como mejor o peor, pero hay muchas formas de lograr eso:
Código
  1. #-*- coding:utf-8 -*-
  2. palabras = ['mesa', 'móvil', 'barco', 'coche', 'avión', 'bandeja', 'casa',
  3.            'monitor', 'carretera', 'arco']
  4. diccionario={}
  5. for x in palabras:
  6.    if x[0] not in diccionario:
  7.        diccionario.setdefault(x[0],[x])
  8.    else:
  9.        diccionario[x[0]]+=[ x]
  10.  
  11. for clave, valor in diccionario.items():
  12.    print(clave, ":", valor)    
  13.  
Páginas: 1 2 [3] 4 5 6 7 8 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines