Kann mir jemand sagen wie ich das Zeichen µ anzeigen lassen kann?
Es erscheint immer nur ein Strich...
MFG
Stefanie
µ Anzeige
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Code: Alles auswählen
tk.Label(text = u"\u03bc")

Danke 

-
- User
- Beiträge: 15
- Registriert: Freitag 3. Oktober 2008, 17:19
auch mue='\xb5'
(alle Zeichen 32...255 darstellbar, hexadezimal )
(alle Zeichen 32...255 darstellbar, hexadezimal )
-- wn --
@Konrad Wenzel: Damit gibt's zwei Probleme: 1. Ist das bei 'latin-1'/'iso5589-1'/'cp1252' das Zeichen für Micro und nicht der griechische Kleinbuchstabe, und 2. funktioniert das eben nur bei Systemen, wo '\xb5' in der vom System verwendeten Kodierung wirklich etwas "mü-artiges" kodiert. Linux-Systeme laufen heutzutage mit UTF-8, da ergibt '\xb5' ein Fragezeichen in der Anzeige.
Code: Alles auswählen
In [55]: unicodedata.name('\xb5'.decode('latin-1'))
Out[55]: 'MICRO SIGN'
In [56]: unicodedata.name(u'\u03bc')
Out[56]: 'GREEK SMALL LETTER MU'
-
- User
- Beiträge: 15
- Registriert: Freitag 3. Oktober 2008, 17:19
- Danke, habe nachgeschaut, jetzt, unter SUSE-Linux10.3 kommen nach \xnnn per print nur noch '?', aber Tkinter gibt deutsche Umlaute damit immer noch wie erwartet aus, nicht aber mue oder Euro
-- wn --
-
- User
- Beiträge: 15
- Registriert: Freitag 3. Oktober 2008, 17:19
Noch ein Nachtrag zur Erleuchtung:
Code: Alles auswählen
#!/usr/bin/python
#---------------------------------------
# zchu Zeichen > 127 Test unicode
#---------------------------------------
k=0
for i in range(161,256):
if k > 5:
k=0
print
print i,' ',hex(int(unicode(i))),unichr(i),' ',
k += 1
print 'Listenende'
print '\n ein '+u'\xe4'+' und ein ' +u'\xb5'
-- wn --
Die Erleuchtung sieht aber noch sehr umständlich aus. Insbesondere das ``int(unicode(i))`` ist eine total sinnlose umwandlung von einer Zahl in ein Unicode-Objekt und wieder zurück in die gleiche Zahl. Und die letzte ``print``-Zeile, kann man auch viel einfacher mit *einer* Unicode-Zeichenkette schreiben. Des weiteren fehlt dem Skript der Kodierungskommentar.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def main():
for i, b in enumerate(xrange(160, 256)):
if i % 5 == 0 and i:
print
print u'%3i %02x %s ' % (b, b, unichr(b)),
print 'Listenende'
print u'\n ein \xe4 und ein \xb5'
if __name__ == '__main__' :
main()
-
- User
- Beiträge: 15
- Registriert: Freitag 3. Oktober 2008, 17:19
- nun je, der Unsinn ist ein Test, etwa wie x=log(exp(y)),
es ist aber auch unsinnig, in einer Laufanweisung ständig zu prüfen, ob das i noch da ist, wenn es nie NULL wird
es ist aber auch unsinnig, in einer Laufanweisung ständig zu prüfen, ob das i noch da ist, wenn es nie NULL wird
-- wn --
Ich teste nicht ob das `i` "da" ist, sondern ob es "wahr" ist und es ist doch einmal 0 und damit "falsch" und genau der Fall ist damit gemeint. Nimm das ``and i`` mal raus und Du wirst sehen, dass das einen Unterschied bei der Ausgabe macht.
-
- User
- Beiträge: 15
- Registriert: Freitag 3. Oktober 2008, 17:19
Also BlackJack, ich habe das Schnipsel mal verlustlos abgespeckt,
es läuft auch ohne i, ohne enumeration und ohne xrange,
besser für Tabellen ist dann aber noch eine spaltenweise Nummerierung
es läuft auch ohne i, ohne enumeration und ohne xrange,
besser für Tabellen ist dann aber noch eine spaltenweise Nummerierung
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def zz():
for b in range(160, 256):
if b % 5 == 0:
print
print u'%3i %02x %s ' % (b, b, unichr(b)),
print 'Listenende'
print u'\n ein \xe4 und ein \xb5'
def zs():
# 161...255: Es sind 95 Zeichen, ergibt 19 Zeilen mit 5 Spalten
# in Zeile 1: Zeichen 161, 161+19, 161+2*19 ... 161+76
# (allgemeiner evtl. mit Zeile und Spalte anstelle 19 und 5)
for a in range(19):
for c in range(5):
b = 161 + a + c*19
print u'%3i %02x %s ' % (b, b, unichr(b)),
print
print 'Listenende'
if __name__ == '__main__' :
zz() # Zeilenweise Nummerierung
zs() # Spaltenweise Nummerierung
-- wn --