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 :

Problème simple : >= et <=


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Par défaut Problème simple : >= et <=
    Bonjour,

    Je retombe toujours sur ce même problème, que je ne comprends pas.

    Un extrait de code pour illustrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if liste[1] >= 'F' and 'M' >= liste[1] :
                    print(ligne)
    Bien sûr, à l'exécution, il m'affiche les lignes avec les prénoms commençant par F jusque......L inclus. Il ne m'affiche pas ceux qui commencent par M. Les F pas de soucis, ils sont bien pris. Mais pas les M.
    Pourtant, il y a bien un >=.

    Quelqu'un aurait la patience de m'expliquer pourquoi ?
    Parce que j'ai l'impression de tourner en rond sur CE truc depuis un moment, donc tant que j'aurai pas compris pourquoi.....

    D'avance merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Salut,

    Citation Envoyé par RowanMayfair Voir le message
    Quelqu'un aurait la patience de m'expliquer pourquoi ?
    Pour vous expliquer pourquoi, il faudrait déjà pouvoir reproduire le problème... car çà devrait fonctionner comme vous l'attendez.

    Avec Python, on préférera écrire çà: 'F' <= liste[1] <= 'M'...
    C'est plus concis même si ce ne sera pas pus rapide.

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

  3. #3
    Membre éclairé Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Par défaut
    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
    def extraction(fichier) :
        """ Fonction qui permet d'extraire d'un fichier donné toutes les lignes qui
    correspondent à des prénoms dont la 1ère lettre est située entre F & M inclus. """
        fs = open(fichier,'r')
        i = 0
        while 1 : 
            ligne = fs.readline()
            liste = ligne.split('#')
     
            if ligne == "" :
                break
            else :
                if liste[1] >= 'F' and 'M' >= liste[1] :
                    print(ligne)
     
            i += 1
        fs.close()
     
    nom_fichier = input('Indiquez le nom du fichier concerné : ')
     
    extraction(nom_fichier)
    ou alors, si vous préférez, une version plus.....'Swinnen' pour laquelle j'ai simplement modifié l'entrée à rechercher :
    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
    27
    28
    29
    30
    31
    def cherche_prenom(ch) :
        """Recherche dans ch la portion de chaine contenant le prénom"""
        i,f,ns = 0,0,0
        cc = ""
        while i < len(ch) :
            if ch[i] == '#' :
                ns += 1
                if ns == 1 :
                    f = 1
                elif ns == 2 :
                    break
            elif f == 1 :
                cc += ch[i]
            i +=1
        return cc
     
    nomF = input('Nom du fichier à traiter : ')
    lettre_debut = input('Indiquer la 1ère borne : ')
    lettre_fin = input('Indiquer la 2ème borne : ')
     
    fi = open(nomF,'r')
     
    while 1 :
        ligne = fi.readline()
        if ligne == "" :
            break
        if lettre_debut <= cherche_prenom(ligne) <= lettre_fin :
            print(ligne)
     
     
    fi.close()
    Et dans les 2 cas, il ne m'affiche pas les lignes avec les prénoms en M
    Et pourtant, il y en a (évidemment ^^)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par RowanMayfair Voir le message
    Et dans les 2 cas, il ne m'affiche pas les lignes avec les prénoms en M
    Et pourtant, il y en a (évidemment ^^)
    Parce que vous comparez le prénom et non la première lettre du prénom: dans un cas, c'est un ordre arithmétique dans le second, c'est un ordre alphabétique (où 'M' est toujours plus petit que 'M' suivi de n'importe quoi).

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

  5. #5
    Membre éclairé Avatar de RowanMayfair
    Femme Profil pro
    Développeuse Freelance
    Inscrit en
    Mars 2019
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeuse Freelance

    Informations forums :
    Inscription : Mars 2019
    Messages : 247
    Par défaut
    ...
    en effet.....pas pensé à ça.
    Dans le 1er code (le mien), il m'a suffit de préciser et ça roule.

    Mais alors, pourquoi il m'a bien pris les prénoms à partir de F ?
    C'est ça qui m'a induit en erreur....pas de chance sans doute


    Merci

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par RowanMayfair Voir le message
    Mais alors, pourquoi il m'a bien pris les prénoms à partir de F ?
    Parce que dans l'ordre alphabétique, 'F' suivi de n'importe quoi est plus grand que 'F' (la même chose que pour 'M').

    Citation Envoyé par RowanMayfair Voir le message
    C'est ça qui m'a induit en erreur....pas de chance sans doute
    D'abord le manque de rigueur... puis le manque de repères: vous débutez, il y a beaucoup à apprendre avant de ne pas se mélanger les pinceaux.
    De plus, vous n'avez pas encore assez pratiqué pour être en confiance sur ce que font les constructions du langage et les questionner.

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

Discussions similaires

  1. [Random] problème simple
    Par yolepro dans le forum Langage
    Réponses: 11
    Dernier message: 23/10/2006, 09h51
  2. Problème simple de carte réseau
    Par Bayard dans le forum Matériel
    Réponses: 1
    Dernier message: 25/09/2006, 16h29
  3. Problème simple avec des checkbox
    Par nanor21 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 00h26
  4. [Javadoc]La Javadoc et un problème... simple mais paralysant
    Par lionrouge dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/12/2005, 00h00
  5. Problème simple d'apostrophe qui m'ennerve !
    Par beletteroi dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/09/2005, 21h58

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