使用内置的 str.isdecimal() 方法可以判断,如果 str只包含十进制数字则返回 True 否则返回 False
例如:
text = input('输入:')
if text.isdecimal():
print('你输入了一个正整数')
else:
print('你输入的不是一个正整数')
还要判断浮点类型7.0这种是整数。那就*10然后用取余数%10来判断余数是否为0,if x*10%10= 0,是0就是整数,不是0就不是整数。参考:def is_int(num): if type(num)==int: return True elif type(num)==float: if int(num)==num: return True else: return False x=6.8 Bool=is_int(x) print(Bool)
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。。。