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 :

Lecture et classement de nombres entiers


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Guam

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Par défaut Lecture et classement de nombres entiers
    Bonjour à toutes et tous,

    je suis un cours python sur cour sera pour le fun et commence à devenir folle car quelque chose m´échappe dans mon code et je n´arrive pas a trouver quoi... pourriez vous me pointer dans la bonne direction SVP.

    Résultat attendu: Ecrire un code qui lit toutes les entrées clavier d´entier et conserve à la fin le plus grand ET le plus petit (avec des break pour certaines saisies)

    Mon problème: je n´arrive pas a avoir la plus petite variable

    Mon code:
    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
     
    num = None
    smallest = None
    largest = None
    while True:
    #handle the edge cases
        inp = raw_input("Enter a number : ")
        if inp=="done" : break
        if len(inp)<1 : break #check empty lines
    #get the good data in
        try:
            num=int(inp)
        except:
            print "Invalid input"
            continue
        if num <= smallest:
            smallest = num
        elif num > largest :
            largest = num
        print smallest, largest
     
    print "Maximum", largest
    print "Minimum", smallest

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Comme vous initialisez vos variables smallest et largest à None, lorsque vous allez comparer cela à des entiers, Python2 retournera toujours vrai ou toujours faux (suivant le cas).
    Utilisez Python3, vous aurez un message d'erreur.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Guam

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Comme vous initialisez vos variables smallest et largest à None, lorsque vous allez comparer cela à des entiers, Python2 retournera toujours vrai ou toujours faux (suivant le cas).
    Utilisez Python3, vous aurez un message d'erreur.

    - W
    Merci Wiztricks: en fait la version de python est un pré requis du cours. Néanmoins je viens de tester avec Python 3 avec ce cours Apprendre à programmer avec Python 3 par Gérard Swinnen et comprends mieux le pb.

  4. #4
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par luc.tiber Voir le message
    Bonjour à toutes et tous,

    je suis un cours python sur cour sera pour le fun et commence à devenir folle car quelque chose m´échappe dans mon code et je n´arrive pas a trouver quoi... pourriez vous me pointer dans la bonne direction SVP.

    Résultat attendu: Ecrire un code qui lit toutes les entrées clavier d´entier et conserve à la fin le plus grand ET le plus petit (avec des break pour certaines saisies)

    Mon problème: je n´arrive pas a avoir la plus petite variable

    Mon code:
    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
     
    num = None
    smallest = None
    largest = None
    while True:
    #handle the edge cases
        inp = raw_input("Enter a number : ")
        if inp=="done" : break
        if len(inp)<1 : break #check empty lines
    #get the good data in
        try:
            num=int(inp)
        except:
            print "Invalid input"
            continue
        if num <= smallest:
            smallest = num
        elif num > largest :
            largest = num
        print smallest, largest
     
    print "Maximum", largest
    print "Minimum", smallest
    Bonsoir,
    Le problème:
    "None" est toujours plus petit qu'un nombre ou qu'un text.
    Une solution est simplement d'initialiser "smallest" ainsi que "largest" avec la première valeur entrée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        if smallest == None and largest == None:
            smallest = largest = num
    Ceci est à inséré avant le premier test.

    Clodion

  5. #5
    Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Guam

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Par défaut
    Citation Envoyé par Clodion Voir le message
    Bonsoir,
    Le problème:
    "None" est toujours plus petit qu'un nombre ou qu'un text.
    Une solution est simplement d'initialiser "smallest" ainsi que "largest" avec la première valeur entrée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        if smallest == None and largest == None:
            smallest = largest = num
    Ceci est à inséré avant le premier test.

    Clodion
    Merci clodion - je teste et reviens vers vous

  6. #6
    Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Guam

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Par défaut
    Citation Envoyé par luc.tiber Voir le message
    Merci clodion - je teste et reviens vers vous
    Merci à tous pour vos conseils. Vous êtes Super!
    Pour ceux que cela intéresse, voila mon code final

    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
     
    num = None
    smallest = None
    largest = None
    while True:
    #handle the edge cases
        inp = raw_input("Enter a number : ")
        if inp=="done" : break
        #if type(inp)<> int : break
        if len(inp)<1 : break #check empty lines
    #get the good data in
        try:
            num=int(inp)
        except:
            print "Invalid input"
            continue
        if smallest == None and largest==None:
            smallest=largest=num
        if num < smallest:
            smallest = num
        elif num > largest :
            largest = num
        print smallest, largest
     
    print "Maximum", largest
    print "Minimum", smallest

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2010, 19h59
  2. Inverser nombre entier de 4 chiffres
    Par zenattitude dans le forum Langage
    Réponses: 3
    Dernier message: 27/11/2005, 15h18
  3. Format des nombres entiers, séparateurs de milliers
    Par zazaraignée dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2005, 01h25
  4. nombre entier
    Par eleve36 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2005, 16h25
  5. [LG]Former un nombre entier à partir de chiffre naturel.
    Par lecanardjaune dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2003, 22h36

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