2017-03-02 295 views
3

我希望它能夠生成一個單詞旁邊的數字,以便我可以要求用戶使用相應的數字來選擇該單詞。Python從右到左和從左到右打印得很好

這是我的代碼

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) 

它生產這個 Output from code

每一行的第一個號碼被印在左邊,而右邊的字,而該數字的其餘部分,單詞得到印刷RTL。看來,一旦python已經開始打印一行LTR,它可以切換到RTL,但不能從RTL返回到LTR。請注意,即使將時段打印在每行的第二組數字的右側,也是如此。

它工作得很好,看起來很好用英文單詞:

python table works in english

我猜測各地的工作可能涉及把數字後,但我想一定有更好的辦法。

+0

你有沒有試過[這](HTTP ://stackoverflow.com/questions/3856403/right-to-left-languages-in-python)? –

+0

漂亮的兔子洞。主要答案是「你有沒有試過這個......」 –

+0

正確顯示的實際文字,所以我不確定它是否相關。 – Seraphya

回答

4

把一個從右到左嵌入字符,u'\u202B',在每個希伯來語單詞的開頭和彈出方向格式字符,u'\u202C',在每一個單詞的結尾。

這將在其他LTR文檔中將希伯來文單詞分隔爲RTL部分。

(請注意,雖然這將產生正確的輸出,你也依賴於你正在運行已經正確實施Unicode Bidirectional Algorithm這個腳本的終端應用。)