Python - Sumatorio del 1 al 20

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

Sumatorio del 1 al 20

Publicado por Temukoç (8 intervenciones) el 16/02/2021 22:46:56
Buenas tardes :

Soy nuevo en el foro y estoy aprendiendo a programar Python. Estoy intentando realizar un sumatorio del 1 al 20 . Es decir 1+2+3+4+5+....+20 = 210

El algoritmo que he desarrollado es :

1
2
3
4
5
6
7
def sumahasta20 ():
	a = 0
	while a <= 20:
		a += 1
		print (a+a)
 
sumahasta()

Pero el algoritmo está mal .A ver si alguien me puede ayudar.
¿Por cierto algún libro de ejercicios para encontrar ejemplo ?

Gracias y un saludo
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 Jaime
Val: 528
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sumatorio del 1 al 20

Publicado por Jaime (136 intervenciones) el 16/02/2021 22:52:34
A veces con una prueba de escritorio se te aclaran los errores lógicos.
Lo que te pasa a tu código es la condición del while deberia ser hasta que a <= 210. Ese print no te entiendo para qué? solo con poner print(a) es suficiente.
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
Imágen de perfil de Jaime
Val: 528
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sumatorio del 1 al 20

Publicado por Jaime (136 intervenciones) el 16/02/2021 22:55:30
Esta es otra forma de hacerlo
1
2
3
4
5
6
7
def suma_hasta_20():
    a=0
    for i in range(21):
        a += 1
    print(a)
 
suma_hasta_20()
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: 2.656
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sumatorio del 1 al 20

Publicado por tincopasan (781 intervenciones) el 17/02/2021 00:48:30
como estás aprendiendo sería bueno que vayas aprendiendo buenas practicas:

1
2
3
4
5
6
7
8
9
def sumahasta20():
    a = 1      #no es bueno usar variables no descriptivas, ahora es solo una función pero después la suma de ellas lo hace ilegible
    total = 0 #hay que asignar otra variable en este caso
    while a <= 20:
        total+= a
        a+=1
    print(total)     #es mejor usar un return que un simple print sino te retornará un None
 
sumahasta20() #cuidado como estás llamando a la función  está el nombre incompleto en tu código

así sería una forma un poco más clara, como te dijeron también se puede usar el bucle for, pero...

suponete que el número es variable, esa función quedadá obsoleta, así que:
todo se puede resumir a:

1
2
3
4
def sumahasta(numero):
   return sum(list(range(numero + 1)))
 
print(sumahasta(20))

donde la función sum(), list() y range() son propias de python y ahorran código

tu código esta bien para comenzar a entender el uso de bucles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 2.656
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sumatorio del 1 al 20

Publicado por tincopasan (781 intervenciones) el 17/02/2021 00:55:17
esta porquería se cerró y no me dejó editar el código:
1
2
3
4
5
6
7
8
9
def sumahasta20():
    contador = 1   #variables más descriptivas también podes usar comentarios como ayuda
    total = 0
    while contador <= 20:
        total+= contador
        contador+=1
    return total   #la función devuelve algo, esa es la idea
 
print(sumahasta20())

así sería más claro y así más resumido:
1
2
3
4
def sumahasta(numero):
   return sum(list(range(numero + 1)))
 
print(sumahasta(20))  #donde usas el número que quieras, obvio que mientras más grande más lento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar