[ Foro de Python ]

Suma de valores de una lista

24-Aug-2020 18:25
Invitado (?scar)
1 Respuestas

Buenos días, a continuación muestro el siguiente ejercicio de un curso de introducción a python que estoy realizando. También les muestro el código que he creado, convencido de que era correcta su elaboración. Además he compartido en otro foro (relacionado con Python) este código y me han confirmado que es correcto (me han propuesto otros códigos similares que ofrecen el mismo resultado), sin embargo cuando introduzco el resultado en el corrector del ejercicio, me dice que es erróneo. Ya no sé que pensar, si el problema es que no estoy interpretando bien el enunciado, o bien se trate de un error por parte de los correctores. De hecho hice una consulta a los administradores del curso (hace dos semanas), pero no he recibido respuesta.

Espero que alguien me pueda colaborar. Gracias.

Enunciado:
Implementar un código de Python que realice la operación detallada más abajo sobre la lista entregada hasta encontrar un valor igual o superior al valor reseñado sin incluirlo

Operación: Suma de valores en posiciones impares empezando por 1 (por ejemplo con la lista [1,2,4,6,92,56] y el valor límite 90 sumaría 1+4)

Lista: [ 33, 42, 10, 13, 19, 82, 32, 14, 17, 29, 19, 24, 4, 79, 33, 13, 38, 6, 11, 70, 86, 70, 75, 90, 9, 50, 52, 90, 10, 81, 69, 23, 49, 87, 60, 24, 25, 15, 27, 81, 68, 19, 61, 23, 72, 25, 39, 14, 27, 47, 31, 4, 52, 48, 5, 79, 84, 29, 40, 36, 43, 2, 21, 51, 70, 66, 59, 82, 39, 28, 49, 13, 62, 87, 9, 45, 7, 7, 46, 29, 64, 11, 69, 72, 70, 35, 48, 32, 30, 53, 68, 33, 61, 12, 47, 51, 84, 32, 80, 69, 58, 76, 38, 21, 87, 30, 58, 59, 64, 40, 77, 53, 45, 83, 90, 20, 61, 32, 33, 13, 45, 51, 84, 48, 8, 49, 71, 32, 36, 78, 31, 77, 46, 30, 33, 18, 34, 77, 32, 35, 82, 73, 74, 81, 79, 95, 96, 93, 96, 99]

Valor límite: 91

Debo crear un código que me devuelva el valor de la suma.


Código elaborado por mi (espero me puedan colaborar):


lista=[33,42,10,13,19,82,32,14,17,29,19,24,4,79,33,13,38,6,11,70,86,70,75,90,9,50,52,90,10,81,69,23,49,87,60,24,25,15,27,81,68,19,61,23,72,25,39,14,27,47,31,4,52,48,5,79,84,29,40,36,43,2,21,51,70,66,59,82,39,28,49,13,62,87,9,45,7,7,46,29,64,11,69,72,70,35,48,32,30,53,68,33,61,12,47,51,84,32,80,69,58,76,38,21,87,30,58,59,64,40,77,53,45,83,90,20,61,32,33,13,45,51,84,48,8,49,71,32,36,78,31,77,46,30,33,18,34,77,32,35,82,73,74,81,79,95,96,93,96,99]
#lista=[3,2,45,6,60,56,0,4,92,12,8]
#lista=[1,2,4,6,92,56]
i=0
a=0
numeros=0
resultado=0
total=0
for elemento in lista:
   if i%2==0:
       print(f'Este es el elemento de la posición impar a sumar: {elemento}')
       if elemento<91:
           resultado=resultado+int(elemento)
           print(f'El resultado obtenido con esta suma es: {resultado}')
       else:
           print(f'El número {elemento} no se suma al ser mayor o igual que 91')
           break
   i=i+1



Muchas gracias a todos.


25-Aug-2020 16:54
Ene Set (+9)

¿Tienes que introducir tú el resultado o tu código? Si es tu código ten en cuenta que estás sacando por pantalla un montón de cosas que el corrector no sabrá interpretar.

A mí me sale que el resultado es 62 con este código:

lista = [33,42,10,13,19,82,32,14,17,29,19,24,4,79,33,13,38,6,11,70,86,70,75,90,9,50,52,90,10,81,69,23,49,87,60,24,25,15,27,81,68,19,61,23,72,25,39,14,27,47,31,4,52,48,5,79,84,29,40,36,43,2,21,51,70,66,59,82,39,28,49,13,62,87,9,45,7,7,46,29,64,11,69,72,70,35,48,32,30,53,68,33,61,12,47,51,84,32,80,69,58,76,38,21,87,30,58,59,64,40,77,53,45,83,90,20,61,32,33,13,45,51,84,48,8,49,71,32,36,78,31,77,46,30,33,18,34,77,32,35,82,73,74,81,79,95,96,93,96,99]

resultado = []

for elemento in lista[::2]:
   if sum(resultado) >= 91:
       break
   else:
       resultado.append(elemento)

print(sum(resultado[:-1]))


-----------------
He intentado resolverlo siguiendo tu código y tu lógica, pero no he sabido.

Sobre mi código no estoy contento con mi última línea, donde extraigo el último elemento de mi lista "resultado". Si no lo hago el resultado sería 94, ya que se me cuela el 32 porque hasta el 19 la lista suma menos de 91.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)