Python € Zeichen in Liste einfügen?
Hi, Ich programmiere mit Python auf einem Linux Rechner und ich weiß, dass der Unicode für das € Symbol u"\u20AC" ist.
Wenn ich einen normalen Print Befehl mache funktioniert der Code auch und das € wird angezeigt.
Ich weiß aber nicht wie ich € auch in einer Liste einfügen kann.
Ich hab z.B. Liste.append("500" + u"\u20AC") ausprobiert,
oder auch Liste.append(u"\u20AC500")
Aber das Ergebnis sieht immer so aus:
[u'500\u20ac'] (Im ersten Fall)
[u'\u20ac500'] (Im zweiten Fall)
Was hab ich falsch eingegeben?
4 Antworten
Du machst nichts falsch. Wird eine Liste in einen String gewandelt, sieht man die Repräsentierung repr(e) der enthaltenen Objekte, und nicht str(e). Das macht die Ausgabe einer Liste generell hässlich. Nur bei Zahlen sieht es einigermaßen brauchbar aus.
Bei einem Python 2 unicode String s liefert str(s) die Zeichenkette (mit Sonderzeichen) und repr(s) immer die Ersatzdarstellung aus puren ASCII-Zeichen in u'...' eingeschlossen.
Willst Du eine ganze Liste schöner ausgeben, verwende str.join():
print "{ ", ", ".join(str(x) for x in Liste), " }"
In Python 3 wurde unicode abgeschafft. Das ändert aber nichts an der (meiner Meinung nach verkorksten) String-Darstellung einer Liste.
Fazit: Verwende zur lesbaren Ausgabe von Listen immer str.join().
import unicodedata
....
a = u"€"
sign = unicodedata.normalize('NFKD', a).encode('ascii','ignore')
List.append('500' + sign)
sorry muss u\'€' sein mit single quotes '€' statt "€"
kanst du nicht einfach +"€" dahinter eingeben.dann wirds doch auf jeden fall angezeigt. wen die schriftart die du verwendest auch ein "€" zeichen hat.
aber kenn das mit dem unicode auch garnicht. nie verwendet oder gebraucht.
ne der Python Interpreter kennt standardmäßig leider kein € Zeichen, dass hab ich schon probiert, dann kommt ne Fehlerrmeldung
Das kannst Du ändern, indem Du am Anfang jeder py-Datei sowas schreibst:
# -*- coding: utf-8 -*-
und die Datei mit UTF-8 speicherst. Das kann man meist irgendwo im Speichern-Dialog des Editors auswählen.
Wie wäre es mit:
>>> a=[]
>>> a.append('\u20ac')
>>> a
['€']
Hab die Variante jetzt ausprobiert und es kommt zwar keine Fehlermeldung oder so, aber in der Liste steht trotzdem nur ['500']