This question already has answers here:
What's the difference between str.isdigit, isnumeric and isdecimal in python?

(5 个回答)


2年前关闭。




我正在使用 Python 3.6.3,我遇到了来自 int()isdigit() 的奇怪行为,代码如下:
s = "..... not less than 66²/ 3 % of ......"
total = 0
for c in s:
    if c.isdigit():
        total += int(c)

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

我了解这个错误,我知道我可以使用 try catch 跳过错误。我的问题是,如果 isdigit() 返回 true,则 char\string 应该正确地进行转换,或者 isdigit() 应该返回 false。否则说 int()isdigit() 应该是一致的。

最佳答案

这正是 as documented :

关于python - 类型转换 int 的奇怪行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54680187/

10-12 20:27