如何编写无参无返回值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
相关产品推荐
相关产品推荐

