Python计算器如何根据输入数值类型动态输出带/不带小数的结果
解决方案
核心逻辑
- 原有输入转float的逻辑不需要改动,依然可以避免非数字输入触发的ValueError
- 新增对计算结果的格式判断:使用
float.is_integer()内置方法检测结果是否本质为整数 - 检测结果为真时转int输出,避免
.0后缀;为假时直接输出原始浮点结果即可 - 后续如果需要扩展乘除运算,仅需新增对应运算分支即可,输出格式化逻辑无需修改
修改后完整代码
num_1 = float(input("\nEnter first number: ")) opr = input("Enter math operator: ") num_2 = float(input("Enter second number: ")) if opr == "+": res = num_1 + num_2 elif opr == "-": res = num_1 - num_2 else: print("Invalid math operator") exit() # 按要求格式化输出 print(int(res) if res.is_integer() else res)
效果验证
- 输入
2、+、2:输出4,而非4.0 - 输入
2.5、+、3:输出5.5,符合带小数的需求 - 输入
10、-、3.2:输出6.8,符合预期
内容的提问来源于stack exchange,提问作者CoreVisional
相关产品推荐
相关产品推荐

