anun1

miércoles, 12 de marzo de 2025

Leer n numero de personas y ordenarlos por edades de menor a mayor en python usando array, clases y objectos

Hola amigos hoy les dejare un codigo simple el cual es leer un numero n de personas con sus nombres y edades, despues acomodarlas de menor a mayor todo esto lo haremos usando python bueno empesemos

primero crearemos el archivo llamado persona.py, donde esta la usaremos como clase la cual contendra los siguiente

class person:

en esa linea declaramos la clase person  no se les olvide poner los dos puntos, despues declaramos la funcion __init__ la cual inicialisara las variables que se encuentran en esa funcion y que utilisaremos que son el nombre y la edad

def __init__(self,nombre,edad):

   self.nombre=nombre

   self.edad=edad

por ultimo declaramos la funcion __repr__ la cual la usaremos para imprimir todos los valores del array de la clase  que usaremos

def __repr__(self):

    return str(self.__dict__)

y si se preguntan que es self este hace referencia al contenido del objecto en la clase, en fin es complicado de explicar para mi ya que soy iniciado en este lenguaje pero en google lo pueden buscar....El codigo completo de la clase quedaria asi

class person:
   def __init__(self,nombre,edad):
      self.nombre=nombre
      self.edad=edad
   def __repr__(self):
      return str(self.__dict__)

ahora creamos el archivo main.py y la primera linea sera importar la clase que creamos anteriormente asi

import persona

despues ponemos un try: por si el usuario en ves de ingresar un valor numerico ingresa una cadena o string se ejecutara el siguiente codigo

except ValueError:

   print("Error al ingresar algun dato") 

despues pedimos el numero de personas a ingresar y declaramos el arreglo llamando  p

num=int(input("Dame el numero de personas: "))

p=[]

seguido de eso agregamos un ciclo for donde pediremos que ingrese el nombre de la persona y su edad y agragndola al arreglo o array

for n in range(0,num): #ciclo for de 0 a numero de personas

      nom=input("Dame su nombre: ") #pide el nombre y lo almasena en nom

      eda=int(input("Dame su edad: ")) #pide la edad y lo almacena en eda

      p.append(persona.person(nom,eda)) #aqui lo agregamos al array

despues ordenaremos el array segun la edad de cada persona de menor a mayor usando el comando sorted, el cual lleba los siguientes parametros p que es el array de personas y key=lambda x que es una funcion que se considera concisa y anonima en python la cual lleva como argumento la variable x y le indicamos x.edad para que ordene los datos de menor a mayor edad

res = sorted(p,key=lambda x: x.edad)

por ultimo imprimimos el array con el comando print

print(res)

el codigo completo quedaria asi

import persona
try:
   num=int(input("Dame el numero de personas: "))
   p=[]

   for n in range(0,num):
      nom=input("Dame su nombre: ")
      eda=int(input("Dame su edad: "))
      p.append(persona.person(nom,eda))
   
   res = sorted(p,key=lambda x: x.edad)
   print(res)
except ValueError:
   print("Error al ingresar algun dato") 

otra cosa los archivos tanto como main.py y persona.py deben estar en la misma carpeta yo para este ejemplo los puse en el escritorio pero pueden ponerlos donde gusten...asi quedaria la salida


bueno saludos flamer y espero les guste


Nota: no pondre nada relacionado con crackmes o reversing por que tengo miedo que me eliminen el blog ya que son temas que parese a google no le gusta que toquen, solo pondre algunos programas cosas simples y tampoco nada de hacking

 

No hay comentarios.:

Publicar un comentario