Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/05/2008, à 21:54

pirou01

[Resolu][python encodage] accents dans un script

Bonjour à tous,

Voila, j'ai des connaissances en php-mysql et il y a peu j'ai voulu me lancer dans le python ...

Or je me heurte à un problème que je ne parviens pas a trouver la résolution malgré 3h de recherches web (je suis peut-être pas doué mais c'est mon premier topic pour demander de l'aide car je bloque complètement) !

Donc je suivait le livre : "Apprendre a programmer avec Python".

C'est à l'exercice 5.11...

Voici mon code :

# -*- coding: UTF-8 -*-

# But : Afficher ['Janvier',31,'Février',28,'Mars',31, etc...].


t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin','Juillet', 'Août', 'Septembre', 'Octobre',  'Novembre', 'Décembre']

n_t1, n_t2 = len(t1), len(t2)

if (n_t1==n_t2):
    i=0
    t3= []
    while (i < n_t1):
        t3.append(t2[i])
        t3.append(t1[i])
        i = i+1
else :
    print "les deux chaines n'ont pas le même nombre de caractères"
    
print t3

Voici ce que python me renvoie :

['Janvier', 31, 'F\xc3\xa9vrier', 28, 'Mars', 31, 'Avril', 30, 'Mai', 31, 'Juin', 30, 'Juillet', 31, 'Ao\xc3\xbbt', 31, 'Septembre', 30, 'Octobre', 31, 'Novembre', 30, 'D\xc3\xa9cembre', 31]

Le résultat est donc correct mais aucun caractère ne passe ... Pourtant mon encodage de fichier est bien utf-8... Par défaut l'encodage python est ascii...

Or voila, malgré mes recherches je ne trouve pas le moyen de faire prendre les accents par python... C'est assez énervant ...


(résolution dans le livre mais qui renvoie le même problèmes de caractères smile

# Combinaison de deux listes en une seule
# Listes fournies au départ :
t1 = [31,28,31,30,31,30,31,31,30,31,30,31]
t2 = ['Janvier','Février','Mars','Avril','Mai','Juin',
      'Juillet','Août','Septembre','Octobre','Novembre','Décembre']
# Nouvelle liste à construire (vide au départ) :
t3 = []
# Boucle de traitement :
i = 0
while i < len(t1):
    t3.append(t2[i])
    t3.append(t1[i])
    i = i + 1
# Affichage :
print t3

Merci beaucoup!
Pirou01

Dernière modification par pirou01 (Le 26/05/2008, à 22:42)

Hors ligne

#2 Le 26/05/2008, à 22:28

reeth_no_log

Re : [Resolu][python encodage] accents dans un script

essaye de faire un :

for i in t3:
    print i,


Comme cela, tu affichera les éléments du tableau de manière correcte. Sinon, je crois que l'interpréteur te renvoie le code utf8 des caractères utilisés, ce qui est normal car tu affiche toute la liste de manière 'brute'.

#3 Le 26/05/2008, à 22:41

pirou01

Re : [Resolu][python encodage] accents dans un script

Effectivement, un problème qui n'en est pas un... il m'affichait le format brut de ce contenant la variable...

si je faisais un

print t3[2], il me met correctement les accents smile

Merci beaucoup et longui vie à ubuntu smile

==> résolu et désolé du dérangement !

Hors ligne