Código de Python - Calcular la nota media según datos de un archivo de texto

Requerimientos

Python 2 y Python 3

1
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 26 de Febrero del 2019gráfica de visualizaciones de la versión: 1
12.366 visualizaciones desde el 26 de Febrero del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

El contenido del archivo notas.txt es algo así:
1
2
3
paco,3.5,6,8.4,10
miguel,5,8.6,5,9
jose,1,5,6,3.9

y el resultado al ejecutarlo es:
1
2
3
Alumno: paco - Nota media: 6.975 - Aprobado
Alumno: miguel - Nota media: 6.9 - Aprobado
Alumno: jose - Nota media: 3.975 - Suspenso
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
"""
Codigo para obtener el listado de alumnos con su nota media y indicando si ha
aprobado o suspendido segun los valores del archivo notas.txt que contienen
el nombre del alumno y notas.

paco,3.5,6,8.4,10
miguel,5,8.6,5,9
jose,1,5,6,3.9
...
"""
 
file = open("notas.txt", "r")
 
# bucle por cada linea del archivo de notas
for line in file:
 
    # obtenemos los valores en una lista
    valores=line.strip().split(",")
 
    # convertimos los valores a numericos para poder sumarlos
    valoresInt=list(map(float,valores[1:]))
 
    # sumamos los valores
    sumaNotas=sum(valoresInt)
 
    # calculamos la media
    media=sumaNotas/len(valoresInt)
 
    # obtenemos el texto de si es aprobado o suspendido
    aprobado="Aprobado" if media>=5 else "Suspenso"
 
    print("Alumno: {} - Nota media: {} - {}".format(valores[0], media, aprobado))
 
file.close()



Comentarios sobre la versión: 1 (2)

26 de Febrero del 2019
estrellaestrellaestrellaestrellaestrella
Hola.

Muy buen código.

Por qué no usas context para el open?
Responder
6 de Mayo del 2019
estrellaestrellaestrellaestrellaestrella
puedes ayudarme con un digo similar, pero con algunos cambio: Ejemplo
Datos en Archivo de Texto= (lista) numero aleatorio, de 20 registros
IDE de Python,,, una formula = ((A * B) - Z)
Lo que deseo hacer es que: se sustituya a traves de un bucle For, cada elemento de la lista Txt, por el argumento "B" de la formula

Resumen: Python ejecuta la formula y sustituye un elemento de Lista Txt por el augumento "B"
(( A * 2) -Z) = print
(( A * 7) -Z) = print
(( A * 2025) -Z) = print
............ igual para cada elemento de la lista Txt

Gracias, espero puedas ayudarme
Responder

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5169