IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[ex.34] suite de l'aventure


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Par défaut [ex.34] suite de l'aventure
    Bon alors comme il me l'a été demandé ou suggéré ( je pense que le choix me revenais au final ) je crée un nouveau sujet pour soumettre mon travail face à la horde de professionnels que vous êtes.

    Comme cité dans mon précédent topic ( qui devrait continuer à être alimenté ?), je me suis remis au travail et me voila à l'exercice 34 ( comment ça je chôme ? Mais pas du tout ! ) dont voici le sujet :

    É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.
    avec tout de même un tout petit peu d'aisance ( il ne faut sans doute pas trop exagérer ) je suis parvenu à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    # -*- coding: utf-8 -*-
    #Ce programme permet d'identifier tous les multiples de 3 et de 5 dans une
    # borne donnée par l'utilisateur.
    # il additionne ensuite ses valeurs et affiche le resultat a l'ecran
     
    minimum = int(raw_input("veuillez entrer une valeur minimal:"))
    maximum = int(raw_input("veuillez entrer une valeur maximal:"))
    a = minimum
    b = maximum
    compteur = 0
    liste = []
    index = 0
    m1 = 3
    m2 = 5
    resultat = 0
    while compteur < b:
        a = a + 1
        compteur = compteur + 1
        if a % m1 == 0 and a % m2 == 0:
            liste.append(a)
            index = index + 1
            resultat = resultat + a
            print("les valeurs situees entre", minimum, "et", maximum, "qui")
            print("sont a la fois multiples de 3 et de 5 sont les suivants:")
            print(liste, "la somme de ces elements est egale a :")
            print(resultat)
    Encore une fois, notons a quel point on se sent fière est satisfait lorsqu'on parvient à écrire un programme d'approximativement 30 lignes et qui fonctionne en plus !

    Un gros merci à vous de m'épaulez au travers de mon périple..Au passage, et vous l'aurez sans doute compris, je souhaiterais que vous commentiez mon code, faite ressortir les points qui pourraient être améliorés pour plus de clarté peut être ( et c'est la que je repense à cette phrase précieuse au début du bouquin, concernant l'importance des commentaires ) ou tout simplement autour de la démarche logique du problème.

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Pas mal de déclaration de variables dans tout cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    current = minimum = int(raw_input("veuillez entrer une valeur minimal: "))
    maximum = int(raw_input("veuillez entrer une valeur maximal: "))
    liste = []
    while current <= maximum:
        if current % 3 == 0 and current % 5 == 0:
            liste.append(current)
        current += 1
    print "les valeurs situees entre", minimum, "et", maximum, "qui"
    print "sont a la fois multiples de 3 et de 5 sont les suivants:"
    print liste
    print "la somme de ces elements est egale a :", sum(liste)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    current = minimum = int(raw_input("veuillez entrer une valeur minimal: "))
    maximum = int(raw_input("veuillez entrer une valeur maximal: "))
    somme = 0
    liste = []
    while current <= maximum:
        if current % 3 == 0 and current % 5 == 0:
            somme += current  # somme = somme + current
            liste.append(current)
        current += 1
    print "les valeurs situees entre", minimum, "et", maximum, "qui"
    print "sont a la fois multiples de 3 et de 5 sont les suivants:"
    print liste
    print "la somme de ces elements est egale a :", somme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    current = minimum = int(raw_input("veuillez entrer une valeur minimal: "))
    maximum = int(raw_input("veuillez entrer une valeur maximal: "))
    somme = 0
    liste = []
    while current <= maximum:
        if not current % 3  and not current % 5:
            somme += current  # somme = somme + current
            liste.append(current)
        current += 1
    print "les valeurs situees entre", minimum, "et", maximum, "qui"
    print "sont a la fois multiples de 3 et de 5 sont les suivants:"
    print liste
    print "la somme de ces elements est egale a :", somme
    @+

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Question: Puisque vous utilisez Python 2.x pourquoi n'utilisez vous pas input ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    current = minimum = input("veuillez entrer une valeur minimal: ")
    maximum = input("veuillez entrer une valeur maximal: ")
    somme = 0
    liste = []
    while current <= maximum:
        if not current % 3  and not current % 5:
            somme += current  # somme = somme + current
            liste.append(current)
        current += 1
    print "les valeurs situees entre", minimum, "et", maximum, "qui"
    print "sont a la fois multiples de 3 et de 5 sont les suivants:"
    print liste
    print "la somme de ces elements est egale a :", somme

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Comme je doute que not, a = b = c et += ne soit abordés dans votre tuto à ce niveau une version plus légère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    minimum = input("veuillez entrer une valeur minimal: ")
    maximum = input("veuillez entrer une valeur maximal: ")
    somme = 0
    liste = []
    current = minimun
    while current <= maximum:
        if current % 3 == 0 and current % 5 == 0:
            somme = somme + current
            liste.append(current)
        current = current + 1
    print "les valeurs situees entre", minimum, "et", maximum, "qui"
    print "sont a la fois multiples de 3 et de 5 sont les suivants:"
    print liste
    print "la somme de ces elements est egale a :", somme
    Comme vous le voyez pas besoin de multiplier les variables .

    Ceci dit votre code est 'juste'

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 049
    Par défaut
    Salut PauseKawa,

    Je suis pas totalement d'accord avec ta phrase

    Question: Puisque vous utilisez Python 2.x pourquoi n'utilisez vous pas input ?
    Dans la doc il est bien spécifié

    Citation Envoyé par doc officielle
    Consider using the raw_input() function for general input from users
    Mais aussi

    Citation Envoyé par "doc offcielle
    This function does not catch user errors
    Peut-être voulais-tu dire cela pour la version 3 python, et non la 2?

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour fred,

    Je suis bien d'accord avec This function does not catch user errors mais si l'on considère int(raw_input("veuillez entrer une valeur minimal: ")) c'est un moindre mal.
    Non, je ne parle pas de Python 3 puisque raw_input() n'existe plus.
    En fait puisque suppadrakn écrit int(raw_input()) c'est qu'il considère que l'utilisateur vas entrer un nombre. Dans le cas contraire nous savons tous ce qui vas se passer, y compris suppadrakn.
    Autant utiliser input plutôt qu'un int(raw_input()) assez 'moche'.
    Mais bon, j'aurais attendu une réflexion du PO

    En fait, vu que % semble acquis, la pédagogie de l'exercice (désolé si je me trompe mais aucune envie de regarder à quoi cela correspond) me semble porter sur and/or > les conditions multiples. Dans ce sens suppadrakn s'en ai bien tiré.

    @+

Discussions similaires

  1. reauete suite à une requete
    Par 74160 dans le forum Requêtes
    Réponses: 4
    Dernier message: 22/08/2003, 14h42
  2. [JSP][JDBC]1 seule connexion à la DB(suite)
    Par betherb dans le forum JDBC
    Réponses: 6
    Dernier message: 14/08/2003, 10h02
  3. Migration Access > SQL Server (suite) : Compteur
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/03/2003, 14h08
  4. Réponses: 2
    Dernier message: 04/03/2003, 23h24
  5. Pb BDE suite a passage en Windows 2000 pro
    Par ARIF dans le forum Paradox
    Réponses: 4
    Dernier message: 18/11/2002, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo