-1
Lego = 40000

prodlist = ['Lego']

tx = 1.13

product = input("What do you want to buy? [Lego], [Something]")

cost = #I need to somehow use product to get Lego's value here

price = cost*tx;
if any(product in word for word in prodlist):
  print("Price for ", product," is = ", price)
else:
  print("Product not found :(")
4

2 回答 2

3

您可以使用名称成本设置字典。例如:

costs = {"Lego":5, "Car": 5000, "Bread": 2}

然后在成本方面,您可以参考这本字典:

cost = costs[product]
于 2021-11-02T15:33:12.153 回答
1

有多种方法可以使用用户提供的字符串来获取已声明变量的值。但是,请注意,下面的一些方法是为了说明而包含的,在大多数用例中不推荐使用。

  1. 推荐的。将变量存储在字典中,您可以使用该字典按名称查找值,例如:
>>> my_vars = {'Lego': 40000}
>>> product = input("What do you want to buy? [Lego], [Something]") # user enters "Lego"
>>> print(my_vars[product])
40000
  1. 不建议。 locals(), globals(),vars()返回包含声明变量及其值的字典,具体取决于它们的范围。注意:方法 (1) 是首选,特别是在这种情况下,考虑到查找使用用户提供的输入作为键,这会带来风险,因为用户可能会利用代码通过名称访问任何已声明变量的值。

  2. 不惜一切代价避免。 eval将表达式(字符串)计算为 Python 表达式。注意:使用eval通常被认为是不好的做法,特别是在处理用户提供的输入时,因为用户可以提供任何将被评估的任意表达式,包括潜在的不安全/恶意表达式。

>>> Lego = 40000
>>> eval('Lego')
40000
于 2021-11-02T15:31:48.090 回答