python - 我的 python 计算器返回异常
问题描述
每当我尝试运行它时,我都会遇到“只能将 str(而不是“float”)连接到 str 的异常。我已经尝试过除块之外的尝试,但它只是给了我一个不同的例外。
num1 = float(input("Please enter the first number: "))
operator = input("Please choose the operator (+) for addition, (-) for subtraction, (*) for multiplication, (/) for division: ")
num2 = float(input("Please enter the second number: "))
result = float()
while result == float():
if operator == '+':
result = float(num1 + num2)
print("The result is " + float(result))
print("All done.")
elif operator == '-':
result = float(num1 - num2)
print("The result is " + float(result))
print("All done.")
elif operator == '*':
result = float(num1 * num2)
print("The result is " + float(result))
print("All done.")
elif operator == '/':
if num2 == 0:
print("You can't divide anything by 0.")
else:
result = float(num1 / num2)
print("The result is " + float(result))
print("All done.")
解决方案
这里的问题是您试图将浮点值与字符串值连接起来。
为了修复此值,您应该执行以下操作:
if operator == '+':
result = float(num1 + num2)
print("The result is " + str(result))
print("All done.")
elif operator == '-':
result = float(num1 - num2)
print("The result is " + str(result))
print("All done.")
elif operator == '*':
result = float(num1 * num2)
print("The result is " + str(result))
print("All done.")
elif operator == '/':
if num2 == 0:
print("You can't divide anything by 0.")
else:
result = float(num1 / num2)
print("The result is " + str(result))
print("All done.")
推荐阅读
- javascript - chrome dev-tool在调试带有时间戳的js文件时如何保留断点
- ansible - ansible chdir 模块在远程服务器上不起作用?
- .net - 在索引视图页面中显示下拉选择文本值
- gradle - Gradle exec 任务因“execCommand == null!”而失败
- node.js - React Socket NodeJs SocketManager 没有通过
- java - annox(https://github.com/highsource/annox)在使用 JAXB 编组/解组时是否支持嵌套集合对象?
- .net-core - 在 .Net Core Prerender.io 中间件中允许脚本标签
- c++ - 如何在 for 循环中暂停
- android - Firebase 计划通知不每天发送通知
- c# - 为什么从字典中获取 Action<> 的克隆?