关于用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:58 编辑
temp = input('请输入一个整数:')
if temp.isdigit():
if '.' in temp:
print('0')
else:
print('1')
else:
print('0')
这样可以做到,int()函数无法转化字符串形式的浮点数 int(str)函数将符合整数的规定的字符串转换成int型的 用 isinstance 不可以,建议这样:
temp = input('请输入一个整数:')
if temp.isdigit():
print('1')
else:
print('0') zltzlt 发表于 2019-9-7 11:50
用 isinstance 不可以,建议这样:
这个isdigit是什么意思 松_HWI3H 发表于 2019-9-7 08:52
这样可以做到,int()函数无法转化字符串形式的浮点数 int(str)函数将符合整数的规定的字符串转换成i ...
能不能解释一下 isdigit 是做什么用的 Python isdigit() 方法检测字符串是否只由数字组成。如果字符串只包含数字则返回 True 否则返回 False。
页:
[1]