请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制、八进制、十进制、十六进制数字)

请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制、八进制、十进制、十六进制数字)

之前就有兄台提过这个问题,但是一直没有人回答。。我想再抛出来,学习一下。

阅读 3k
3 个回答

突然发现!NaN是true,改了一下


我的思路是对1求余就好,如果得到0以外的值就不是整数了,仅限js,其他语言没试过。
js运算会自动转换类型,所以给个十六进制字符串都没问题。

var num = 123;
var isInt = !(isNaN(num) || num % 1);
>>> def check_int(num):
...     try:
...         result = isinstance(eval(num), int)
...     except TypeError:
...         result = isinstance(num, int)
...     return result
...

测试结果:

>>> check_int(3)
True
>>> oct(3)
'0o3'
>>> check_int(oct(3))
True
>>>
>>> hex(3)
'0x3'
>>> check_int(hex(3))
True
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