程序只打印列表python中的第一个变量

2024-04-27 02:44:24 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

H = Waterstof = 1.008
He = Helium = 4.003

atomen = [H, He]

vraag = raw_input("Welke atoommassa wil je weten? \n")

for vraag in atomen:
    print vraag
    break

我没有把所有的原子都包括进去,以确保它不会太大,你们看不懂。你知道吗

所以问题是我的输出总是1.008(H的质量),即使我输入He。你知道吗

请帮帮我!你知道吗


Tags: in密码forinputrawhejehelium
2条回答

[H, He]上循环并打印第一个变量;break结束循环,这样就永远不会打印第二个值。你知道吗

与其使用单独的变量和列表,不如使用字典:

atom_weights = {'H': 1.008, 'He': 4.003}

这允许您为给定的原子缩写打印正确的原子重量

print atom_weights[vraag]

如果您也想支持全名,那么也必须映射这些全名:

atom_names = {'waterstof': 'H', 'helium': 'He'}

这会将小写名称映射到符号,因此您可以首先检查用户是否输入了全名并将其映射到符号:

symbol = atom_names.get(vraag.lower(), vraag)

这将Waterstof转换为waterstof,并找到H。如果名称不存在,则假定用户输入了符号。你知道吗

您可以重新使用vraag,然后中断循环的第一次迭代 这应该起作用:

H = Waterstof = 1.008
He = Helium = 4.003

atomen = [H, He]

vraag = raw_input("Welke atoommassa wil je weten? \n")

for v in atomen:
    if v==vraag:
        print vraag
        break

然而,为了更好地解决你的实际问题,我可能会使用字典(见martijnpieters的答案)

相关问题 更多 >