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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9
41  Programación / Scripting / Re: Seleccionar palabras con espacios en widget TEXT en tkinter… en: 17 Octubre 2022, 00:17 am
hola:

1) en mi caso no soy adivino, así que no tengo la menor idea que son los parámetros que le pasas a la función:
Código
  1. def copiar_al_portapapeles(t1, muestra_codigo):

2)un posible error de lógica, ya que estás limitando lo copiado a palabras.
¿y si de "from collections import Counter" el usuario quería copiar rom collect o port count?, ¿lo querés obligar a que seleccione totalmente las palabras?

3)no es ni por casualidad la mejor forma la que intentas aplicar, hay varias, una con la propia de tkinter y otra con bibliotecas externas, pero vamos con la propia.
no me gusta, salvo excepciones dejar código suelto y no facilmente verificable para el lector,así que implemento un ejemplo funcional sin parámetros en la función, agregalos vos cuando los necesites.

4)tampoco sé como llamás a la función así que implemente un botón.

5)código verificable

Código
  1. #-*- coding: utf  -8 -*-
  2. import tkinter as tk
  3. ventana = tk.Tk()
  4. ventana.geometry("400x350")  
  5.  
  6. def copia():
  7.    try:
  8.        if t1.selection_get():
  9.            data=t1.selection_get()
  10.            print(data)# esto es inncesario, está solo para que se vea lo copiado
  11.            ventana.clipboard_clear()
  12.            ventana.clipboard_append(data)
  13.            return data  
  14.    except: pass
  15.  
  16.  
  17. t1 = tk.Text(ventana,font=20,height=13,width=42)
  18. t1.insert("end","from collections import Counter")
  19. t1.place(x=0,y=0)
  20.  
  21. boton=tk.Button(ventana,text='Copiar',command=copia,font=20,bg='lightblue')
  22. boton.place(x=0,y=300)
  23.  
  24. ventana.mainloop()
  25.  
  26.  
  27.  
42  Programación / Scripting / Re: ayuda con funciones recursivas en python en: 10 Octubre 2022, 19:05 pm
tampoco entiendo el uso de bibliotecas innecesarias en algunos casos, pero...
re como muchos módulos te ahorran tiempo en cosas que ya están escritas. y las funciones recursivas bien implementadas ahorran memoria, claro que para eso, no hay que usarlas para huevadas.
43  Programación / Scripting / Re: Obtener el número mayor con comprensión de listas en Python. en: 10 Octubre 2022, 19:01 pm
hola Daniel:

1)No tiene sentido usar compresión de listas para ese planteo
2)Si te fijas lo esperado no es una lista
Citar
Salida: 31

sino salida sería: [31]
pero en el tiempo que llevo de python ya el planteo sería rídiculo.

3)
Citar
Esto es lo que me ocurre si no lo hago con lista de listas...

Código
  1. b = [max(p) for p in a]

pues está muy mal, la función max() recibe como argumento un iterable, no un entero que es lo que le estás pasando

Edito: No sigue el planteo por usar max(), pero te muestro como debería ser si querés usarla solo en una lista:

Código
  1. lista = [10, 13, 454, 66, 44]
  2. mayor=[x for x in lista if x ==max(lista)]
  3. print(mayor)
  4.  

Insistiendo en que esto es sumamente ilógico.

4)parece muy obvio pero la mejor solución es usar lo que pusiste de ejemplo inicial con for:

  
Código
  1. lista = [10, 13, 454, 66, 44]
  2.    el_mayor=0
  3.    for a in lista:
  4.        if a > el_mayor:
  5.            el_mayor = a
  6.  
  7.    print(el_mayor)

siempre obviando que es una tontería cuando:

Código
  1. lista = [10, 13, 454, 66, 44]
  2. print( max(lista))

si el libro hace esos planteos, te recomiendo que cambies de libro

5)compresión de listas o diccionarios es bárbaro para mí, pero para lo que realmente se hizo.



44  Programación / Scripting / Re: Obtener el número mayor con comprensión de listas en Python. en: 10 Octubre 2022, 14:50 pm
bueno veamos:

1)
Código
  1. mayor = [(functools.reduce(lambda a,b: a if (a > b) else b, lista))]

eso no es ni de cerca comprensión de listas, justamente existe una marcada diferencia entre las funciones lambda y la compresion de listas, consideralo una solución pero no es comprensión de listas!

además la estructura de la primera lista no coincide con la segunda:

1=
Código
  1. a = [[10, 13, 454, 66, 44]]
esto es una lista de listas

2=
Código
  1. lista = [10, 13, 54, 661, 1, 44, 5, 222, 7]
esto es simplemente una lista


2)
Código
  1. b = [max(p) for p in a]

esa es la estructura correcta de la compresion de listas.

un elemento a incluir , un bucle y un iterador

3) lo que me lleva a:
el segundo ejemplo además de ser una comprensión de listas y el primero no, es más legible, es más eficiente y no importa bibliotecas ¿qué necesidad de inventar la rueda?

