Frage

Ich habe zwei String.printable Geheimnisse in der einer Frage.

Als erstes werden in Python 2.6:

>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

am Ende des Strings suchen, und Sie werden feststellen, ‚\ X0B \ x0c‘ wie ein wunder Daumen-ragt. Warum sind die hier? Ich benutze eine Maschine der australischen Einstellungen festgelegt, so sollte es keine Zeichen mit Akzent oder dergleichen sein.

Als nächstes versuchen diesen Code ausgeführt wird:

for x in string.printable: print x,
print
for x in string.printable: print x

Die erste Zeile erfolgreich druckt alle durch ein Leerzeichen getrennt Zeichen. Die beiden ungeraden Zeichen ausfallen als die männlichen und weiblichen Symbolen.

Die zweite Zeile druckt erfolgreich alle Zeichen mit Ausnahme der letzten von einem Zeilenvorschub getrennt. Das männliche Symbol druckt; das weibliche Symbol wird mit einem fehlenden Zeichen (a-Box) ersetzt.

Ich bin sicher, dass Python nicht geschlechts voreingenommen sein soll, also was mit dem Unterschied gibt?

War es hilfreich?

Lösung

Es gibt einen Unterschied in „printable“ für „kann auf dem Bildschirm angezeigt werden“. Das Terminal zeigt den niedrigen ascii Druckersteuerungscode 0x0B und 0x0C als die männlichen und weibliche Symbole, weil das ist, was der Indizes in Ihrer Schrift enthält. Diese Zeichen sind genauer als die vertikale Tabulator und Form Feed Zeichen beschrieben. Diese beiden Zeichen, zusammen mit \ t \ r \ n, sind alle bedruckbar und haben gut definierte Dinge auf einem Drucker.

Andere Tipps

Von innen cmd.exe:

>>> print '\x0b'
♂
>>> print '\x0c'
♀
>>> print '\f' # form feed
♀
>>> print '\v' # vertical tab
♂
>>>

Innerhalb Emacs:

>>> print '\f\v'
^L^K

Hier ist ein Auszug aus Formaten (5) ‘man-Seite:

| Sequence | Character    | Terminal Action                             |
|----------+--------------+---------------------------------------------|
| \f       | form-feed    | Moves the printing position to the initial  |
|          |              | printing position of the next logical page. |
| \v       | vertical-tab | Moves the printing position to the start of |
|          |              | the next vertical tab position. If there    |
|          |              | are no more vertical tab positions left on  |
|          |              | the page, the behavior is undefined.        |
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top