【问题标题】:Can python compare user input with variables in program?python可以将用户输入与程序中的变量进行比较吗?
【发布时间】:2016-08-19 13:48:22
【问题描述】:

这是我在这里的第一篇文章,希望它易于阅读,也有人问我的答案! (:

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

这里是code

我想要它做的是以下。用户输入一个产品,程序会比较该产品的销售价格和制造该产品的组件的价格,并向您显示这样做的利润。

我有以下问题:

  1. 有没有更好的方法来保存数据以供以后使用? (第 1-16 行)
  2. 有什么方法可以比较我将创建的所有变量(第 18 行)还是我必须为每个产品创建一个 if 循环(第 22-24 行)。我的意思是像

    profit = products[input] - input_recipe
    print profit
    

由于我想检查很多食谱,如果有更好的方法来做,那就太麻烦了。

【问题讨论】:

  • 如果您想向我们询问一些代码,请在问题中发布相关代码。此外,最好一次询问一件事,尽可能简洁。

标签: python calculator


【解决方案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/

干杯,

【讨论】:

  • 感谢您的信息,我已经解决了。我将尝试 GUI 开发,我对网站开发还没有兴趣,但很高兴学习如何开发自己的 GUI!
【解决方案2】:

关于您的第一个问题,另一种方法是使用 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 将是您的第四本包含食谱价格的字典。

【讨论】:

  • 非常感谢,在您的帮助下我实现了它,这就是我得到的结果:pastebin.com/xLkAxAun 我认为结果非常好!
猜你喜欢
  • 2016-03-16
  • 1970-01-01
  • 2016-04-21
  • 2018-09-07
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多