这是我在这里发表的第一篇文章,希望它易于阅读,并且我的回答也会被问到! (:
首先,为了让您有所了解,我想为全新的游戏No Man's Sky创建效率计算器。该游戏中的经济与现实生活中的经济几乎相同。您可以以比创建它所需组件高得多的价格销售商品。例如:您可以以每个30欧元的价格出售5000欧元或30个岩石部件的岩石。如果用岩石部件制作岩石,你的利润将是5000-900,对吧? (:
这是code。
我想要它做的是以下内容。用户输入产品,程序会比较产品的价格(如果已售出)和组件的价格以制作产品,并向您显示利润。
我有以下问题:
有没有办法比较我要创建的所有变量(第18行),或者我必须为每个产品创建一个if循环(第22-24行)。我的意思是像
profit = products[input] - input_recipe
print profit
由于我想查看很多食谱,如果有更好的食谱,那将会很痛苦。
答案 0 :(得分:1)
如何保存数据并访问它实际上取决于您希望如何处理计算器。我想说处理这种情况的最好方法是,如果有一个excel文件或JSON文件或类似的东西,包括游戏的所有材料和项目(你可能必须成为这个或某人的那个)否则可能已经有)。如果您必须自己将列表放在一起,这可能是一个漫长的过程并且非常烦人,因此请尝试在可以下载的地方找到列表,然后打开文件并根据需要解析数据。您可以将所有数据放在代码本身中,但如果您愿意,也不允许您使用不同的语言编写数据代码。
就循环而言,我不确定你的意思是什么?你有数据字典,所以没有必要循环每个值吗?现在,如果您指的是接受多个用户输入,那么循环对于命令行来说不是一个坏主意:
continue_calculations = 'y'
while continue_calculations != 'n':
# Do your logic here.
continue_calculations = raw_input('Would you like to continue(y/n)?')
当然,如果您正在制作计算器,您可以查看GUI开发或Web开发,如果您想将其变为网站。 PyQT是一个方便的小模块,有一些很好的教程:https://pythonprogramming.net/basic-gui-pyqt-tutorial/
干杯,
答案 1 :(得分:0)
关于您的第一个问题,另一种方法是使用 json 格式存储您的数据,而不是使用三个单独的词典,我的意思是:
data = {"elements":{"Th":20.6,"Pu":41.3},"alloys":{"Aronium":1546.9,"Herox":2877.5},"Products":{"Antimatter":5232,"Warp Cell":46750}}
您可以解析例如" Th"写作价格:
th_price = data['elements']['Th']
至于你的第二个问题,你可以创建第四个字典,其中包含所有可能的食谱的价格,当然你已经预定义 - 只是不是每次需要时计算它们并让它们可用于快速解析。所以你会写一些类似的东西:
profit = products[input] - input_recipe[input]
print profit
其中input_recipe将是您的第四个包含食谱价格的字典。