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

#61
Scripting / Re: [Python] Pasar de str a int?
16 Enero 2021, 22:00 PM
CitarTengo entendido que el *args sirve para expandir los parámetros a listas,

en realidad es que recibe los argumentos en forma de una lista o una tupla en todo caso, o sea:

Código (python) [Seleccionar]
sumar((1,2,3,4)) #una tupla
sumar([5,6]) # una lista


es lo mismo en cuanto a la funcionalidad.

con respecto a tu código, se puede resumir a:

Código (python) [Seleccionar]

def sumar(*args): #*args usa listas o tuplas
   return sum(*args) # python ya trae funciones predefinidas

a = [int(x) for x in input("Ingresa los números a sumar (Separados con un espacio) : ").split()]
#¿para qué usar *args si solo serán dos números?
# es necesario pasar cadena a entero
print(sumar(a))


Edito:
por las dudas, el método int() intenta pasar de cadena a entero

Código (python) [Seleccionar]
a = int(input("número "))

si ingreso 10 input lo devuelve como cadena, pero al estar dentro del int, devolverá un entero
el problema es que es quisquilloso con la entrada en tu caso no se puede ingresar espacios, lo ideal es ingresar de a un número, pero entonces deberías usar un condicional si es que no sabés cuantos enteros ingresará el usuario, por eso en tu caso simplemente tomamos una lista de caracterés, sacamos los espacios y a la lista de cadenas la pasamos a lista de enteros.
#62
hola:
hay muchas formas de resolver esto, te muestro una.

Código (python) [Seleccionar]
#-*- coding: utf -8 -*-
poema           =  "El unicornio blanco se ve negro a la distancia por que la noche es oscura. Mientras tanto,el caballo blanco del comisario come pasto cansinamente al lado del gallinero lleno de patos."

class Contador:
   
    def __init__(self,poema,sep1,sep2):
        self.poema = poema
        self.sep_frases = sep1
        self.sep_palabras = sep2
     
    def cuenta(self):
        self.lista_frases= [x for x in self.poema.split(self.sep_frases) if x !=""]
        self.lista_palabras = [x for x in self.poema.replace(',',' ').replace('.',' ').split(self.sep_palabras) if x !=""]
        self.cant_letras = [x for j in self.lista_palabras for x in j ]
        return self.poema, self.lista_frases,self.lista_palabras,self.cant_letras
   
   
if __name__=='__main__':
    clase = Contador(poema,'.',' ')
    poe,fra,pal,let = clase.cuenta()
    print(poe)
    print("La cantidad de frases es:  ", len(fra))
    print("La cantidad de palabras es: ", len(pal))
    print(f"Este poema tiene {len(let)} letras")


si te fijas cuando trabajo con split() parseo la lista sin las listas vacias que genera sino da más de largo de lo que realmente es y también reemplazo los "." y "," para una mejor lectura de las letras.

hay otras formas pero está me pareció la más simple.
#63
Criptografía / Re: Abrir PDF cifrado
8 Enero 2021, 18:32 PM
varias cosas:
1) no hay forma de adivinar el cifrado si es que lo tiene
2) sería más facil de revisar con la muestra que intentar sobre algo desconocido.
3)¿el programa con el cuál lo ves, permite imprimir? si es así intenta con una impresora virtual a pdf
#65
1) que opines distinto no me preocupa en lo más mínimo, De ahí  a decir que es feo o no sensato, solo es distinto en todo caso .De la misma  forma opino que sos inchorerente , decís una cosa y haces otra.
2)¿me querés manejar la vida diciendome que debo hacer? "mal vamos"
#66
partamos de la base que no es el mío, y si lo fuese, modifica el de otro, no te pedí ninguna corrección ni lo haría, ya vi que tipo de desarrollador sos.
#67
XSStringManolo muy purista del código pero las funciones sin return, vaya contradicción.
#68
lo que no entiendas pregunta.
#69
no hay que ser muy puristas del código, siempre les digo a mis alumnos que si funciona lo que hicieron no está mal.
Si tu código funciona está bien, ahora es cierto que hay convenciones que se usan generalmente y que se trata de usar lo correcto en cada caso.


Código (python) [Seleccionar]
#-*- coding: utf - 8 -*- #esta línea ahorra problemas con la codificación de caracteres no ingleses
alumnos = {}
#se pueden usar listas individuales pero con un diccionario sobra
#lo ideal sería usar un archivo para guardar los datos y clases para el código, pero como estás aprendiendo así está más que bien.

def Altas():
   clave= len(alumnos) #para que la clave se auto incremente
   nombre = input("Ingrese el nombre del alumno: ")
   apellido =input("Ingrese el apellido del alumno: ")
   materia = input("Ingrese la materia: ")
   alumnos[clave + 1] = [nombre,apellido,materia] # una lista con los datos y como clave el número
   # en un futuro la clave puede ser el número de documento, ya que estos son únicos

def Bajas():
   return "Está en bajas" #cuando se devuelve un valor cualquiera se estila usar return
   

def Consultas():
   print("Está en consultas \n")
   for k,v in alumnos.items():
       print(f"Número del alumno: {k} Nombre: {v[0]} Apellido: {v[1]} Materia: {v[2]}")


def Modificaiones():
   print("Está en modificaciones")

def Menu():
   
   while True:
       
       print("""¿Qué quiere saber? \n
1:Altas
2:Bajas
3:Consultas
4:Modificaciones
5:Salir""")
       #en multileneas por lo general se muestran así, con un solo print
       try:
           ele = int(input("\nOpción: ")) #normalmente se usa el try solo para lo que queremos evaluar
       except ValueError:
           print("Esperaba un número!")
           Menu()
       if ele == 1:
           Altas()
       elif ele == 2:
           print(Bajas())
       elif ele == 3:
           Consultas()
       elif ele == 4:
           Modificaiones()
       elif ele == 5:
           print("Gracias por usar el sistema")
           break
       else:
           print("¡Solo puedes ingresar números del 1 al 5!")
      #cuando hay tantos elif también se puede simplificar con el uso de diccionarios    
       
if __name__ == '__main__': #para más adelante es mejor está forma de iniciar el módulo
   Menu()
   



ya se que te molesta lo que te digo, pero vas aprendiendo y te muestro otras formas, no por eso son mejores, pero si más estandar.
#70
son una exageración de balas! es como acá en Argentina, con matar a todos los políticos, violadores y ladrones como ejemplo de lo que les pasaría, se ahorran un montón unos 15 millones de balas !