python可以将用户输入与程序中的变量进行比较吗?

时间:2016-08-19 13:48:22

标签: python calculator

这是我在这里发表的第一篇文章,希望它易于阅读,并且我的回答也会被问到! (:

首先,为了让您有所了解,我想为全新的游戏No Man's Sky创建效率计算器。该游戏中的经济与现实生活中的经济几乎相同。您可以以比创建它所需组件高得多的价格销售商品。例如:您可以以每个30欧元的价格出售5000欧元或30个岩石部件的岩石。如果用岩石部件制作岩石,你的利润将是5000-900,对吧? (:

这是code

我想要它做的是以下内容。用户输入产品,程序会比较产品的价格(如果已售出)和组件的价格以制作产品,并向您显示利润。

我有以下问题:

  1. 有没有更好的方法来保存数据以便在以后使用它? (第1-16行)
  2. 有没有办法比较我要创建的所有变量(第18行),或者我必须为每个产品创建一个if循环(第22-24行)。我的意思是像

    profit = products[input] - input_recipe
    print profit
    
  3. 由于我想查看很多食谱,如果有更好的食谱,那将会很痛苦。

2 个答案:

答案 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将是您的第四个包含食谱价格的字典。