Ce script acceptera deux entrées de nombres entiers. la première entrée sera toujours (-) plus que la seconde. Le script affichera la somme de toutes les autres entrées de nombres entiers.
script n'imprimera aucun autre texte sur la console autre que le résultat de l'opération.
voici le code que j'ai écrit - jusqu'à présent, je suis capable d'accepter l'entrée mais il produit une boucle infinie et ne fait pas la somme.
Merci
if __name__ == "__main__": # user inputs digits start = int(input()) stop = int(input()) # sum the range of above while start < stop: print(sum for i in range(start, stop, 2))
3 Réponses :
Dans votre problème, le start
sera toujours inférieur à l' stop
, de sorte while
boucle while ne se termine jamais. Au lieu de cela, vous pouvez conserver une variable qui commence au start
et augmente de 2
jusqu'à atteindre stop
.
total = sum(range(start, stop, 2))
Par souci de concision, cela peut simplement être fait avec
# user inputs digits start = int(input()) stop = int(input()) i = start total = 0 while i < stop: total += i i += 2
Merci! cela fait, j'ai oublié de mentionner que la plage devrait inclure le dernier int mais facilement corrigée. grande aide!
Si vous voulez additionner la plage, vous n'avez même pas besoin d'une boucle, car la range
agit essentiellement comme votre boucle:
# user inputs digits start = int(input()) stop = int(input()) # sum the range of above print(sum(range(start, stop, 2)))
Votre start
est toujours plus petit que stop
donc bien sûr la boucle s'exécute toujours. Si c'était l'inverse, cela ne fonctionnerait même pas une seule fois.
Vous avez une boucle for
à l'intérieur d'un while
et cela peut également être évité:
# user inputs digits start = int(input()) stop = int(input()) # sum the range of above result = 0 for i in range(start, stop, 2): result += i
Ou, encore mieux,
result = sum(range(start, stop, 2))
cela semble prendre 5 et augmenter les étapes entre le nombre au cours de 5 itérations à 9 lorsque l'utilisateur entre 5 et 9. le code doit produire le nombre 7 (deux étapes vers le haut) avec un résultat de 21.
Si vous entrez 5 et 9, le code additionnera 5 + 7 + 9. N'est-ce pas ce que tu veux?
Mon mauvais, la range
n'inclut pas la valeur d' stop
, donc elle totalisera 5 + 7 seulement. Si vous voulez aussi 9, remplacez simplement stop
par stop + increment
, l' increment
étant 2 dans ce cas
Vouliez-vous utiliser
sum()
intégré?