根据用户在计算器中给出的数据类型输出结果 [Python]
Output result based on the data type given by user in a calculator [Python]
如何输出表达式的结果,如果用户输入浮点数和整数,结果将包括小数,如果用户同时以整数形式给出,结果将不包括小数.
示例:
num_1 = float(input("\nEnter first number: "))
opr = input("Enter math operator: ")
num_2 = float(input("Enter second number: "))
if opr == "+":
print(num_1 + num_2)
elif opr == "-":
print(num_1 - num_2)
else:
print("Invalid math operator")
>>> Enter first number: 2.5
>>> Enter math operator: +
>>> Enter second number: 3
5.5
上面的代码适用于浮点数,这是因为输入已转换为浮点数以避免 ValueError。但结果将始终是一个浮点数。我怎样才能使 2 + 2 = 4
而不是 4.0
?
解决方案 1
一个简单直接的解决方案是将其转换为 int
并检查它的值是否与它的 float
对应部分相同。
例如,如果float_output=4.0
,则int_output
将设置为4。而4 == 4.0
的逻辑将以True
结束。因此,在本例中 int_output
设置为 final_output
。
否则,考虑 float_output=4.5
,它的 int_output
将设置为 4。而 4 == 4.5
的逻辑将以 False
结束。因此,float_output
设置为final_output
。
完整代码如下:
num_1 = float(input("Enter first number: "))
opr = input("Enter math operator: ")
num_2 = float(input("Enter second number: "))
float_output = None
if opr == "+":
float_output = num_1 + num_2
elif opr == "-":
float_output = num_1 - num_2
else:
print("Invalid math operator")
if float_output is not None:
int_output = int(float_output)
if int_output == float_output:
final_output = int_output
else:
final_output = float_output
print(final_output)
解决方案 2
您可以使用 float.is_integer()
这是浮动的内置函数来自动执行此检查。
在这种情况下你会这样做:
num_1 = float(input("Enter first number: "))
opr = input("Enter math operator: ")
num_2 = float(input("Enter second number: "))
float_output = None
if opr == "+":
float_output = num_1 + num_2
elif opr == "-":
float_output = num_1 - num_2
else:
print("Invalid math operator")
if float_output.is_integer():
print(int(float_output))
else:
print(float_output)
如何输出表达式的结果,如果用户输入浮点数和整数,结果将包括小数,如果用户同时以整数形式给出,结果将不包括小数.
示例:
num_1 = float(input("\nEnter first number: "))
opr = input("Enter math operator: ")
num_2 = float(input("Enter second number: "))
if opr == "+":
print(num_1 + num_2)
elif opr == "-":
print(num_1 - num_2)
else:
print("Invalid math operator")
>>> Enter first number: 2.5
>>> Enter math operator: +
>>> Enter second number: 3
5.5
上面的代码适用于浮点数,这是因为输入已转换为浮点数以避免 ValueError。但结果将始终是一个浮点数。我怎样才能使 2 + 2 = 4
而不是 4.0
?
解决方案 1
一个简单直接的解决方案是将其转换为 int
并检查它的值是否与它的 float
对应部分相同。
例如,如果float_output=4.0
,则int_output
将设置为4。而4 == 4.0
的逻辑将以True
结束。因此,在本例中 int_output
设置为 final_output
。
否则,考虑 float_output=4.5
,它的 int_output
将设置为 4。而 4 == 4.5
的逻辑将以 False
结束。因此,float_output
设置为final_output
。
完整代码如下:
num_1 = float(input("Enter first number: "))
opr = input("Enter math operator: ")
num_2 = float(input("Enter second number: "))
float_output = None
if opr == "+":
float_output = num_1 + num_2
elif opr == "-":
float_output = num_1 - num_2
else:
print("Invalid math operator")
if float_output is not None:
int_output = int(float_output)
if int_output == float_output:
final_output = int_output
else:
final_output = float_output
print(final_output)
解决方案 2
您可以使用 float.is_integer()
这是浮动的内置函数来自动执行此检查。
在这种情况下你会这样做:
num_1 = float(input("Enter first number: "))
opr = input("Enter math operator: ")
num_2 = float(input("Enter second number: "))
float_output = None
if opr == "+":
float_output = num_1 + num_2
elif opr == "-":
float_output = num_1 - num_2
else:
print("Invalid math operator")
if float_output.is_integer():
print(int(float_output))
else:
print(float_output)