python怎么确定一个字符串是不是整数?

python string by Xudong Zhang @ 2015-10-19 17:33:53

如题,怎么判断一个字符串是不是能转换成integer? 直接int转然后处理exception?


直接try int() except是比较好的方式:

try:
    int_a = int(str_a)
except ValueError:
    print('str_a cannot be converted to integer')
    #deal with this situation

如果主要是判断是不是能转,或者判断是不是全是数字,可以用字符串的.isdecimal方法. .isdecimal判断每一个字符是不是全为数字,如果全是,返回True, 否则False.

if a_str.isdecimal():
    #do something like b = int(a_str)

以上两个有些要注意的:

  1. 对于a=‘-100’或者b=‘+1000’这样的,int()可以将其转换为负数,正数,但是.isdecimal不能,.isdecimal相当于是对每一个字符进行判断,+以及-显然不是数字字符.

  2. 对于python3, .isdecimal对于数字字符的定义不是简单的0-9, 而是unicode里面定义的数字字符,除了0-9, 还有一些其他语言的0-9表示, 总计有550个字符, 详细介绍看这样里.

by Xudong Zhang @2015-10-19 17:56:16.218 +0800 CST


我来回答

Markdown格式技巧

  • 行尾添加2个空格或者添加一个空行就能换行
  • 斜体: *hello* 或者 _world_
  • 加粗: **hello** 或者 __world__
  • 代码块: 添加空行,然后代码缩进4个空格
  • 特殊字符: 用\避免转义;\*就是*本身
  • python: `__name__`可以以代码形式输出__name__
  • 一个简单的例子

切换到移动版