CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Incompréhension Python

iNokia
iNokia
Niveau 9
22 août 2016 à 18:56:44

Bonsoir tout le monde, je me suis mis il y'a peu à python, mais quelque chose me turlupine.
j'ai un exercice qui est je cite :

"Écrire un programme qui, étant données deux bornes entières a et b, additionne les nombres
multiples de 3 et de 5 compris entre ces bornes. Prendre par exemple a = 0, b = 32 ; le résultat
devrait être alors 0 + 15 + 30 = 45."

Donc j'ai écrit cela pour voir s'il me donne avant tout les bons nombres :

print("Donnez deux bornes ")
a = int(input())
b = int(input())


while (a <= b):
    if  (a%3 and a%5) == 0:
        print(a)
    a += 1

Donc pour moi la condition IF devrait me retourner :d) 15 et 30
Car si seulement si a divisé par 3 et par 5 donne 0 et bien on écrit le nombre sauf que je reçois
:d) 0 3 5 6 9 10 12 15 18 20 21 24 25 27 30

Et bien sûr certains ne sont pas divisible par 5 PAR CONTRE si je mets un or à la place du and ca me donne le bon résultat.

Et donc je suis complètement perdu, pourriez vous m'expliquer s'il vous plait là où je foire ? :noel:

Childermass
Childermass
Niveau 9
22 août 2016 à 19:12:30

Tu as mal écrit ta condition. Ce que tu veux c'est a % 3 == 0 and a % 5 == 0

Ce que tu as fait, d'après le parenthésage, ça va tester que l'expression "a%3 and a%5" vaut 0. Il faut savoir qu'en Python, 0 et False c'est "la même chose". De même, tous les entiers différents de 0 sont évalués à True. Du coup prend quelques exemples :

Pour a =3
a%3 and a%5 => 0 and 2 => False => False == 0 donc on écrit 3 à l'écran

Pour a = 4
a%3 and a%5 => 1 and 4 => True and True => True => True != 0 donc on écrit pas 4 à l'écran

iNokia
iNokia
Niveau 9
22 août 2016 à 19:44:43

D'accord merci je pense avoir compris maintenant :ok:

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment