Elliet 发表于 2019-9-7 04:15:13

关于用isinstance判断的问题

本帖最后由 Elliet 于 2019-9-7 06:36 编辑

看完小甲鱼的python教学第005讲
求助关于isinstance用来判断输入是否为整数的代码
一开始我的代码如下:
temp = input('请输入一个整数:')
if isinstance(temp,int) == 1:
    print('1')
else:
    print('0')

然后我发现这个代码无论输入输入整数,浮点数,字符串,输出结果都是0,然后我就加上了一行number = int(temp)
尝试利用整形,将输入内容变为int然后再进行判断,代码如下
temp = input('请输入一个整数:')
number = int(temp)
if isinstance(number,int) == 1:
    print('1')
else:
    print('0')

然后发现输入整数得到的是1,输入浮点数或者字符串会错误
求助各位大佬有没有办法能实现利用isinstance来判断是否为整数的代码

目前我认为问题是出在开头temp = input这一行的代码中,因为这一行代码是由用户输入赋值的,所以无论输入什么都认为是一个字符串,所以isinstance(temp,int)的结果都为0
但是我不明白为什么加入number = int(temp)之后,变成输入整数为正常的1,输入其他数为错误的情况

希望各位大佬能帮忙解决这个问题

松_HWI3H 发表于 2019-9-7 08:52:57

本帖最后由 松_HWI3H 于 2019-9-7 08:58 编辑

temp = input('请输入一个整数:')
if temp.isdigit():
    if '.' in temp:
      print('0')
    else:
      print('1')
else:
    print('0')

这样可以做到,int()函数无法转化字符串形式的浮点数      int(str)函数将符合整数的规定的字符串转换成int型的

zltzlt 发表于 2019-9-7 11:50:24

用 isinstance 不可以,建议这样:

temp = input('请输入一个整数:')
if temp.isdigit():
    print('1')
else:
    print('0')

Elliet 发表于 2019-9-9 00:06:32

zltzlt 发表于 2019-9-7 11:50
用 isinstance 不可以,建议这样:

这个isdigit是什么意思

Elliet 发表于 2019-9-9 00:08:12

松_HWI3H 发表于 2019-9-7 08:52
这样可以做到,int()函数无法转化字符串形式的浮点数      int(str)函数将符合整数的规定的字符串转换成i ...

能不能解释一下 isdigit 是做什么用的

松_HWI3H 发表于 2019-9-9 08:40:37

Python isdigit() 方法检测字符串是否只由数字组成。如果字符串只包含数字则返回 True 否则返回 False。
页: [1]
查看完整版本: 关于用isinstance判断的问题