Congratulate 发表于 2020-7-23 09:40:23

请各位大神们指教

list_1=[]
sum=0
for i in range(0,101):         
    sum+=i
    print(sum)
    list_1.append(sum)
    if i==100:
      print(list_1)
   


算出0~100的累加和,将for里的每一次的累加值,全部归纳进列表 list_1 中。有没有更简单的代码,想请问各位一次到位的那种。

Twilight6 发表于 2020-7-23 09:41:12


一次到位:
print(sum(range(0, 101)))
或者:
result = list(range(0, 101))
print(sum(result))

Congratulate 发表于 2020-7-23 09:46:02

Twilight6 发表于 2020-7-23 09:41
一次到位:

或者:

交互模式下运行就只有5050.但我不是交互模式,我运行完后是 'int' object is not callable 这个错误。这是为什么?

Twilight6 发表于 2020-7-23 09:47:04

Congratulate 发表于 2020-7-23 09:46
交互模式下运行就只有5050.但我不是交互模式,我运行完后是 'int' object is not callable 这个错误。这 ...

代码中你把 sum赋值了 , 你把 sum 变量改成其他名即可

Congratulate 发表于 2020-7-23 09:49:04

Twilight6 发表于 2020-7-23 09:47
代码中你把 sum赋值了 , 你把 sum 变量改成其他名即可

具体是怎么个操作呢,能不能给串代码。我不是很懂

zltzlt 发表于 2020-7-23 09:53:12

Congratulate 发表于 2020-7-23 09:46
交互模式下运行就只有5050.但我不是交互模式,我运行完后是 'int' object is not callable 这个错误。这 ...

重新打开 IDLE 再重试一遍

Congratulate 发表于 2020-7-23 09:53:43

Twilight6 发表于 2020-7-23 09:49
那你发上你运行报错的完整代码

我就裸运行了你给我的那两串,两个都是报一样的错误。

Twilight6 发表于 2020-7-23 09:54:20

Congratulate 发表于 2020-7-23 09:53
我就裸运行了你给我的那两串,两个都是报一样的错误。

输入 del sum ,然后再运行就好

Congratulate 发表于 2020-7-23 09:58:33

Twilight6 发表于 2020-7-23 09:54
输入 del sum ,然后再运行就好

出这个错误了NameError: name 'sum' is not defined

Congratulate 发表于 2020-7-23 10:00:21

zltzlt 发表于 2020-7-23 09:53
重新打开 IDLE 再重试一遍

一样的,

Congratulate 发表于 2020-7-23 10:04:15

Twilight6 发表于 2020-7-23 09:59
那你重启 IDLE ,运行我的代码不要运行你的

其实我想要的代码结果效果是这样的。你那个最多给我一个5050.然后刚刚也重启了,还是一样的错误 NameError: name 'sum' is not defined

sunrise085 发表于 2020-7-23 10:04:48

print(list((sum(i for i in range(j))for j in range(1,102))))

Congratulate 发表于 2020-7-23 10:06:21

Twilight6 发表于 2020-7-23 09:59
那你重启 IDLE ,运行我的代码不要运行你的

featList = for example in dataSet]
classList = for example in dataSet]
这两串代码是我自己找的,但看不太懂,能详细解释下么,最好通俗易懂点,太专业术语听不懂

sunrise085 发表于 2020-7-23 10:07:23

Twilight6 发表于 2020-7-23 10:02
???你确定是复制我代码运行,我这里完全正常,到你那就出了问题

你只计算了0~100求和了。
他要的是把0~100各项求和都计算出来,即0~1,0~2,0~3,……,0~100

Twilight6 发表于 2020-7-23 10:08:24

Congratulate 发表于 2020-7-23 10:04
其实我想要的代码结果效果是这样的

result =
print(result)

Congratulate 发表于 2020-7-23 10:08:33

sunrise085 发表于 2020-7-23 10:04


对,你这个可以的。你这个是套了两个for么?能详细解释下吗{:10_254:}

Twilight6 发表于 2020-7-23 10:09:49

Congratulate 发表于 2020-7-23 10:04
其实我想要的代码结果效果是这样的

你没说清楚...

Congratulate 发表于 2020-7-23 10:11:32

Twilight6 发表于 2020-7-23 10:08


这次可以了,能详细解释下你的代码么,原来for前面能加参数吗?能给我通俗易懂点的叙述下么?

Congratulate 发表于 2020-7-23 10:12:15

Twilight6 发表于 2020-7-23 10:09
你没说清楚...

我的问题,原谅我是小白{:10_266:}

Twilight6 发表于 2020-7-23 10:12:58

Congratulate 发表于 2020-7-23 10:11
这次可以了,能详细解释下你的代码么,原来for前面能加参数吗?能给我通俗易懂点的叙述下么?

这个是列表推导式,实际上展开来就是这样的:
result = []
for i in range(0,101):
    result.append(sum(range(i+1)))
print(result)

result =

就是每次循环的 i ,将 for 前面的计算结果保留在 result 列表中

页: [1] 2
查看完整版本: 请各位大神们指教