标签:
-->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
标签:
原文地址:http://www.cnblogs.com/liwenzhou/p/5125807.html