我买卖产品,并且想制作一个程序来节省时间。 当我购买这些固定产品时,我想通过编写一个程序来询问我“ x个产品有多少个”,然后问“ y个产品”,以此类推,从而节省时间。 最后,我希望它打印出我总共有多少种产品,以及它们的美元价值是多少。
在两个问题之间,我还希望它以美元显示该产品的总金额。例如,#INPUT“多少个产品X” 10#输出:“您有10个价值100美元的产品X。”
然后最后,我希望python将x,y,z加起来并打印出“您有X个产品的总价值为300美元”
这是我到目前为止提出的。
product1 = 20
product2 = 12
product3 = 20
product4 = 25
product5 = 25
product6 = 17
product7 = 19
product8 = 19
product9 = 17
product10 = 25
product11 = 5
product12 = 5
product13 = 5
product14 = 20
product15 = 24
def timesaver():
product1_amount = int(input("How many product1? "))
print(f"You have {product1_amount} product1 and {product1_amount * product1} Dollars worth\n\n")
product1_total = product1_amount
product1_dollars = product1_amount * product1
print('\n\n')
我要一遍又一遍地重复进行此工作,以使代码糟透了,而且效率很低。有帮助吗?
我还制作了一些循环,询问诸如此类的问题,将所有产品放入没有价格的清单中。
但是如何将每个用户输入保存到不同的变量中,以便可以对每个用户输入执行操作?
for index in products:
question = int(input("How many " + str(index) + " ?"))
答案 0 :(得分:2)
制作价格字典。然后遍历该词典,询问用户想要多少个特定产品。使用该数据构建第二个代表订单本身的字典。
products = {
"apple": 1.00,
"pear": .70,
"banana": .10,
"kiwi": 1.50,
"melon": 5.75,
"pineapple": 12.0,
}
def get_order():
order = {}
for product, price in products.items():
amount = int(input(f"How many {product} do you want at {price:.2f} each?"))
order[product] = (price, amount)
print("Your total is {:.2f}".format(sum(x*y for x, y in order.values())))
return order
答案 1 :(得分:1)
考虑将您的产品价格存储在一个数组中:
products = [20, 12, 30, 25, 25, 17, 19, 19, 17, 25, 5, 5, 5, 20, 24]
def timesaver() :
productNumber = 1
totals = []
dollars = []
for product in products :
amount = int(intput("How many product{}? ".format(productNumber))
print(f"You have {amount} product{productNumber} and {amount * product} Dollars worth\n\n")
totals.append(amount)
dollars.append(amount * product)
print('\n\n')
print(totals)
print(dollars)
现在您仍然保存了所有相同的值,
例如:product1_total
= totals[0]
,product2_total
= totals[1]
等
答案 2 :(得分:1)
使用函数是一个好的开始
您可能要考虑使用dictionary
。它允许您按名称进行查找,并且查找过程是固定的,这意味着无论您拥有多少产品,查找时间都是相同的。
可以这样做:
products = {'product1_name': 20, 'product2_name': 12, ..., 'productn_name': 300}
考虑到这一点,您可以对函数执行以下操作:
def timesaver(product, amount):
# Product is the name of the product you want
val = products[product]
# Amount is an integer value
total = amount * val
print("Total for product {0}: {1}".format(product, total))
使用您想使用的input
函数,可以使总使用处于while循环中:
for product in products.keys():
amt = int(input("How many of {}? ".format(product)))
timesaver(product, amt)