【发布时间】:2020-04-03 19:15:09
【问题描述】:
a = []
s = 0
k = 0
for i in range(20):
x = int(input())
if x<0:
s+=x
k+=1
a.append(x)
z = s/k
for i in range(20):
l = (a[i])-z
del a[i]
a.append(l)
print(a)
input()
任务是:从标准数据输入流中读取包含 20 个元素的一维列表的值。通过从列表中每个元素的值中减去列表中负元素的算术平均值来转换原始列表。源数据是-10^6到10^6的整数。
【问题讨论】:
-
请重复介绍导览,尤其是how to ask 和MRE。 “不起作用”不是问题规范。您发布的代码挂起等待输入 - 我们不应该提供 - 并且您没有显示任何输出。
-
“不起作用”告诉我们很少。相反,请告诉我们程序实际做了什么,并说明它与您的预期有何不同。
-
在第二个 for 循环中,您正在修改要循环的表,这样只会造成疯狂和悲伤。
-
所以我做了一些测试,但程序给了我错误的输出数据:[-30, -43, 26, 88, -10, 2, -14, 6, 1, 120, 43.5, 20.5, 31.5, 35.5, 1.5, 92.0, 64.0, 73.5, 54.5, 121.5] (the right is: 32.5 -9.5 43.5 -22.5 71.5 46.5 20.5 108.5 39.5 10.5 31.5 22.5 43.5 6.5 35.5 26.5 13.5 21.5 1.5 140.5).该程序在减去算术平均值时完全是错误的。输入数据为:12 -30 23 -43 51 26 0 88 19 -10 11 2 23 -14 15 6 -7 1 -19 120
标签: python python-3.x list