前情提要:
作为一个开心码农,就是要不停码、不断农,一时码、一时爽,一直农、一直爽......个P
不过要做为一个开心码农肯定不能一直做
print('Hello World')
其他的迴圈、变数等等的练习肯定少不了!
所以提到迴圈就得说说for和while两种了......
最近的练习中,for迴圈倒是满常用到了,一般理解&操作起来也不很困难
大部分就是无脑的
for i in range(0, xxx):
或是
for i in range(1, xxx+1):
这样的
然而换到了while迴圈的练习题:"请列出从1~使用者输入的整数间的所有偶数"的时候,我的脑子都快烧了...
脑袋烧掉的主要原因有:
1.知道要做判断式
2.判断式做好了
3.判断式放进去以后,不是报错,就是无限迴圈去啦~
虽然这问题看起来应该是非常蠢,但因为被整到了,所以感觉这个debug非常的有意义,足够来发篇文章纪念下!!
这次的练习题如前面说的,"请列出从1~使用者输入的整数间的所有偶数"
原本的範例中一开始是把变数i设为2下去做计算,这部分倒是没太大问题。
i = 2n =int(input('请输入一个数字:'))while(i <= n): print(i, end=' ') i = i +2
有问题的则是作为延伸题的"其他的写法:不在第一时间宣告 i = 2,而是 i=1 其后再用判断式"
看到这题目加上最近在新手村砍木人的成果,就知道要用
if(i % 2 ==0):
但一开始组合到while下面之后就开始了一场阵痛;因为一下说标齐的位置不对,一下报错,一下无限迴圈...
这真的是新手任务吗?
不过好在突然像柯南一样闪过一道光,就是那道光让我改变战略,跑去开另一个档案并把if+for迴圈的判断式给写好
i = 1n=int(input('请输入一个整数:'))for i in range(1, n+1): if (i % 2 ==0): print(i, end=' ') i = i +1
※如果要改成列出奇数的话,就把i % 2 == 0改成i % 2 != 0
然后跑起来是正常的之后,就一切看似很美好的塞到while迴圈里面去,然后......就无限迴圈了!
无限迴圈的写法是这样:
n=int(input('请输入一个整数:'))i = 1while (i <= n): if(i %2 ==0): print(i, end=' ') i = i +1
看样子,就算在if判断式内有包含 i = i + 1,但while迴圈也是不会承认的喔!
所以初新者码农挺住了while魔兽攻击,并在损伤999之后,以HP1的状态在if判断式的外层再加上一次i = i + 1,然后这支程式才终于正常执行了...
(怎觉得我好像在做if & else,但却不用写出else)
最后能正常执行的是:
n=int(input('请输入一个整数:'))i = 1while (i <= n): if(i %2 ==0): print(i, end=' ') i = i +1 i = i +1 #如果i %2 != 0, 一样要让i跑到下一个数字(迴圈)
虽然整个debug的过程好像杀了个什么了不起的大Boss的感觉,但实际上大概就是Lv.1的青蛙和Lv.15的毒蛙的那种差异吧......