码迷,mamicode.com
首页 > 其他好文 > 详细

关于负数的isdigit()判断

时间:2016-01-12 23:13:44      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:

-->the start

今天写作业的时候突然想到,一直使用isdigit()方法来处理用户的输入选择是不是数字,但是如果用户输入的是负数呢,会不会导致bug?

然后我就试了一下,居然不报错。。。然后我就纳闷了,赶紧试了一下:

技术分享

 

‘-10‘.isdigit()返回False是因为‘-‘不是一个digit。

然后我就想怎么才能判断负数为数字呢,下面是从网上找到的答案,在这里记录下来。

1 num = -10
2 if (num.startswith(-) and num[1:] or num).isdigit():
3     print(num是整数)
4 else:
5     print(num不是整数)

正则表达式法:

1 num = -10
2 import re
3 if re.match(r^-?(\.\d+|\d+(\.\d+)?), num):
4     print(num是整数)
5 else:
6     print(num不是整数)

更Pythonic的方法:

1 num = -10
2 if num.lstrip(-).isdigit():
3     print(num是整数)
4 else:
5     print(num不是整数)

当我看到第三个方法的时候,真是感触颇多,受益匪浅。

<--the end

关于负数的isdigit()判断

标签:

原文地址:http://www.cnblogs.com/liwenzhou/p/5125807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!