【问题标题】:Why the code shows all the addition process?为什么代码显示所有添加过程?
【发布时间】:2022-07-04 14:24:08
【问题描述】:

代码:

sum=0
for i in range(10,91):
    sum=sum+i
    print(sum)

当我编写这段代码时,答案是 输出:

10
21
33
46
60
75
91
108
126
145
165
186
208
231
255
280
306
333
361
390
420
451
483
516
550
585
621
658
696
735
775
816
858
901
945
990
1036
1083
1131
1180
1230
1281
1333
1386
1440
1495
1551
1608
1666
1725
1785
1846
1908
1971
2035
2100
2166
2233
2301
2370
2440
2511
2583
2656
2730
2805
2881
2958
3036
3115
3195
3276
3358
3441
3525
3610
3696
3783
3871
3960
4050

有什么问题?请帮帮我

【问题讨论】:

  • 您认为输出到底有什么问题?你认为它应该是什么?

标签: python


【解决方案1】:

如果您不想看到每个计算,这就是您的代码应该是这样的。

sum = 0
for i in range(10,91):
    sum = sum + i
print(sum)

在旁注中,正如@Albin Paul 所建议的,sum 是一个内置函数,因此建议避免将其用作变量名,因为它会覆盖函数定义。

【讨论】:

  • sum是python中的一个函数,如果使用sum作为变量就不能再使用sum函数了。
【解决方案2】:

Python 中循环的工作方式与您想象的不同。

让我们从一个更简单的循环示例开始。当你写:

for i in range(1, 4):
    print(i)

就好像你真的写了:

i = 1
print(i)
i = 2
print(i)
i = 3
print(i)

循环体是print(i),因此Python 采用print(i)对范围内的每个i 运行一次

所以,由于range(1, 4) 包含数字1、2 和3,首先i 被赋值为1,然后循环体被执行,然后i 被赋值为2,然后循环体被执行再次,以此类推。

将循环视为多次复制粘贴相同代码的简写。

所以在你的具体问题中,你的代码:

sum=0
for i in range(10,91):
    sum=sum+i
    print(sum)

就像你复制粘贴相同的代码一样:

sum=0
i=10
sum=sum+i
print(sum)
i=11
sum=sum+i
print(sum)
i=12
sum=sum+i
print(sum)
i=13
sum=sum+i
print(sum)
...
i=88
sum=sum+i
print(sum)
i=89
sum=sum+i
print(sum)
i=90
sum=sum+i
print(sum)

注意print(sum) 一遍又一遍地复制粘贴。

就是为什么你的代码有它的输出。

希望这可以帮助您理解为什么其他答案建议将其改为:

sum = 0
for i in range(10,91):
    sum = sum + i
print(sum)

因为当您将 print 从循环体中取出时,就好像您只是在复制粘贴 sum=sum+i

sum=0
i=10
sum=sum+i
i=11
sum=sum+i
i=12
sum=sum+i
i=13
sum=sum+i
...
i=88
sum=sum+i
i=89
sum=sum+i
i=90
sum=sum+i
print(sum)

请注意,现在最后只有一张印刷品。

还有!

你可以用同样的想法来理解your other question which was "closed as duplicate"出了什么问题!

你写的:

for i in data:
  print(max(i))

就像你写的那样:

i=data[0]
print(max(i))
i=data[1]
print(max(i))
i=data[2]
print(max(i))
...

所以在那个问题中,您可以看到 max 一次只被来自 data 的一个整数调用。

【讨论】:

    猜你喜欢
    • 2022-09-28
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2020-11-09
    • 1970-01-01
    • 2014-04-22
    • 2023-03-31
    相关资源
    最近更新 更多