Affichage accents dans les listes en Python
Résolu
Bonjour,
En Python, lorsque j'utilise la méthode "append" pour ajouter des éléments à mes listes, j'ai un problème avec l'affichage des accents. Par exemple, si la valeur de ma variable est "Février", je reçois en sortie par la méthode append "F\xe9vrier". Si j'utilise la commande "print" avec la même variable, l'affichage est bon.
Quel est le problème?
Merci
En Python, lorsque j'utilise la méthode "append" pour ajouter des éléments à mes listes, j'ai un problème avec l'affichage des accents. Par exemple, si la valeur de ma variable est "Février", je reçois en sortie par la méthode append "F\xe9vrier". Si j'utilise la commande "print" avec la même variable, l'affichage est bon.
Quel est le problème?
Merci
Configuration: Windows XP Firefox 3.0.6
6 réponses
-
ModérateurA lire impérativement concernant tes problème d'accents:
https://sebsauvage.net/python/charsets_et_encoding.html-
salut seb,
dis moi sais-tu comment je peux transformer une liste en chaine de caractere?
voici mon code:
def mdp_aleat():
print "Combien de caracteres?",
nb_caract=int(raw_input())
mdp=nb_caract*[0]
val=nb_caract*[0]
for i in range (nb_caract):
val[i]=random.randrange(random.randrange(48,90),random.randrange(97,122))
mdp[i]=chr(val[i])
print val, mdp
print "Mot de passe=",mdp
malheuresement, mdp me retourne une liste ms moi je voudrai recuperer une chaine de caratère.
Merci
-
-
Salut, c'est normal, ce qui est retourné est un objet string. Cet objet est codé. La fonction print se charge de décoder pour afficher.
-
Dans un programme on se sert en général de print pour afficher des résultats, pourquoi vouloir passer directement par l'objet? Puis cette chaîne tu dois l'afficher où? Sur la console? Dans une interface graphique?
-
En fait, j'utilise "print" mais pour afficher la valeur de la variable mise à jour par "append". Je voulais juste savoir s'il était possible d'afficher directement cette variable avec les bons caractères sans en extraire les éléments un à un.
exemple:
t3=['Janvier']
t3.append('Février']
print t3
La sortie va donner ['Janvier', 'F\xe9vrier'].
Est-il possible d'avoir directement la sortie: ['Janvier', 'Février']?
-
-
Là tu affiche un objet liste qui utilise lui même des objets chaîne, donc codés. Essaie de mettre peut être au début du code source :
# -*- coding=latin-1 -*-
-
Modérateur
print "Mot de passe=","".join(mpd)
-
-
-
Modérateur@uglukNon.
Pas besoin.
Exemple de code:#!/usr/bin/python # -*- coding: iso-8859-1 -*- maliste = [u"bébé",u"tété",u"mémé"] print ' ; '.join(maliste)
et dans une fenêtre Dos, je lance mon programm qui s'affiche très bien:c:\3>python a.py bébé ; tété ; mémé
-
@sebsauvageÇa marche lorsqu'il n'y a que des mots dans la liste. Le problème c'est que ma liste comprend des "strings" et des "integer"... ce que la fonction "join" ne semble pas supporter:
TypeError: sequence item 1: expected string or Unicode, int found -
Modérateur@uglukah ben oui, quand on mélange des pommes et des bananes :-)
#!/usr/bin/python # -*- coding: iso-8859-1 -*- maliste = [u"bébé",u"tété",5,u"mémé"] print ' ; '.join( [unicode(i) for i in maliste] )
-
-
merci