x是整数,取整后仍是整数,int(x)==x 为True
x不是整数,就是含有小数部分,int(x)!=x 为True
isinstance()函数
>>>isinstance("123",str)
>>>Flase
>>>isinstance(123,int)
>>>True
>>>isinstance({'123'},list)
>>>False
>>>isinstance(['123'],int)
>>>False
使用内置的 str.isdecimal() 方法可以判断,如果 str只包含十进制数字则返回 True 否则返回 False
例如:
text = input('输入:')
if text.isdecimal():
print('你输入了一个正整数')
else:
print('你输入的不是一个正整数')
n=Nonewhile not isinstance(n,int):
n1=raw_input("Please input a number: ")
try:
n=eval(n1)
except:
n1=raw_input("Please input a number: ")
#try-except对排除了输入为字符串的情况。因为由字母构成的字符串是不能eval的,可是'123'可以被eval
#isinstance(*,int)是检测*是否为整数的方法。
呵呵,感觉这种要求导致的代码相当awkward呀,要我就直接这样
n=int(raw_input("Please input an integer: "))
虽然不怎么robust。。。