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

Python定义读取原子质量文本为字典的函数代码问题排查

实现方案

你的代码存在几处语法和逻辑错误,修正后即可实现读取元素原子质量表、返回可查询字典的需求。

原代码存在的问题

  • 函数定义未设置文件路径入参,调用时传入的文件路径无法被函数接收
  • 调用open函数时错用方括号[],函数调用必须使用圆括号()
  • 文件路径字符串未闭合,"average_mass.csv缺少结尾的双引号
  • for循环内的代码未正确缩进,不符合Python语法规则
  • 原子质量读取后为字符串类型,未转为浮点数,后续无法直接参与数值计算
  • return语句写在for循环内部,仅会读取第一行内容就终止执行,且返回单个值而非完整字典
  • 未处理每行末尾的换行符,解析出的质量值会携带多余空白字符

修正后的完整代码

def read_masses(file_path):
    atom_masses = {}
    with open(file_path, "r", encoding="utf-8") as f:
        for line in f:
            # 清除每行首尾的换行、空格等空白字符
            clean_line = line.strip()
            # 跳过文件中的空行,避免解析报错
            if not clean_line:
                continue
            # 按逗号分割得到元素符号和原子质量
            element, mass_str = clean_line.split(",")
            # 将质量转为浮点数存入字典
            atom_masses[element] = float(mass_str)
    # 所有行解析完成后返回完整字典
    return atom_masses

# 调用函数加载质量表
m = read_masses("average_mass.csv")
# 查询氮元素的原子质量
print(m["N"])

使用说明

  • 确保average_mass.csv文件和Python脚本在同一目录下,若文件在其他位置,传入完整路径即可
  • 调用函数后得到的m是完整的元素质量字典,直接通过m["元素符号"]的格式即可查询对应原子质量,比如m["He"]就能得到氦的原子质量4.0026
  • 代码自动跳过文件中的空行,兼容文件末尾有空行的常见情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:12:24