【问题标题】:write the main function that takes no parameters and returns nothing编写不带参数且不返回任何内容的主函数
【发布时间】:2021-11-01 20:48:53
【问题描述】:

我需要编写不带参数且不返回任何内容的主函数。主函数应调用 make_periodic_table 函数并将返回的表与每个单独的元素打印在单独的行上,并添加对主函数的调用。请务必使用 if 语句保护对 main 的调用。但是当我尝试我的输出时,它不是预期的。我该如何解决这个问题?请。

        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, name, atomic_mass]

SYMBOl_INDEX = 0
NAME_INDEX = 1
ATOMIC_MASS_INDEX = 2
def main():
    print(f'{SYMBOl_INDEX}, {NAME_INDEX}, {ATOMIC_MASS_INDEX}')

if __name__ == "__main__":
    main() ```    




【问题讨论】:

    标签: python-3.x list


    【解决方案1】:

    听起来您必须创建一个函数 (make_periodic_table),然后在 main 中调用它。

    def make_periodic_table(PTL):
        for element in PTL:
            print(element)
    
    main():
        make_periodic_table(periodic_table_list)
    

    为了更好地解释为什么你的不工作,(我不是 100% 理解你得到的错误,但是)在你的主要打印语句中,你没有引用任何东西,就像指着稀薄的空气和说打印......它不会起作用,但如果你指向一个员工并说打印这个,他们可能会为你打印一些东西。 (不是最好的类比,但你可能只关心解决方案)

    另外,我不确定您的教授所说的“一定要使用 if 语句保护对 main 的调用”是什么意思。如果没有其他人回复此内容,我会在您的主函数中添加类似的内容(用此替换主函数中的所有内容):

    if periodic_table_list:
        make_periodic_table(periodic_table_list)
    
    else:
        print("cannot find periodic table")
    

    【讨论】:

    • 它对我不起作用。
    猜你喜欢
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多