我想让它产生一个单词旁边的数字,以便我可以要求用户使用相应的数字来选择单词。
这是我的代码
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)
每行的第一个数字打印在左边,但是右边的单词,而其余的数字和单词打印到RTL。似乎一旦python开始在LTR线上打印,它就可以切换到RTL,但不能从RTL返回到LTR。请注意,即使是在每行上第二组数字的数字右侧打印句点。
它非常好用英语单词很好看:
我猜测一项工作可能涉及将数字放在单词之后,但我认为必须有更好的方法。
答案 0 :(得分:6)
在每个希伯来语单词的开头加上从右到左嵌入字符u'\u202B'
,以及弹出方向格式字符{{ 1}},在每个单词的末尾。
这会将希伯来语单词设置为另外的LTR文档中的RTL部分。
(请注意,虽然这会产生正确的输出,但您还依赖于正在运行此脚本的终端应用程序,并正确实施了Unicode Bidirectional Algorithm。)
答案 1 :(得分:1)
见Bi-directional (BiDi) layout implementation in pure python。
安装:
pip install python-bidi
示例用法:
from bidi.algorithm import get_display
print(get_display('LTR text with RTL text (טקסט לדוגמא) will be printed correctly'))
如果您使用的是 Django,也可以使用以下软件包: http://pypi.python.org/pypi/django-bidi-utils