【问题标题】:Print a sequence (unicode)-subscript in python在python中打印一个序列(unicode)-下标
【发布时间】:2021-10-20 02:36:58
【问题描述】:

我正在尝试创建一个类似...的字符串

mystring = "X\u2080 + X\u2081 + X\u2082 + X\u2083 + ..."
print(mystring)

应该输出'X₀ + X₁ + X₂ + X₃ + ...'

但是,我想通过循环顺序添加它们。

我试过了:

mystring = ""
for i in range(0,4):
   mystring += f"X\u208{str(i)} +"

但我得到了错误

(unicode error) 'unicodeescape' codec can't decode bytes in position 1-5
truncated \uXXXX escape

在循环中按顺序添加带有 unicode 的打印项的正确方法是什么?

【问题讨论】:

    标签: python-3.x python-unicode


    【解决方案1】:

    Unicode 转义序列必须完全指定,并且不能与 f 字符串文字中的占位符组合。

    要以编程方式生成 unicode 字符,您可以改用 chr 函数:

    mystring = ' + '.join(f"X{chr(0x2080 + i)}" for i in range(4))
    

    mystring 变为:

    X₀ + X₁ + X₂ + X₃
    

    【讨论】:

    • 我刚刚意识到0x2080 + i 仅对值range(0,10) 有效。你知道我怎么做下标10, 11, 12, ...吗?
    • 没有超过 9 的 unicode 下标数字,因此您必须将方法切换到某些格式化语言,例如 HTML、LaTeX、MathML 等。
    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多