2017-03-02 16 views
3

Ich möchte es die Nummer neben einem Wort, so dass ich den Benutzer bitten können, das Wort mit der entsprechenden Nummer auswählen.Python von rechts nach links und von links nach rechts gedruckt

Dies ist mein Code

alt_words = hlst 
loopnum = 8 
for i in range(loopnum): 
     if i < len(alt_words): 
      print('{0}. {1:<20}'.format((i+1), alt_words[i]), end =' ') 
      if i == 0: 
       print('', end=' ') 
     if i + 9 <= len(alt_words): 
      print('{0}. {1:<20}'.format((i+9), alt_words[i+8]), end =' ') 
     if i + 17 <= len(alt_words): 
      print('{0}. {1:<20}'.format((i+17), alt_words[i+16]), end=' ') 
     print('\n'+'-'*80) 

Es ist diese Output from code

Die erste Zahl jeder Zeile auf der linken Seite erzeugt gedruckt wird, aber das Wort auf der rechten Seite, während der Rest der Zahlen und Wörter werden RTL gedruckt. Es scheint, dass, sobald Python begonnen hat, auf einer LTR-Zeile zu drucken, es zu RTL wechseln kann, aber nicht zurück von RTL zu LTR. Beachten Sie, dass sogar die Punkte rechts neben der Nummer für die zweite Reihe von Zahlen in jeder Zeile gedruckt werden.

Es funktioniert sehr gut und sieht gut aus mit Englisch Worten:

python table works in english

ich eine Arbeit um vielleicht beinhalten bin zu raten, die Zahl hinter dem Wort setzen, aber ich glaube es muss ein besserer Weg geben.

+0

Hast du versucht, [diese] (http : //stackoverflow.com/questions/3856403/right-to-left-languages-in-python)? –

+0

Schönes Kaninchen Loch. Die Hauptantwort sagt "Hast du das versucht ..." –

+0

Die tatsächlichen Wörter auf korrekt angezeigt werden, so dass ich nicht sicher bin, dass es relevant ist. – Seraphya

Antwort

4

Setzen Sie einen Right-to-Left Embedding Charakter, u'\u202B', am Anfang jeden hebräischen Wortes, und ein Pop Directional Formatierung Charakter, u'\u202C', am Ende jeden Wortes.

Dadurch werden die hebräischen Wörter als RTL-Abschnitte in einem anderen LTR-Dokument getrennt.

(Beachten Sie, dass dies die richtige Ausgabe zu erzeugen, Sie sind auch abhängig von der Terminal-Anwendung, in der Sie laufen dieses Skript die Unicode Bidirectional Algorithm korrekt umgesetzt zu haben.)

Verwandte Themen