python-3.x - 如何将不同的输入存储在一个变量中并打印出来?
问题描述
到目前为止,代码可以正常工作并要求我提供所需的一切,但它会不断输出最后一个输入,而不是最后的全部 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
解决方案
在循环的每次迭代中,您都将覆盖变量保存的先前值。
对于您的目标而言,这可能过于复杂,但您可以将字典作为数据结构嵌套在列表中。
例子:
#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
可能有一种更简单的方法可以完成您正在尝试做的事情,但这样您就可以跟踪输入,祝您好运。
推荐阅读
- javascript - 右括号前空行的 eslint 规则
- java - 如何使用 UIAutomator 关闭快速设置系统面板?
- python - 如何根据列表重新排序数据框?熊猫
- java - 如何在java中使用一个httpURLConnection浏览多个url
- angularjs - AngularJS ng-options 由 id 选择的 ng-model 选项
- java - 一行上的多个输入,具有多个变量和两位数(微分计算器)
- python-3.x - 在 Python 中对数字使用 de startswith 函数
- azure - Azure 自动缩放:在实例上的进程结束后按比例缩小
- android - Mapbox LocationLayerPlugin 'Cannot reslove symbol'
- php - 试图返回每月注册的用户,但在 CakePHP 3 中没有得到正确的计数?