Python € Zeichen in Liste einfügen?

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)


Gamelgandalf 
Fragesteller
 11.02.2018, 17:41

Hab die Variante jetzt ausprobiert und es kommt zwar keine Fehlermeldung oder so, aber in der Liste steht trotzdem nur ['500']

0

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.


Gamelgandalf 
Fragesteller
 11.02.2018, 17:01

ne der Python Interpreter kennt standardmäßig leider kein € Zeichen, dass hab ich schon probiert, dann kommt ne Fehlerrmeldung

0
ralphdieter  17.02.2018, 12:02
@Gamelgandalf

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.

0

Wie wäre es mit:

>>> a=[]
>>> a.append('\u20ac')
>>> a
['€']