python 可以将用户输入与程序中的变量进行比较吗?
Can python compare user input with variables in program?
这是我第一次post来到这里,希望它易于阅读,并且有人问我的回答! (:
首先,为了让您了解一下,我想为全新的游戏《无人深空》创建一个效率计算器。该游戏中的经济与现实生活中的经济几乎相同。您可以以比创建它所需的组件高得多的价格出售物品。例如:您可以以 5000 欧元的价格出售一块岩石,或者以 30 欧元的价格出售 30 个岩石部件。如果您用岩石零件制作岩石,您的利润将是 5000-900,对吗? (:
这里是 code.
我想要它做的是以下内容。用户输入一个产品,程序会比较产品的销售价格和制作产品的组件价格,并显示这样做的利润。
我有以下问题:
- 有没有更好的办法保存数据以后使用呢? (第 1-16 行)
有没有什么方法可以比较我将创建的所有变量(第 18 行),或者我是否必须为每个产品创建一个 if 循环(第 22-24 行)。我的意思是
profit = products[input] - input_recipe
print profit
因为要查很多菜谱,要是有更好的就麻烦了
如何保存和访问数据实际上取决于您希望如何处理计算器。我想说处理这个问题的最好方法是如果有一个 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/
干杯,
关于你的第一个问题,另一种方法是使用 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 是您的第四本包含菜谱价格的字典。
这是我第一次post来到这里,希望它易于阅读,并且有人问我的回答! (:
首先,为了让您了解一下,我想为全新的游戏《无人深空》创建一个效率计算器。该游戏中的经济与现实生活中的经济几乎相同。您可以以比创建它所需的组件高得多的价格出售物品。例如:您可以以 5000 欧元的价格出售一块岩石,或者以 30 欧元的价格出售 30 个岩石部件。如果您用岩石零件制作岩石,您的利润将是 5000-900,对吗? (:
这里是 code.
我想要它做的是以下内容。用户输入一个产品,程序会比较产品的销售价格和制作产品的组件价格,并显示这样做的利润。
我有以下问题:
- 有没有更好的办法保存数据以后使用呢? (第 1-16 行)
有没有什么方法可以比较我将创建的所有变量(第 18 行),或者我是否必须为每个产品创建一个 if 循环(第 22-24 行)。我的意思是
profit = products[input] - input_recipe print profit
因为要查很多菜谱,要是有更好的就麻烦了
如何保存和访问数据实际上取决于您希望如何处理计算器。我想说处理这个问题的最好方法是如果有一个 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/
干杯,
关于你的第一个问题,另一种方法是使用 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 是您的第四本包含菜谱价格的字典。