练手一个小程序,输出100以内的所有质数,程序如下:
n=1
flag=True
while n<99:
n=n+1
i=2
while i<n:
if n%i==0:
flag=False
break
else:
i=i+1
if flag==True:
print(n)
发现结果只有2、3
鉴于之前MySQL循环语句的坑,一下子就像想到是循环出了错,肯定是轮到判断n=4的时候,出于什么原因就卡住了,于是我把flag改了下顺序:
n=1
while n<99:
flag=True
n=n+1
i=2
while i<n:
if n%i==0:
flag=False
break
else:
i=i+1
if flag==True:
print(n)
就可以了……
来吧继续分析分析,
n=2,flag=True,输出2;
n=3,flag=True,输出3;
n=4,flag=Flase,不输出4;
n=5,照理说应该输出5,然鹅此时flag还是上一次n=4的循环时的Flase,所以必然不会输出数值,包括后面所有的值都不会输出了。
所以,得在循环里每次开始重新复制flag的值!
OK解决!又是循环语句乱写带来的错误!