Menu

Je ne comprend pas cette formule

-
Bonjour,

Cela fait quelques semaines que je suis sur python en suivant le livre de gerard swinnen,
j'ai du mal avec certaine formule, mais la j'ai vraiment un blocage avec la correction...
Je pense que mon soucis réel et les math et non le logiciel, j'ai limpression que mon cerveau ne peut pas comprendre cette simple chose.

print("entrer l'inferieur :",end=" ")
a=eval(input())
print("superieur :",end=" ")
b=eval(input())
s=0

n=a
while n<=b:
    if n%3==0 and n%5==0:
        s=s+n
    n=n+1
print("La somme recherchée vaut",s)


Et quand je voie que je comprend pas ca j'ai juste envie de tout arrêter car je me sent vraiment stupide ^^"


Configuration: Windows / Chrome 73.0.3683.103
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
25269
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 mai 2019
9104
1
Merci
Bonjour,

Tu aurais du nous donner l'énoncé de la question ;-)

Je me lance : la somme des entiers, compris entre 2 valeurs, divisibles à la fois par 3 et par 5.

Un peu difficile de t'aider. Pour résumer on demande de saisir 2 valeurs a et b et on va tester toutes les valeurs n entre ces 2 nombres (le while) pour voir s'ils sont divisibles à la fois par 3 et par 5 (le if), si oui on additionne la valeur testée n dans l'accumulateur s, quand la boucle est terminée on affiche s

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39134 internautes nous ont dit merci ce mois-ci

jee pee
Messages postés
25269
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 mai 2019
9104 > deel -
eval() sert à faire de a un nombre entier, sans eval() a serait une chaine de caractères, accessoirement si un utilisateur tordu répond supérieur=16+16 b vaudra l'entier 32, sans eval() b vaudrait la chaine "16+16"

c'est nécessaire de le savoir, mais pas principal pour l’exercice proprement dit.

Je ne comprend pas le sens de ton questionnement dans ta dernière phrase. C'est le programme qui justement détermine, pour chaque nombre, entre les bornes si il répond à la question.

Que proposes tu pour la 2ème version du programme "multiple de 3 ou de 5" ?
A d'accord merci, Pour la deuxième partit il suffit de remplacer le if n%3==0 and n%5==0: par if n%3==0 or n%5==0:

Ce que je comprend pas c'est en fin de compte quelle et la procédure du calcul je n'arrive pas a comprendre comment l'on arrive a ce résultat, la procédure je ne la comprend pas. Du coup la en ayant regarder la correction je ne comprend toujours pas
jee pee
Messages postés
25269
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 mai 2019
9104 > deel -
on fait une boucle on traite 0, 1, 2 , 3 ... 32 si le nombre traité est divisible par 3 et 5 on additionne ce nombre dans l'accumulateur s

pour mieux visualiser où passe le programme tu devrais executer

print("entrer l'inferieur :",end=" ")
a=eval(input())
print("superieur :",end=" ")
b=eval(input())
s=0

n=a
while n<=b:
    print("Traitement de ", n)
    if n%3==0 and n%5==0:
        print("valeur OK ", n)
        s=s+n
        print("Nouveau cumul ", s)
    n=n+1
print("La somme recherchee vaut",s)
A oui enfin je comprend ^^" En fin de compte j'ai pas compris l'énoncer alors que la tout me paraît clair merci beaucoup !
jee pee
Messages postés
25269
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 mai 2019
9104 > deel -
Avant de regarder la solution, il faut écrire son propre programme. Ainsi on se casse la tête sur comment l'écrire, il devient alors plus simple de décortiquer la solution ;-)
Commenter la réponse de jee pee