如何检查Python中的数字是否有下标?

How to check if a number has subscript in it in Python?

我有一个像这样的字符串:t = '²'

这会导致我的代码关闭:int(t) 错误:

ValueError: invalid literal for int() with base 10: '²'

如何检测字符串是否是上标而不是真正的整数?

我只想将字符串数字转换为 int 并获取整数。我想确保我传递的数字不会引发上述错误。

我不想使用 try/except 块。

下标和上标的is_digit方法returnsTrue。您可以结合使用 intis_digit 来实现:

def is_subscript(s):
    if s.isdigit():
        try:
            int(s)
        except ValueError:
            return True
    return False

然后

print(is_subscript('²'))   # Should print True
print(is_subscript('2'))   # Should print False

您需要像这样翻译字符串

SUP = str.maketrans("⁰¹²³⁴⁵⁶⁷⁸⁹","0123456789")
t = '²'
print(int(t.translate(SUP)))

您可以使用 .isdecimal() 进行测试。与 .isnumeric().isdigit() 不同,它不会将 '²' 等识别为数字:

"²".isdecimal()
# False
"2".isdecimal()
#True