使用用户输入创建列表?销售计划,输入销售7天

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。您正在寻找的是列表上的 * 操作,以生成所需长度的列表,其中填充了空值 (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() 函数将条目添加到列表中。你几乎拥有它!此外,对 range() 函数的调用将排除“第 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: 
# Enter today's sales: 
# Enter today's sales: 
# Enter today's sales: 
# Enter today's sales: 
# Enter today's sales: 
# Enter today's sales: 

# total_sales
# [10.0, 5.0, 10.0, 1.0, 1.0, 2.0, 3.0]