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

如何编写无参无返回值Python main函数实现元素周期表打印并修复输出异常

问题解决方法

问题原因

现有代码缺失两个必要逻辑:

  • 没有实现需求中要求的make_periodic_table函数,无法返回元素周期表数据
  • main函数目前仅打印三个索引常量的值,没有调用目标函数、遍历打印元素的逻辑
    另外你定义的索引常量名SYMBOl_INDEX存在拼写错误(最后一位是小写L而非I,容易混淆),建议修正为SYMBOL_INDEX。

修正后完整代码

periodic_table_list = [
    # [symbol, name, atomic_mass]
    ["Ac","Actinium",227],
    ["Ag","Silver",107.8682],
    ["Al","Aluminum",26.9815386],
    ["Am","Americium",243],
    ["Ar","Argon",39.948],
    ["As","Arsenic",74.9216],
    ["At","Astatine",210],
    ["Au","Gold",196.966569],
    ["B","Boron",10.811],
    ["Ba","Barium",137.327],
    ["Be","Beryllium",9.012182],
    ["Bh","Bohrium",272],
    ["Bi","Bismuth",208.9804],
    ["Bk","Berkelium",247],
    ["Br","Bromine",79.904],
    ["C","Carbon",12.0107],
    ["Ca","Calcium",40.078],
    ["Cd","Cadmium",112.411],
    ["Ce","Cerium",140.116],
    ["Cf","Californium",251],
    ["Cl","Chlorine",35.453],
    ["Cm","Curium",247],
    ["Cn","Copernicium",285],
    ["Co","Cobalt",58.933195],
    ["Cr","Chromium",51.9961],
    ["Cs","Cesium",132.9054519],
    ["Cu","Copper",63.546],
    ["Db","Dubnium",268],
    ["Ds","Darmstadtium",281],
    ["Dy","Dysprosium",162.5],
    ["Er","Erbium",167.259],
    ["Es","Einsteinium",252],
    ["Eu","Europium",151.964],
    ["F","Fluorine",18.9984032],
    ["Fe","Iron",55.845],
    ["Fl","Flerovium",289],
    ["Fm","Fermium",257],
    ["Fr","Francium",223],
    ["Ga","Gallium",69.723],
    ["Gd","Gadolinium",157.25],
    ["Ge","Germanium",72.64],
    ["H","Hydrogen",1.00794],
    ["He","Helium",4.002602],
    ["Hf","Hafnium",178.49],
    ["Hg","Mercury",200.59],
    ["Ho","Holmium",164.93032],
    ["Hs","Hassium",270],
    ["I","Iodine",126.90447],
    ["In","Indium",114.818],
    ["Ir","Iridium",192.217],
    ["K","Potassium",39.0983],
    ["Kr","Krypton",83.798],
    ["La","Lanthanum",138.90547],
    ["Li","Lithium",6.941],
    ["Lr","Lawrencium",262],
    ["Lu","Lutetium",174.9668],
    ["Lv","Livermorium",293],
    ["Mc","Moscovium",288],
    ["Md","Mendelevium",258],
    ["Mg","Magnesium",24.305],
    ["Mn","Manganese",54.938045],
    ["Mo","Molybdenum",95.96],
    ["Mt","Meitnerium",276],
    ["N","Nitrogen",14.0067],
    ["Na","Sodium",22.98976928],
    ["Nb","Niobium",92.90638],
    ["Nd","Neodymium",144.242],
    ["Ne","Neon",20.1797],
    ["Nh","Nihonium",284],
    ["Ni","Nickel",58.6934],
    ["No","Nobelium",259],
    ["Np","Neptunium",237],
    ["O","Oxygen",15.9994],
    ["Og","Oganesson",294],
    ["Os","Osmium",190.23],
    ["P","Phosphorus",30.973762],
    ["Pa","Protactinium",231.03588],
    ["Pb","Lead",207.2],
    ["Pd","Palladium",106.42],
    ["Pm","Promethium",145],
    ["Po","Polonium",209],
    ["Pr","Praseodymium",140.90765],
    ["Pt","Platinum",195.084],
    ["Pu","Plutonium",244],
    ["Ra","Radium",226],
    ["Rb","Rubidium",85.4678],
    ["Re","Rhenium",186.207],
    ["Rf","Rutherfordium",267],
    ["Rg","Roentgenium",280],
    ["Rh","Rhodium",102.9055],
    ["Rn","Radon",222],
    ["Ru","Ruthenium",101.07],
    ["S","Sulfur",32.065],
    ["Sb","Antimony",121.76],
    ["Sc","Scandium",44.955912],
    ["Se","Selenium",78.96],
    ["Sg","Seaborgium",271],
    ["Si","Silicon",28.0855],
    ["Sm","Samarium",150.36],
    ["Sn","Tin",118.71],
    ["Sr","Strontium",87.62],
    ["Ta","Tantalum",180.94788],
    ["Tb","Terbium",158.92535],
    ["Tc","Technetium",98],
    ["Te","Tellurium",127.6],
    ["Th","Thorium",232.03806],
    ["Ti","Titanium",47.867],
    ["Tl","Thallium",204.3833],
    ["Tm","Thulium",168.93421],
    ["Ts","Tennessine",294],
    ["U","Uranium",238.02891],
    ["V","Vanadium",50.9415],
    ["W","Tungsten",183.84],
    ["Xe","Xenon",131.293],
    ["Y","Yttrium",88.90585],
    ["Yb","Ytterbium",173.054],
    ["Zn","Zinc",65.38],
    ["Zr","Zirconium",91.224],
]

# 修正拼写错误
SYMBOL_INDEX = 0
NAME_INDEX = 1
ATOMIC_MASS_INDEX = 2

# 实现需求要求的make_periodic_table函数
def make_periodic_table():
    return periodic_table_list

def main():
    # 调用函数获取元素周期表
    periodic_table = make_periodic_table()
    # 遍历每个元素单独打印
    for elem in periodic_table:
        symbol = elem[SYMBOL_INDEX]
        name = elem[NAME_INDEX]
        mass = elem[ATOMIC_MASS_INDEX]
        # 可根据需要调整打印格式
        print(f"{symbol} | {name} | {mass}")

if __name__ == "__main__":
    main()

效果说明

运行后每个元素会单独占一行输出,依次显示元素符号、名称、原子质量。你可以根据自己的需要调整print语句的格式化规则,比如添加表头、对齐字段等。

内容的提问来源于stack exchange,提问作者João Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:24:07