我使用以下内容来查看数据是否为整数,如果不是,它告诉我。有没有办法确定哪一个是不正确的,所以可以改变它,还是我必须为每个项目创建相同的循环?
while i_input == True:
try:
i_pointstarget=int(pointstarget.get())
i_ap1=int(ap1.get())
i_ap2=int(ap2.get())
i_ap3=int(ap3.get())
i_ap4=int(ap4.get())
i_ap5=int(ap5.get())
i_ap6=int(ap6.get())
except ValueError:
i_input=False
continue
else:
break
感谢您的帮助:)
答案 0 :(得分:0)
您可以使用numbers之类的
,而不是尝试转换为int
(顺便说一句int(1.23)
有效,返回1
)
import numbers
def is_integral(n): # actually not checking for int but also other int-equivalents
return isinstance(n,numbers.Integral)
如果你想检查你是否有一个可以无法转换为整数的数字(如int
),你可以做
import numbers
def exact_integral(n): # check if n can be exactly represented as an integer
return isinstance(n,numbers.Complex) and n==round(n.real)
答案 1 :(得分:0)
要知道可以使用isinstance(variable_name, int)
的变量的类型,这将返回布尔值。