Advertisement
KaliNuska

Gestionar personas

Apr 23rd, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.48 KB | None | 0 0
  1. class Persona:
  2.   def __init__(self):
  3.     self.nombre = None
  4.     self.sexo = None
  5.     self.edad = None
  6.  
  7.   def __str__(self):
  8.     return(' ' + str.capitalize(self.nombre) + ', ' + str.upper(self.sexo) + ', ' + str(self.edad) + ' años.')
  9.  
  10.   def preguntar_valores(self):
  11.     self.nombre = input('Nombre ' + str(i+1) + ': ')
  12.     while str.isalpha(self.nombre) == False:
  13.       print('El nombre no es válido. Introduzca sólo caracteres alfabéticos')
  14.       self.nombre = input('Nombre ' + str(i+1) + ': ')
  15.  
  16.     self.sexo = input('Sexo ' + str(i+1) + ': ')
  17.     while (len(self.sexo) > 1) or (str.upper(self.sexo) != 'V') & (str.upper(self.sexo) != 'M'):
  18.       print('Dato incorrecto. Introduzca solo un caracter (V, M)')
  19.       self.sexo = input('Sexo ' + str(i+1) + ': ')
  20.  
  21.     self.edad = input('Edad ' + str(i+1) + ': ')
  22.     while str.isdigit(self.edad) == False:
  23.       print('La edad debe ser un número entero de años.')
  24.       self.edad = input('Edad ' + str(i+1) + ': ')
  25.     self.edad = int(self.edad)
  26.  
  27.  
  28.  
  29. n = input("¿Cuántas personas quiere analizar?\n")
  30. while str.isdigit(n) == False or int(n) < 1:
  31.   print('El número de personas debe ser un número natural.')
  32.   n = input("¿Cuántas personas quiere analizar?\n")
  33. n = int(n)
  34.  
  35. array = []
  36.  
  37. for i in range(n):
  38.  
  39.   temp = Persona()
  40.   temp.preguntar_valores()
  41.  
  42.   array.append(temp)
  43.  
  44.  
  45. maximo = 0
  46. minimo = 99
  47.  
  48. mayor = None
  49. menor = None
  50.  
  51. for person in array:
  52.   if person.edad > maximo:
  53.     maximo = person.edad
  54.     mayor = person
  55.  
  56.   if person.edad < minimo:
  57.     minimo = person.edad
  58.     menor = person
  59.  
  60. print('\nLa persona más mayor es:\n')
  61. print(mayor)
  62. print('\nLa persona más joven es:\n')
  63. print(menor)
  64.  
  65.  
  66. def ordenar_burbuja(coleccion):
  67.   n = len(coleccion)
  68.   i = 0
  69.   while i < n:
  70.     j = i
  71.     while j < n:
  72.       if coleccion[i].edad > coleccion[j].edad:
  73.         temp = coleccion[i]
  74.         coleccion[i] = coleccion[j]
  75.         coleccion[j] = temp
  76.       j += 1
  77.     i += 1
  78.  
  79.  
  80. ordenar_burbuja(array)
  81.  
  82. print('\nLas personas ordenadas de menor a mayor edad:\n')
  83. for a in array:
  84.   print(a)
  85.  
  86.  
  87. def discriminar(listado):
  88.   hom = []
  89.   muj = []
  90.   for persona in listado:
  91.     if str.upper(persona.sexo) == 'V':
  92.       hom.append(persona)
  93.     elif str.upper(persona.sexo) == 'M':
  94.       muj.append(persona)
  95.   print('\nHombres:\n')
  96.   for persona in hom:
  97.     print(persona)
  98.   print('\nMujeres:\n')
  99.   for persona in muj:
  100.     print(persona)
  101.  
  102.  
  103. discriminar(array)
  104.  
  105. input('\n-- Pulse ENTER para salir --')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement