我是编程的初学者,我想要的是设置一个条件,我写一个实数,并希望程序告诉我它是小数还是整数。
我从:
开始x = float(input("Writte a real number: "))
然后我考虑使用双重条件,我会做类似的事情:
if type(x)==int:
print("integer number")
另一个用float而不是int(或者使用else,因为我之前说过写一个实数)。但我想这不是正确的,因为我将x预定义为浮点数。另一个问题是像2.0或3.0这样的数字,因为它们是整数但我会把它们作为分数。
答案 0 :(得分:1)
你可以通过使用整数的重要属性来实现这一点:整数的 floor 和 ceiling 值是相同的;而对于浮点数,这些值会相差1。
所以,你可以这样做:
import math
x = float(input("Writte a real number: "))
if math.ceil(x) == math.floor(x):
print("integer number")
您可以看到一些楼层和天花板的示例here。
答案 1 :(得分:0)
受@ Carcigeniacte的评论启发。您最初可以将其保留为字符串,检查彼此之间的转换;然后,如果它们相同,则为int
,否则为float
。之后,将其转换为适合以后计算的数值类型。只是不要忘记检查输入错误:
while True:
x = input('write a real number: ')
try:
float(x) # Checking the input can be converted to a number
break
except ValueError:
print('\nPlease input a number') # runs if it can't be converted
continue
if float(x) == int(x): # looking for integers
print('\nInteger Number')
x = int(x)
else:
print('\nFractional Number')
x = float(x)