Python - ¡Necesito ayuda con un programa!

 
Vista:

¡Necesito ayuda con un programa!

Publicado por Lilu (1 intervención) el 15/05/2017 23:31:48
Necesito ayuda con el siguiente programa:
"Escribir un programa que lea del teclado 5 nombres y sus años de nacimiento y los escriba luego por pantalla ordenados por edad de mayor a menor"
Soy principiante y necesito ayuda con esto
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 113
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

¡Necesito ayuda con un programa!

Publicado por Andres Leonardo (40 intervenciones) el 16/05/2017 16:02:28
Para iniciar que tienes de codigo ... algo debes tener
vamos con las ideas

Hay que hacer algo quqe nos guarde esto.. .deberia ser una lista

lista = []

luego deberias ingresar datos con un ciclo que lea los datos las N veces....
puede ser un for o un while el que manekjes mejor

n = input("Ingrese Nombre:")
a = input("Ingrese Año de Nac:")

luego deberias guardar esto en la lista

lista += [n,a]

hasta que termine el ciclo

Luego de esto debes ordenar la lista.. hay dos maneras la automatica que deberias buscar en google como ordenar una lista en pyton por un parametro o la manual que es hacer otro ciclo que vaya leyendo y poniendo los datos ordenados..

vamos comienza con eso .. tienes harto que hacer ... cree me lo que te han pedido es facil .. solo necesitas un poco de ganas de hacerlo ... un poco de curiosidad en google ( pero no para que te lo hagan si no para investigar como hacerlo )

postea tu codigo como vas para ver como te ayudo mas

PD yo tambien soy novato en Python pero se otros lenguajes

SAludos
Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¡Necesito ayuda con un programa!

Publicado por CpA (33 intervenciones) el 16/05/2017 19:04:37
Yo, para este problema, usaría una matriz...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Iniciamos la matriz. 2 columnas (nombre y edad) por 5 personas que nos piden
matriz = [[None] * 2 for i in range(5)]
# Ahora recorremos la matriz y pedimos los datos
for i in range(len(matriz)):
    print(i)
    matriz[i][0]=input("Nombre: ")
    matriz[i][1]=int(input("Edad: "))
# Y ahora ordenamos. Primero ordenamos por nombre, para que así, si hay dos personas con la misma edad, la salida esté,
# a demás, ordenada por nombre en segundo nivel.
matriz.sort(key=lambda i: i[0])
# Y ahora ya ordenamos por edad
matriz.sort(key=lambda i: i[1])
# Y finalmente imprimimos la lista ordenada
print(matriz)
# La matriz la podríamos imprimir de forma más elegante a través de un bucle nuevamente...
print("La lista ordenada por edad es la siguiente:")
print("=================================")
for i in range(len(matriz)):
    print("{} tiene una edad de {}".format(matriz[i][0],matriz[i][1]))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

¡Necesito ayuda con un programa!

Publicado por kip (257 intervenciones) el 17/05/2017 06:04:37
Hola, quizas esto pueda ayudarte tambien:

1
2
3
4
5
6
datos = []
while len(datos) < 5:
    datos += [(input("Ingrese el nombre: "), int(input("Ingrese la edad: ")))]
datos = sorted(datos, key=lambda persona: persona[1], reverse=True)
datos = list(map(lambda persona: "Nombre %s - Edad %d" % persona, datos))
print ("\n".join(datos))

Pruebalo y nos cuentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar