我对python3.4.3编程还很陌生,但我已经开始了我的第一个项目,它将帮助我成为一名化学家。我创建了一系列代码,要求用户输入一种化学物质的名称(例如水或乙醇),然后返回该化学物质的化学性质列表。我的代码在下面。我省略了我硬编码的化学数据,以便于阅读。你知道吗
print ("Welcome to [program name]! Copyright (C) 2015 [name omitted] All Rights Reserved.")
print ("----" * 4)
class Chemical():
def __init__(self, data):
self.data = data
def getData(self):
return self.data
chemical1 = Chemical("Data\nData\nData\n")
chemicalName = input("Choose a chemical: ")
if chemicalName == "chemical1":
print (chemical1.getData())
elif chemicalName == "Other chemical name":
# I now have a lot of elif statements, to account for all possible chemicals
print (other_chemical.getData())
else:
print ("\nThe chemical you chose hasn't been added yet\n")
当执行时,如果输入是化学的,那么将产生:
data
data
data
基本上,我有一个巨大的化学品列表,其中的数据硬编码到脚本中,还有大量的elif语句来解释每种化学品(现在有26种化学品)。整个程序运行得很完美,但我想减少elif语句的数量,以减少代码行的数量。可能是通过编写for循环或其他表达式,就像我的一个有Python经验的朋友建议的那样。我还是个初学者,所以我不确定所有不同的方法。你知道吗
我试过这个:
chemicalName = input("Choose a chemical: ")
print (chemicalName.getData())
但当我运行脚本时,出现了一个错误,上面写着:
Traceback (most recent call last):
File "C:\Users\john\Desktop\test.py", line 42, in <module>
print (chemicalName.getData())
AttributeError: 'str' object has no attribute 'getData'
这个想法是,当我输入一种化学物质,例如chemical2,我想把chemicalName
直接放入print (chemicalName.getData())
,值为chemical2
,然后打印我为chemical2 = Chemical("Data\nData\nData")
输入的数据
我不确定我现在能做什么。为了给大家一个想法,我有大约150行代码和所有的elif语句,所以任何想法或反馈都是非常受欢迎的。你知道吗
你可以用字典这样工作
相关问题 更多 >
编程相关推荐