4)el problema con lo que buscas hacer no son los condicionales, sino las asignaciones:
 
Código
  1. el_mayor = a
Creo que todavía no has entendido cuando aplica la comprensión de listas.
45  Programación / Programación General / Re: Macromedia Flash 5 y su AS son lo mejor para programar, negarlo es ser ignorante. en: 7 Octubre 2022, 08:11 am
usando tus palabras, afirmar que esas huevadas son lo mejor para "programar" es de ignorantes.
46  Programación / Scripting / Re: Cosas interesante de f-strings. en: 4 Octubre 2022, 18:27 pm
no sé si lo importante es con menos líneas de código, se puede y hago una línea menos, pero lo realmente importante es el mal uso del retorno de las funciones, ya tendrás problemas por no usar return, en cuanto al formateo si es util.

Una de las formas es:

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

47  Programación / Ingeniería Inversa / Re: [LEAKED] IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64) en: 4 Octubre 2022, 16:11 pm
ya no funciona ningún link para la descarga!  :-(
48  Programación / Ejercicios / Re: ayuda en: 30 Septiembre 2022, 10:46 am
es muy dificil ayudarte sin reescribir el código, porque el error parece de lógica y no de sintaxis en si.
Código
  1. #-*- coding:utf-8 -*-
  2. diccionario = {"A":1, "E":1, "I":1, "O":1, "L":1, "N":1, "R":1, "S":1, "T":1, "U":1,
  3.               "D":2, "G":2,
  4.               "B":3, "C":3, "M":3, "P":3,
  5.               "F":4, "H":4, "V":4, "W":4, "Y":4,
  6.               "K":5,
  7.               "J":8, "X":8,
  8.               "Q":10,"Z":10}  # aqui definimos el diccionario colocando el puntaje de cada letra
el diccionario está bien declarado

Código
  1. palabra = input("ingresa una palabra: ")

si te fijas la función str() está de más, no es que este mal pero es una redundancia, input devuelve una cadena

Código
  1. puntosTotales = 0
  2. for letra in palabra.upper():
  3.    if letra not in diccionario:
  4.        print("el caracter ingresado no es válido")
  5.    else:
  6.        parciales = diccionario.get(letra)
  7.        print(f"puntos por la letra {letra}:  {parciales}")
  8.  
  9.        puntosTotales+=parciales
  10.  
  11. print(f"puntos totales por la palabra: {puntosTotales}")

Bueno acá ya tuve que cambiar la lógica, demasiados for , con una iteración sobra
si el caracter no está muestra el mensaje pero si está hay que obtener el valor de la letra para eso existe el método get, una vez obtenido el valor parcial lo muestro o no eso depende de lo que quieras y pot último lo sumo al valor total.

49  Programación / Scripting / Re: Método duplicado en herencia con python.- en: 28 Septiembre 2022, 19:50 pm
hay varias formas de hacer  esto, pero me parece oportuno aclararte  algunos conceptos que si bien no están mal, es mejor hacerlos de otra forma.
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.        return(f"""ruedas...: {self.ruedas}
  8. puertas..: {self.puertas}""")

1) es una buena práctica usar return en las funciones sino después está la típica pregunta de ¿por qué sale un None ? las funciones deben, aunque no es obligatorio retornar algo
2)cambié la forma de mostrar la cadena, solo porque me parece mucho más claro la lectura
3)self no es una palabra reservada, pero por convención es la más usada, sobre todo porque en códigos extensos y también para otros programadores es más simple la comprensión del código, lo mismo para uno en el paso del tiempo.
4)Si bien este ejemplo es una forma de compartir métodos para mostrar los atributos se usa mucho más el método __str__() en lugar de difinir uno propio.



Código
  1. class Audi(Automovil):
  2.    def __init__(self, ruedas, puertas, color, modelo):
  3.        Automovil.__init__(self,ruedas, puertas)
  4.        self.color = color
  5.        self.modelo = modelo
  6.  
  7.    def mostrar(self):
  8.        return(f"""{Automovil.mostrar(self)}
  9. color....: {self.color}
  10. modelo...: {self.modelo}""")

como dije, se puede, ya que no es obligatorio hacer de otras formas, aunque en este caso no es necesario usar super, ya que directamente invoco al método __init__ de la clase padre.

Código
  1. a = Automovil(4,5)
  2. print(a.mostrar())
  3. b = Audi(4,4, 'azul',2020)
  4. print(b.mostrar())

como me gusta escribir poco simplemente declaro los atributos.

Con respecto a lo de duplicados no lo son, ya que cada clase tiene sus propios atributos.
50  Programación / Scripting / Re: Saber la posición de una imagen dentro de un PDF en: 23 Septiembre 2022, 07:30 am
¿consejo?
1)poné el código de lo que has intentado
2)ya que subís enlaces, podrías hacerlo con algún pdf a trabajar
3)"Extraer imágenes PDF y saber en qué página se encuentra y qué ubicación (x0,y0,x1,y1)" parece una tarea, no esperes todo hecho sin mostrar algún avance.
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