如何检查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
。您可以结合使用 int
和 is_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
我有一个像这样的字符串:t = '²'
这会导致我的代码关闭:int(t)
错误:
ValueError: invalid literal for int() with base 10: '²'
如何检测字符串是否是上标而不是真正的整数?
我只想将字符串数字转换为 int 并获取整数。我想确保我传递的数字不会引发上述错误。
我不想使用 try/except
块。
下标和上标的is_digit
方法returnsTrue
。您可以结合使用 int
和 is_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