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

Python作业求助:实现基于E=mc²的质能转换命令行程序

爱因斯坦质能公式实现与代码修正

现有代码的问题点

  • sys.argv是列表类型,直接转float会报错,应该取sys.argv[1](命令行传入的第一个参数,索引0为脚本文件名)
  • 光速c是固定常量,无需作为函数参数传入,函数仅需接收质量m即可
  • Python3中print是函数,必须加括号:print(e)
  • 未处理命令行未传参数的异常情况
  • 缺少题目要求的至少3个测试用例

修正后的完整代码

import sys
import math

# 定义质能公式函数,仅接收质量参数m
def einstein_equation(m):
    c = 299792458  # 光速常量(单位:米/秒)
    return m * math.pow(c, 2)

# 测试用例执行函数
def run_tests():
    test_masses = [1, 0.5, 2.5]  # 3个不同质量值(单位:千克)
    print("=== 测试用例结果 ===")
    for mass in test_masses:
        energy = einstein_equation(mass)
        print(f"质量 {mass}kg → 等效能量:{energy} 焦耳")

if __name__ == "__main__":
    # 命令行参数处理逻辑
    try:
        if len(sys.argv) > 1:
            input_mass = float(sys.argv[1])
            result_energy = einstein_equation(input_mass)
            print(f"输入质量 {input_mass}kg → 等效能量:{result_energy} 焦耳")
        else:
            # 未传入参数时自动运行测试用例
            print("未传入命令行参数,自动执行测试用例:")
            run_tests()
    except ValueError:
        print("错误:请传入有效的数字类型质量值(单位:千克)")

代码使用说明

  • 函数逻辑:einstein_equation专注计算质能转换,光速作为内置常量,符合公式定义
  • 命令行使用:
    • 带参数运行:比如python your_script.py 10,直接计算10kg质量对应的能量
    • 无参数运行:自动执行预设的3个测试用例,输出不同质量的计算结果
  • 异常处理:捕获非法输入(如非数字参数),避免程序崩溃

内容的提问来源于stack exchange,提问作者babak mahmoudi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:15:13