这是我的代码:
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作为输入。
请帮忙!
答案 0 :(得分: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
。如果名称不存在,则假定用户输入了符号。
答案 1 :(得分:0)
您重复使用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
但是,为了更好地解决您的实际问题,我可能会使用字典(请参阅Martijn Pieters的回答)