Python - Carga de datos con un bucle while

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 19 puestos en Python (en relación al último mes)
Gráfica de Python

Carga de datos con un bucle while

Publicado por Gonzalo (3 intervenciones) el 03/04/2020 20:56:03
Hola gente buenas tardes, queria hacerles una consulta sobre el siguiente fragmento de codigo

1
2
3
4
5
6
7
8
9
10
11
while control != 0:
    print ('Ingrese nombre del alumno: ')
    alumno.nombre = input()
    print ('Ingrese legajo del alumno : ')
    alumno.legajo = int(input())
    print('Ingrese nota del alumno')
    alumno.nota = int(input())
    ListadoAlumnos.append(alumno)
    contador = contador+1
    print("Desea agregar otro alumno? |1 para si 0 para no|")
    control =  int(input())

Tengo un problema en ese bucle y es que al final se ejecuta bien y guarda la cantidad correcta de datos ingresados pero, cuando ingreso el ultimo elemento pisa todos los anteriores y no me deja guardar la informacion para luego poder utilizarla en otros espacios del codigo
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
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Carga de datos con un bucle while

Publicado por tincopasan (1082 intervenciones) el 03/04/2020 21:55:53
hola:
supongo que alumno es una clase, ¿cómo está declarada?
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
sin imagen de perfil
Val: 5
Ha disminuido su posición en 19 puestos en Python (en relación al último mes)
Gráfica de Python

Carga de datos con un bucle while

Publicado por Gonzalo (3 intervenciones) el 03/04/2020 22:11:50
Hola buenas muchas gracias por contestar, me pude registrar asi que adjunto foto del codigo
Tarea1
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
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Carga de datos con un bucle while

Publicado por tincopasan (1082 intervenciones) el 04/04/2020 00:35:05
la verdad que me duele mirar ese código, hay muchos errores y no entiendo la lógica, más allá que no sé para que usas una clase solo para variables, en fin, hice uno nuevo, usando una clase y mejorando la opción de tener un menu, espero te sirva de orientación o para cumplir la tarea.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#-*- coding: utf -8 -*-
class alumno:
    def __init__(self):
        self.ListadoAlumnos = []
        self.main()
 
 
    def Menu(self):
 
        print("""        1) Agregar Alumnos
        2) Cantidad de alumnos inscriptos
        3) Listado promedio mayor a 8
        4) Listado total
        5) Salir \n
        """)
 
    def  Agregar(self):
        continuar = 1
        while continuar != 0:
            self.nombre = input("Ingrese el nombre del alumno: ")
            self.legajo = input("Ingrese el legajo del alumno: ")
            self.nota = int(input("Ingrese la nota del alumno"))
            continuar = int(input("Desea agregar otro alumno? |1 para si 0 para no| : "))
            self.ListadoAlumnos.append([self.nombre,self.legajo,self.nota])
 
    def Cantidad(self):
        print("\n La cantidad de alumnos inscriptos es de : ",len(self.ListadoAlumnos),"\n")
 
 
    def ListadoPromedio(self) :
        promedio= []
        for nota in self.ListadoAlumnos:
            if nota[2] > 8:
                promedio.append(nota)
        if len(promedio) !=0:
            for x in promedio:
                print(x)
        else:
            print("No hay alumnos con promedio mayor a 8")
        print()
 
    def Listado(self):
        for x in self.ListadoAlumnos:
            print(x)
        print()
 
    def main(self):
        while True:
            self.Menu()
            opcion = int(input("Elige una opción: "))
            if opcion == 1:
                self.Agregar()
            elif opcion == 2:
                self.Cantidad()
            elif opcion == 3 :
                self.ListadoPromedio()
            elif opcion == 4:
                self.Listado()
            else:
                print("Opción incorrecta")
 
 
 
pro = alumno()

podría mejorarlo y acortarlo en algunos puntos, pero prefiero dejarlo así para que sea lo más simple posible. Sino querés usar la clase la eliminas y usas solo las funciones.
Saludos
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
sin imagen de perfil
Val: 5
Ha disminuido su posición en 19 puestos en Python (en relación al último mes)
Gráfica de Python

Carga de datos con un bucle while

Publicado por Gonzalo (3 intervenciones) el 04/04/2020 00:40:17
Hola, me imagino la verdad, en realidad bueno es mi primer codigo con python y nada lo hice con las primeras herramientas que me pasaron, toda la parte de las clases la busque en internet, siempre usamos c y nada la logica va por el lado de utilizar lo que seria una estructura de lista, pero bueno me sirvio mucho tu resolucion para aprender, muchas gracias.
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