繁体   English   中英

使用用户输入创建列表? 销售计划,进入销售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 您正在寻找的是列表上的*操作以生成您所需长度的列表,其中填充了 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM