python - 狗年龄计算器 Python 未定义名称错误
问题描述
我正在尝试创建一个程序,当输入狗的年龄时,它会计算出人类的年龄。如果输入负数,则应打印负数无效。此外,如果输入不是数字,它应该打印输入无效。我的代码在我的编辑器中运行,但是在 jupyter 笔记本中,它挂在未定义的 dog_age 上。我不知道变量“a”是否也会有同样的问题。
dog_age = input("How old is your dog in years?")
try:
d_a = float(dog_age)
if d_a < 0:
print(" Your input can not be negative! ")
if (d_a >= 0) & (d_a <= 1):
a = d_a * 15
if d_a == 1:
a = 15
if (d_a > 1) & (d_a > 2):
a = (d_a * 12)
if d_a == 2:
a = 24
if (d_a > 2) & (d_a < 3):
a = (d_a * 9.3)
if d_a == 3:
a = 27
if (d_a > 3) & (d_a < 4):
a = (d_a * 8)
if d_a == 4:
a = 32
if (d_a > 4) & (d_a < 5):
a = (d_a * 7.2)
if d_a >= 5:
a = (d_a * 7)
except ValueError as e:
print("Your input was not valid")
round(a, 2)
a = str(a)
print("You inputted your dogs age as " + dog_age + " that is equal to " + a + " Human years old")
解决方案
如果您输入 1 到 2 之间的年龄,a 将没有任何值:
if (d_a > 1) & (d_a > 2):
a = (d_a * 12)
此外if d_a == 1:
,前面的陈述已经涵盖了。
最后,正如 Sujay 所指出的,Python 中的逻辑运算符是and
. &
是一个按位运算符,在您的情况下是不必要的。
推荐阅读
- php - 为什么 laravel 5.7 基本路由重定向到 404?
- json - 在 PowerShell 中使用命令的文本 json 输出的正确方法是什么?
- php - 出现错误:SQLSTATE [42S22]:找不到列:1247
- qgis - 使用 Wang 和 Liu 的方法用于 DEM 的 QGIS 填充水槽
- go - 如何在 Go 中从 system-d 服务运行时修复环境变量不起作用
- angularjs - 使用 Angularjs 和 RestController 生成 PDF
- angular - 从远程机器访问 JHipster 应用程序(以开发模式运行)
- reactjs - 在这种情况下如何获得道具?
- c# - 如何使用其中没有库但只有要使用的文件的 nuget 包
- javascript - 局部变量在回调中无效,而其他一些变量是