547316419 发表于 2020-7-22 21:28:18

关于for的问题

小甲鱼的课程里面
sum = 0
>>> for i in range(101):
        sum += i
        print(sum)

这样写代码为什么不是直接输出总和而是一个一个加完之后输出

Twilight6 发表于 2020-7-22 21:30:38



因为你的 print(sum) 是在 for 循环内的,每次 for 循环执行一次,那么for 循环下面的代码块的代码都会被执行一次


把 print(sum) 少一个缩进,这样就是打印总和了:
sum = 0
for i in range(101):
    sum += i
print(sum)


1q23w31 发表于 2020-7-22 21:30:51

因为print写在了for循环里,意思就是进行一次循环,就输出一个结果
sum = 0
for i in range(101):
      sum += i
print(sum)

这样可以直接输出总和

547316419 发表于 2020-7-22 21:33:13

我是用交互模式写的,我这样写完它说我有语法错误

CodingCat_k 发表于 2020-7-22 21:33:56

明确for的循环域内语句为如下两句
sum+=i
print(sum)
(记得py是按照缩进区分作用域的)
要是想达到楼主所说直接打印累加的结果,将print前面的缩进删掉就成了

zltzlt 发表于 2020-7-22 21:34:56

547316419 发表于 2020-7-22 21:33
我是用交互模式写的,我这样写完它说我有语法错误

请见:https://fishc.com.cn/thread-158960-1-1.html

1q23w31 发表于 2020-7-22 21:41:20

547316419 发表于 2020-7-22 21:33
我是用交互模式写的,我这样写完它说我有语法错误

https://s1.ax1x.com/2020/07/22/UbrEz6.png
有什么问题

Twilight6 发表于 2020-7-22 21:48:01

547316419 发表于 2020-7-22 21:33
我是用交互模式写的,我这样写完它说我有语法错误



IDLE 不支持多行语句的运行,你可以 CTRL + N 新建脚本文件,然后复制代码到脚本文件中,F5 运行代码即可


石泊远 发表于 2020-7-22 22:13:54

照你的写法来说你应该是要求和,heihei我就给你魔改了一下


while True:
    sum = int(input('请输入开始:'))
    sum_2 = int(input('请输入结尾:'))
    hhh = 0
    for i in range(sum_2-sum+2):
                  hhh+=i
    print('答案为:',hhh)

页: [1]
查看完整版本: 关于for的问题