You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让用户输入驱动if语句计算,得到正确的行星体重值?

行星体重计算代码修正问题

你的代码运行后结果始终为0,核心错误有以下几点:

  • 用户输入的行星名称是字符串类型(比如"Venus"),但你把它和存储重力值的数值变量(如Venus = 0.91)做比较,类型不匹配导致所有条件都无法触发,Planet_gravity始终为0。
  • 后续elif分支错误使用了初始值为0的planet变量,而非用户输入的Planet_name。
  • 最后一个elif分支存在缩进错误,Python对缩进有严格要求,会引发语法问题。

修正后的代码

print("I have information for the following planets:\n")
print("   1. Venus   2. Mars    3. Jupiter")
print("   4. Saturn  5. Uranus  6. Neptune\n")

weight = 185
Planet_gravity = 0

# 用字符串作为键存储行星重力系数,避免类型匹配问题
planet_gravity_map = {
    "Venus": 0.91,
    "Mars": 0.38,
    "Jupiter": 2.34,
    "Saturn": 1.06,
    "Uranus": 0.92,
    "Neptune": 1.19
}

Planet_name = input("Planet name: ")
print(Planet_name)

# 匹配输入的行星名称,获取对应重力系数
if Planet_name in planet_gravity_map:
    Planet_gravity = planet_gravity_map[Planet_name]

planet_weight = weight * Planet_gravity
print(f"Gravity {planet_weight}")

修正说明

  1. 使用字典存储行星名称(字符串)与重力系数的对应关系,直接通过输入字符串匹配取值,逻辑简洁且避免类型错误。
  2. 移除无用的planet变量,直接基于用户输入的Planet_name做判断。
  3. 用f-string优化打印语句,提升代码可读性。
  4. 增加输入合法性检查,若用户输入不在列表中的行星,Planet_gravity保持0,也可按需添加输入错误提示。

内容的提问来源于stack exchange,提问作者Benjamin G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 06:25:09