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 :

nouvelle inscrite sur le site


Sujet :

Python

  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut nouvelle inscrite sur le site
    bonsoir
    enfaite je suis une étudiante en l1 informatique je viens de commencer programmation sur python donc je suis débutante ,j'ai rencontrée des difficulter sur les fonctions
    enfaite je comprend pas pourquoi sur ce code la valeur s'affiche comme sa et je voudrais savoir comment je dois faire pour qu'il affiche les é È en gros les accents
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def voyelle(x) : return x in 'aeyuio'
     
    def explose(mot) : 
         v = c = ''
         for x in mot :
                 if voyelle(x) : v += x
                 else : c += x
         return v, c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    valeur = explose ('désespéré')
     valeur
    ('e', 'd\xc3\xa9ssp\xc3\xa9r\xc3\xa9')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    valeur = explose('crève-coeur')
     valeur
    ('eoeu', 'cr\xc3\xa8v-cr')
    merci et bonne année 2014

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    c'est la représentation normale avec Python 2 sauf si tu utilises print
    Python 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> s = 'désespéré'
    >>> s
    'd\xc3\xa9sesp\xc3\xa9r\xc3\xa9'
    >>> print s
    désespéré
    Python 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> s = 'désespéré'
    >>> s
    'désespéré'
    >>> print(s)
    désespéré
    Deux conseils, utilise la balise code quand tu postes du code, le '#' dans la barre d'édition et évite cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if voyelle(x) : v += x
    else : c += x
    Pas beau !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if voyelle(x): 
        v += x
    else: 
        c += x
    Ca beau !

  3. #3
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut pour le code xc3\xa9sesp\xc3\xa9r\xc3\xa9'
    daccord merci

    mais pour le code xc3\xa9sesp\xc3\xa9r\xc3\xa9'

    je voudrais qu'il me renvois comme réponse quand je tappe

    valeur ou print valeur

    comme valeur = explose('cheval')
    il envois
    valeur
    ('ea','chvl')

    comment je vais faire pour me fasse la meme chose pour les accents
    merci

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    ben de la même maniè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
     
    >>> s = 'désespéré'
    >>> v = 'aeiouy'
    >>> a, b = '', ''
    >>> for l in s:
    ...     if l in v:
    ...             a += l
    ...     else:
    ...             b += l
    ... 
    >>> a
    'e'
    >>> b
    'désspéré'
    Ce n'est pas ce que tu veux ?

  5. #5
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut ce que je veux
    bonsoir

    je vous donne un exemple de ce que je veux


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    def voyelle(x) : return x in 'aeyuio'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def explose(mot) : 
         v = c = ''
         for x in mot :
                 if voyelle(x) : v += x  else : c += x
         return v, c
    valeur=explose('cheval')
    valeur
    ('ea',chvl')

    mais quand je mets
    valeur=explose('désespèré')

    sa me marque

    valeur
    ('e', 'd\xc3\xa9ssp\xc3\xa9r\xc3\xa9')

    et je veux que sa me marque
    ('éeèé','dsspr')

    merci

  6. #6
    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
    Bonsoir,

    Citation Envoyé par l1informatique Voir le message
    et je veux que sa me marque
    ('éeèé','dsspr')
    Ainsi que l'a dit VinsS pour éviter "('e', 'd\xc3\xa9ssp\xc3\xa9r\xc3\xa9')", il suffit de passer par "print".

    Ensuite, pour que les accents soient reconnus comme des "voyelles" dans votre code il suffit de les ajouter!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    def voyelle(x) : return x in 'aeyuioéè'
    Et cela fonctionne avec le reste de votre code, même en Python 2! ;-)

    PS: en informatique, les lettres avec accent sont des lettres à part entière! ie: elles ne sont pas constituées d'une lettre plus un accent!! Ainsi "é" et "e" ont des représentations différentes (idem pour les majuscules):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> ord("e")
    101
    >>> ord("é")
    233
    >>> ord("É")
    201
    >>>
    Clodion

  7. #7
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut unicode
    merci

    mais le probléme s'il y a un tiret il affiche des code que apparament c'est de utf-8

    une sorte de unicode que en dois mettre au début

    # -*- coding :utf-8 -*



    exemple pour le mot
    valeur = explose('crève-coeur')
    valeur
    ('eoeu', 'cr\xc3\xa8v-cr')

  8. #8
    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
    Bonsoir,

    Citation Envoyé par l1informatique Voir le message
    merci

    mais le probléme s'il y a un tiret il affiche des code que apparament c'est de utf-8

    une sorte de unicode que en dois mettre au début

    # -*- coding :utf-8 -*



    exemple pour le mot
    valeur = explose('crève-coeur')
    valeur
    ('eoeu', 'cr\xc3\xa8v-cr')
    1) Tant que vous n'appliquerez pas les conseils de VinsS, vous rencontrerez le même problème.
    En Python2, indiquer une variable sur une ligne renvoie la représentation interne. Si vous voulez une représentation plus lisible, utilisez la fonction "print".
    2) S'il y a un tiret dans votre mot et que votre script le traite comme étant différent d'une voyelle… Et bien il est considéré comme une voyelle!!! Si vous ne voulez-pas que ce soit le cas, il suffit d'une petite condition pour le faire disparaître ou le mettre dans une catégorie distincte!!!

    PS: regardez ce que vous avez comme résultat!! Le tiret n'a rien à voir dans l'unicode!!

    Clodion

  9. #9
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut teste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def voyelle(x) : return x in 'aeyuioéèà'
    ... 
    >>> def explose(mot) : 
    ...     v = c = ''
    ...     for x in mot :
    ...             if voyelle(x) : v += x     else : c += x
    ...     return v, c
     
     valeur = explose ('désespéré')
     valeur
    ('\xc3\xa9e\xc3\xa9\xc3\xa9', 'dsspr')
    voila comme vous aviez dit mais le probléme il reconnait pas les accents

  10. #10
    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
    Bonsoir,

    Citation Envoyé par l1informatique Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def voyelle(x) : return x in 'aeyuioéèà'
    ... 
    >>> def explose(mot) : 
    ...     v = c = ''
    ...     for x in mot :
    ...             if voyelle(x) : v += x     else : c += x
    ...     return v, c
     
     valeur = explose ('désespéré')
     valeur
    ('\xc3\xa9e\xc3\xa9\xc3\xa9', 'dsspr')
    voila comme vous aviez dit mais le probléme il reconnait pas les accents
    Désolé, mais… Vous le voulez en quelle langue???

    Utilisez "print"…

    Citation Envoyé par VinsS Voir le message
    c'est la représentation normale avec Python 2 sauf si tu utilises print
    Python 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> s = 'désespéré'
    >>> s
    'd\xc3\xa9sesp\xc3\xa9r\xc3\xa9'
    >>> print s
    désespéré

    Clodion

  11. #11
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut
    hhhh

    je vous cite l'exercice comme sa vous aller comprendre en quelle langue

    essayer la fonction explose avec les mots 'désespèré' et 'crève-coeur'

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def voyelle(x) : return x in 'aeyuiéèo'
     
    def explose(mot) : 
    v = c = ''
    for x in mot :
    if voyelle(x) : v += x
    else : c += x
    return v, c
     
    valeur = explose ('cheval')
     
    valeur 
    ('ea', 'chvl')
    et pour les mots sa marque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    valeur = explose ('désespéré')
    valeur
    ('e', 'd\xc3\xa9ssp\xc3\xa9r\xc3\xa9')
     
    valeur = explose('crève-coeur')
    valeur
    ('eoeu', 'cr\xc3\xa8v-cr')
    alors qu'il faut qu'il affiche les é et è sans leur code

    voila merci et dsl car je suis encore débutante :ss

  12. #12
    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
    Bonsoir,
    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
    >>> def voyelle(x) : return x in 'aeyuioéè'
    ... 
    >>> def explose(mot) :
    ...      v = c = ''
    ...      for x in mot :
    ...              if voyelle(x) : v += x
    ...              else : c += x
    ...      return v, c
    ... 
    >>> valeur=explose('désespèré')
    >>> valeur
    ('\xc3\xa9e\xc3\xa8\xc3\xa9', 'dsspr')
    >>> print(valeur)
    ('\xc3\xa9e\xc3\xa8\xc3\xa9', 'dsspr')
    >>> print(valeur[0])
    éeèé
    >>>
    Ainsi que vous l'a dit VinsS, en Python2, la représentation interne n'est pas en unicode. Mais Python fait la conversion automatiquement lorsqu'il lui est demandé un affichage!
    Ici, de manière évidente les lettres accentuées sont reconnues par le script puisque "valeur[1]" vous renvoie "dsspr".
    En utilisant un "print" sur la première valeur, vous obtenez exactement ce que vous vouliez…

    Maintenant, si vous ne voulez pas utiliser "print"…
    Désolé, mais je ne sais pas dire mieux!!!

    PS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> valeur = explose('crève-coeur')
    >>> print valeur
    ('\xc3\xa8eoeu', 'crv-cr')
    >>> print valeur[0], valeur[1]
    èeoeu crv-cr
    >>>
    Clodion

  13. #13
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut
    merci pour les réponses

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

Discussions similaires

  1. [edouardrv] Nouvel adhérant sur ce site
    Par edouardrv dans le forum Présentations
    Réponses: 1
    Dernier message: 27/01/2014, 11h12
  2. Votre avis sur un nouvel affichage des actualités sur le site
    Par khayyam90 dans le forum Evolutions du club
    Réponses: 9
    Dernier message: 28/06/2010, 11h35
  3. Petite nouvelle sur le site et en Flash !
    Par flo91 dans le forum Flash
    Réponses: 3
    Dernier message: 25/05/2009, 17h44
  4. Page de rapport de bug sur le site de Sun
    Par piff dans le forum Général Java
    Réponses: 1
    Dernier message: 03/03/2003, 18h12

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