[英]Creating a list with user input? Sales program, enter sales for 7 days
所以问题是这样的:
设计一个程序,要求用户输入一周中每一天的商店销售额。 金额应存储在数组中。 使用循环计算一周的总销售额并显示结果。
这是我目前所拥有的
maxValue = 7
sales = 0
index = 0
totalSales = [maxValue]
for index in range(0, maxValue - 1):
totalSales[index] = float(input("Enter today's sales: $"))
我知道这是边界问题,我收到错误IndexError: list assignment index out of range在我输入第二个输入后。
调试后,我可以看到 totalSale = [maxValue] 给列表的长度为 1.. 但我不明白如何解决这个问题。 感谢您的帮助!
您的代码的问题出在这一行:
totalSales = [maxValue]
该行基本上将[7]
设置为变量totalSales
。 您正在寻找的是列表上的*
操作以生成您所需长度的列表,其中填充了 null ( None
)值:
maxValue = 7
sales = 0
index = 0
totalSales = [None] * maxValue
for index in range(maxValue):
totalSales[index] = float(input("Enter today's sales: $"))
或者更好的是,使用list.append()
方法:
maxValue = 7
sales = 0
index = 0
totalSales = []
for index in range(maxValue):
totalSales.append(float(input("Enter today's sales: $")))
maxValue = 7
sales = 0
index = 0
totalSales = list()
[maxValue] 只会将值maxValue
的一项添加到列表中。 Append 将新项目添加到列表中。 对于范围,您可以只使用maxValue
作为参数,不需要 (0, maxValue)
for index in range(maxValue):
totalSales.append(float(input("Enter today's sales: $")))
如 Adam.Er8 所述,使用append()
function 将条目添加到列表中。 您几乎拥有它,此外,对range()
function 的调用将排除“第 n 个”索引,因此您无需从 maxValue 中减去 1 即可获得 7 个条目。 下面的例子:
total_sales = []
for ix in range(0, maxValue):
totalSales.append(float(input("Enter today's sales: $")))
# results below
# Enter today's sales: $10
# Enter today's sales: $5
# Enter today's sales: $10
# Enter today's sales: $1
# Enter today's sales: $1
# Enter today's sales: $2
# Enter today's sales: $3
# total_sales
# [10.0, 5.0, 10.0, 1.0, 1.0, 2.0, 3.0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.