我想让它产生一个单词旁边的数字,这样我就可以要求用户使用相应的数字来选择单词。
这是我的代码
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。请注意,即使是在每行上第二组数字的数字右侧打印周期。
它工作得很好,用英文单词看起来不错:
我猜一个工作可能涉及把数字放在后面,但我认为必须有一个更好的方法。
在每个希伯来词的开头放置一个从右到左的嵌入字符u'\u202B'
,在每个单词的末尾放置一个Pop Directional Formatting字符u'\u202C'
。
这将把希伯来语单词设置为另外的LTR文档中的RTL部分。
(请注意,虽然这将产生正确的输出,但您还依赖于正在运行此脚本的终端应用程序,该脚本已正确实现了Unicode Bidirectional Algorithm。)