0

What is wrong here? Someone can explain me pls

s = 100 h = 10 m = -20 sh = 1 g = input () while sh == 4: if g == "h": print (g+h) else : print (g+m) if g == "m": print (g+m) else : print (g+h) sh += 1 print (s) I need to calculate total s after 4 entries but the result is not correct

8th Jun 2021, 10:50 PM
Mateo Zuluaga
Mateo Zuluaga - avatar
9 Antworten
+ 2
At the first, the explicit value of sh is 1, so will never be 4 and never entry on the while loop.
8th Jun 2021, 10:57 PM
D-3V
D-3V - avatar
+ 1
Hello, s is not modified, so that print(s) will always be 100 on the other hand sh is declared as 1, so the while loop is never executed What do you want to calculate in s?
8th Jun 2021, 11:07 PM
Monica Garcia
Monica Garcia - avatar
+ 1
Para modificar el valor de s, debes reasignarselo cuando quieras que su valor sea distinto. s = s + 20 Por ejemplo.
8th Jun 2021, 11:16 PM
D-3V
D-3V - avatar
0
Puedes reescribirlo por favor? No entiendo muy bien la verdad porque, si está explícito que cuando la entrada llegué a 4 se ejecute la sumatoria
8th Jun 2021, 11:00 PM
Mateo Zuluaga
Mateo Zuluaga - avatar
0
Te lo reescribiría sin problema, pero no acabo de entender que es lo que estás buscando hacer. Si con lo que te contesto ahora no es suficiente, dame detalles y te lo escribo. Piensa que al usar el while, le estás diciendo: Oye, quiero que mientras sh sea 4, se ejecute, cuando no sea 4 no hagas nada. Entonces no está haciendo nada porqué sh no es 4.
8th Jun 2021, 11:05 PM
D-3V
D-3V - avatar
0
Pues ahí le estoy diciendo que cuando sh sea 4 ejecute dependiendo la entrada, pero abajo está especificado que sh aumentan cantidad de 1 por cada entrada, no entiendo cómo obtener el resultado correcto, o sea el programa me da un resultado pero no es el correcto. No está restando, a veces tampoco suma
8th Jun 2021, 11:07 PM
Mateo Zuluaga
Mateo Zuluaga - avatar
0
Hola Sara, quiero calcular el resultado después de las 4 entradas, sean "h" o "m" , pero creo que si siempre me da 100, cómo tengo que hacer para que se ejecute de manera correcta el código
8th Jun 2021, 11:11 PM
Mateo Zuluaga
Mateo Zuluaga - avatar
0
En el primer if, le preguntas si el valor g es uno concreto, y si no es ese se irá al siguiente else. Continuará bajando, y se meterá en el otro else también ya que g no será igual a m si era igual a h, por lo que estás entrando en dos else, o en un if y luego en un else, o en un else y luego en un if. Te recomiendo usar elif, para gestionar el tema que acabo de comentar. Otro problema que veo, es que si entrase en el bucle, no saldría ya que el valor de sh se está modificando debajo del bloque while, no dentro.
8th Jun 2021, 11:14 PM
D-3V
D-3V - avatar
0
Si quieres recoger varias entradas el g = input() debería estar dentro del bucle
8th Jun 2021, 11:21 PM
Monica Garcia
Monica Garcia - avatar