python 里for循环转换成while
这次是第3次尝试成功的记录和心得
请将以下for循环变成while
sum = 0
for i in range(1001):
sum += i
print(sum)
print(i)
自学python之后我明白了for循环是迭代循环,换句话说其range里的数字是迭代的次数。
.而到了while循环里数字往往代表的是结果。数字结果和迭代次数这二者之间是有一定差异的。
不能太咬文嚼字
我设计的改造while循环结果
sum = 0
i = 0
while sum < 1000:
sum += 1
i += sum
print(i)
一个初学者的分享
首先我打开我机器里的pycharm和vscode利用双屏的优势,先把原题for循环写到vscode的里。然后在pycharm里进行改造。
1、我个人认为vscode里能记住上次结果的设计不错。pycharm这是运行一次清空一次,让我每次回溯结果很费劲。
所以我装了两个软件还有vscode至今没法进行pandas操作,
2、设计的步骤
- 我首先得到正常for循环下的结构 i = 1000 sum =500500
- 作为初学者请一定要耐心的参考,哪怕是一行一行的寻找
3、第一个问题
for循环里谁是计数,谁是结果输出(当然这个题里两个结果我都要的)不过我认为是i是这里的计数环节,sum这是结果环节。也许对于科班同学这是显而易见的。那么在while循环里呢??
我仍然让i担任计数的工作,但多少的i是正好的呢。我选择了1001,结果i变成了1002,好我改一下1000还是不行,结果i变成了1001,最后我改到了i<=999,天哪奇迹出现了。但是我也看清楚了一个问题。i应该是“<”而不是“<=”。
4、如何叠加
- 4.1 i的设定
这里i是循环的计数器,初始i=0,在循环体内i += 1, - 4.2 sum的设定
sum作为最终结果和累积sum +=i这个和for循环里的一致。
*我在考虑和设计了很久,才发现这道题的转换里不一定都要换
5、自我总结
这道题里for循环和while的区别,就是一个更方便迭代循环。一个更趋向于结果循环。但我也有很多迷惑的地方。总体上我是成功了。然后我翻了一下我之前的几次解答,看来都一致。那么我接下来还需要再试试.