保存用户输入

时间:2018-07-13 16:46:49

标签: python python-3.x python-2.7

我买卖产品,并且想制作一个程序来节省时间。 当我购买这些固定产品时,我想通过编写一个程序来询问我“ 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) + " ?"))

3 个答案:

答案 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)