如何可变地打印Unicode字符串?

2024-09-30 04:39:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还比较陌生,目前正在尝试制作一个基转换器(这样就可以在10进制中输入一个数字,并以十六进制或二进制等形式接收该数字的输出)。为了使我的程序更加清晰,我一直在尝试使用unicode数据,特别是u+208u+209中的字符来打印下标数字,以便用户在打印数字时知道数字的基数。你知道吗

到目前为止,我的代码是:

import unicodedata

cNum = int(input("Please enter your number: "))

oBase = int(input("Please enter the base you are converting from. "))

nBase = int(input("Please enter the base are you converting to. "))

baseSub = "u'" + "\\u" + str(2080 + nBase) + "'"

baseSub.decode('utf-8')

print(subBase)

subBase是我正试图转换为unicode的字符串,以允许打印新基的下标号(这样,如果我在十进制中输入2,输出可以打印为1,下标为2)。我一直在做的就是写一堆IF语句来检查nBase是1,2,3,等等,但是这很难。通常,要打印每个下标,print语句应该是(u'\u208x')(x是从0-9表打印的任何下标)。上面的代码是我试图创建一个unicode字符串(u'\u208x'),其中x是nBase。如果没有解码功能,将子基赋值为“u”+“\u”。。。打印u'\u208x'的文本字符串。否则,将出现子基没有“decode”属性的错误。我如何让它从unicode可变地打印一个下标号,而不使用大量IF语句,如果有一种方法可以实现的话?你知道吗


Tags: the字符串代码youinputbaseunicode数字
1条回答
网友
1楼 · 发布于 2024-09-30 04:39:35

这可以将任何数字转换为其下标代码点:

number = 1234567890
print(''.join(chr(0x2080+int(c)) for c in str(number)))

输出:

₁₂₃₄₅₆₇₈₉₀

但是请注意,输出编码和字体需要支持字符。你知道吗

chr将数字转换为它的Unicode等价物,U+2080是十六进制的Unicode码点,因此需要0x2080而不是2080。你知道吗

相关问题 更多 >

    热门问题