Python的新功能数字文字(例如; 234_432)不能与.isdigit()一起使用?

时间:2017-07-30 04:20:55

标签: python python-3.x

我总是明白,如果某些东西可以转换为整数(即​​;某些东西是数字的字符串表示),则isdigit()返回True。新功能不是这种情况。以下是以下示例:

Code Sample

但为什么?

2 个答案:

答案 0 :(得分:2)

要回答您的问题,请查看isdigit方法的python 3.6 documentation

  

如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则返回false。

由于下划线不是数字,因此新格式不适用于isdigit的当前实现。正如我之前评论过的,当前的解决方法是:str.replace("_", "").isdigit()其中 str 是包含新格式化数字的字符串,同时避免使用int的try-except块。

答案 1 :(得分:1)

您还需要取消负整数的负号。这样负的整数也会起作用。 str.replace("_", "").lstrip("-").isdigit()