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 :

trier les chiffres


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 27
    Points : 20
    Points
    20
    Par défaut trier les chiffres
    Bonjour,

    Je veux trier trois chiffres saisies par l'utilisateur par ordre, de plus petit au plus grand. Je dois d'abord utiliser if pour comparer les trois chiffres. Comment puis je mettre les chiffres dans la liste vide ? Merci

    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
    print("saisir trois entiers")
    a = int(input())
    b = int(input())
    c = int(input())
     
    liste = []
    if a < b and a < c and b < c:
        print sorted(liste)
    if a < b and a < c and c < b:
        #print liste.sort()
     
    if b < a and b < c and a < c:
        #print liste.sort()
    if b < a and b < c and c < a:
        #print liste.sort()
     
    if c < a and c < b and a < b:
        #print liste.sort()
    if c < a and c < b and b < a:
        #print liste.sort()

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    avec la méthode .append(), par exemple liste.append(toto), ça fait partie des bases du langage Python

  3. #3
    Membre habitué Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Points : 137
    Points
    137
    Par défaut
    Bonjour,
    la méthode sort() est faites pour trier une liste, donc quand vous faites:la liste est ordonnée.
    la fonction sorted(liste) ne modifie pas la liste, mais retourne une liste triée.
    La conclusion est que dans votre code il faut:
    -Soit utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    liste=[a,b,c]
    print sorted(liste)
    si vous voulez laisser la liste dans l'ordre de départ (a,b puis c) mais l'afficher dans l'ordre croissant;

    -Soit utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste=[a,b,c]
    liste.sort() #ou liste=sorted(liste)
    print liste
    si vous voulez ordonner la liste (donc modifié l'ordre de a,b et c) et donc l'afficher de manière ordonnée;

    -Soit utiliser des if et des else:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if a < b and a < c and b < c:
        liste=[a,b,c]
        print liste
    if a < b and a < c and c < b:
        liste=[a,c,b]
        print liste
    ...
    Mais en tout cas il ne faut pas mélanger les trois méthodes, sinon c'est le gros bazard dans le code !
    Bon courage.

    Remarque: la syntaxe print liste ne s'utilise que jusqu'à python 2; si vous utilisez python 3 il faut utiliser print(liste) (après peut-être utilisez-vous python2 donc c'est à tester pour voir quelle méthode convient).

  4. #4
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    J'ai fait deux différentes solutions. Dans la sortie, je ne vois pas la différence. Elles font un tri correctement.
    Par ailleurs, ne faut-il pas mettre les parenthèse pour le nom de la variable dans print ? Si je les mets pas, j'ai une erreur

    Version 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    liste = [a,b,c]
    if a < b and a < c and b < c:
    	liste.sort()
    	print (liste)
    Version 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste = [a,b,c]
    if a < b and a < c and b < c:
    	print (sorted(liste))

  5. #5
    Membre habitué Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Points : 137
    Points
    137
    Par défaut
    Pour les parenthèses relisez la remarque que j'ai faite en bas de mon dernier post (je pensais que vous étiez sous python 2, vu que vous n'aviez pas mis de parenthèse dans votre code au début).
    Sinon, je crois que vous avez mal lu ce que j'ai dit à propos de sorted et sort. Ces deux fonctions permettent de trier une liste, donc si vous les utilisez, n'utilisez pas les if a<b<c (ça ne fera pas d'erreur, et même ça marchera, mais ça ne sert strictement à rien puisque vous travaillez sur une liste déjà triée soit par sort, soit par sorted.
    La différence entre ces deux fonctions est un peu plus subtile, donc je réexplique avec un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> liste=[4,3,9]
    >>> sorted(liste)
    [3, 4, 9]
    >>> liste
    [4, 3, 9]
    >>> liste.sort()
    >>> liste
    [3, 4, 9]
    On voit donc que sorted renvoie une liste triée mais ne modifie pas la liste, alors que .sort() ne renvoie rien mais modifie la liste.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Merci beaucoup. C'est très claire, je comprends mieux

  7. #7
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    un mot rapide sur ton test if a<b and a<c and b<c, on pourrait l'écrire plus simplement if a<b and b<c, on est alors certain que a < c
    Python permet d'écrire ça de manière instinctive : if a < b < c tout simplement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/07/2011, 16h22
  2. Trier les enregistrements en fonction de la date
    Par mpereg dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/09/2004, 14h16
  3. Réponses: 3
    Dernier message: 26/04/2004, 12h51
  4. trier les données dans le cache ??
    Par psyco2604 dans le forum XSL/XSLT/XPATH
    Réponses: 31
    Dernier message: 10/06/2003, 10h03
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

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