首页 > 解决方案 > 如何将不同的输入存储在一个变量中并打印出来?

问题描述

到目前为止,代码可以正常工作并要求我提供所需的一切,但它会不断输出最后一个输入,而不是最后的全部 3 个输入。我知道为什么,但不知道如何解决。任何帮助表示赞赏。

我试过做 3 个单独的功能,但只是弄得一团糟,无法让它工作。

class RetailItem:

    def __items__(s,d,p):
            return s,d,p
    def main():
        for x in range (3):
            s = input("What is item name: ")
            d = int(input("How many of these items are in stock? "))
            p = float(input("How much is each unit price? "))
        for __items__ in range(3):
            print("Description:", s)
            print("Units:", d)
            print("Price:", p)
    main()

所以现在代码可以做到这一点。

What is item name: 1
How many of these items are in stock? 1
How much is each unit price? 1
What is item name: 2
How many of these items are in stock? 2
How much is each unit price? 2
What is item name: 3
How many of these items are in stock? 3
How much is each unit price? 3
Description: 3
Units 3
Price 3.0
Description: 3
Units 3
Price 3.0
Description: 3
Units 3
Price 3.0

最后,我希望它阅读。

Description: 1
Units 1
Price 1
Description: 2
Units 2
Price 2
Description: 3
Units 3
Price 3

标签: python-3.x

解决方案


在循环的每次迭代中,您都将覆盖变量保存的先前值。

对于您的目标而言,这可能过于复杂,但您可以将字典作为数据结构嵌套在列表中。

例子:

#initialize an empty list and dict
myList = []
myDict = {}
def main():
    for x in range (3):
        #each loop overrides the dict
        myDict["description"] = input("What is item name: ")
        myDict["units"] = int(input("How many of these items are in stock? "))
        myDict["price"] = float(input("How much is each unit price? "))
        #append a copy of dict to our list
        myList.append(myDict.copy())
    #loop through list and unpack values from dictionaries
    for item in myList:
        for key, value in item.items():
            print(key.capitalize() + ":" + str(value))

main()

输入:

What is item name: 1
How many of these items are in stock? 1
How much is each unit price? 1
What is item name: 2
How many of these items are in stock? 2
How much is each unit price? 2
What is item name: 3
How many of these items are in stock? 3
How much is each unit price? 3

输出:

Description:1
Units:1
Price:1.0
Description:2
Units:2
Price:2.0
Description:3
Units:3
Price:3.0

可能有一种更简单的方法可以完成您正在尝试做的事情,但这样您就可以跟踪输入,祝您好运。


推荐阅读