取模运算2边数字可以相等,取模后返回0。
主要是这句 range(2,i),i为2时range(2,2),是不执行循环的,已经大于等于上限了
你要理解质数的判断条件
内循环就是判断i是否为质数,i为质数的条件是,从2到i-1间的所有数,都不可整除i
也就是说,如果i是j的倍数(也就是i%j==0),那么说明i不是质数,内层循环直接可以break结束掉,不用往后判断了。
======
但是如果同时取4呢?那余数也是0啊---啥意思?你是指i为4,还是j为4?
if i%j==0
这一步是指余数为0,即整除时
首先上质数的定义:
质数又被称为素数,是指一个大于1的自然数,除了1和它自身外,不能被其它自然数整除
。i%j的意思是取余,5%2 = 1 ,2%2 = 0, 4%2 = 0。所以整个程序的意思就是i能被2到i-1范围内的j整除时跳过,
这个break只能影响第二层循环,i还会增加。
而当第二层循环跑完没有触发break时,再将i添加进sum中。
str1 = 'Eurasia'
for i in str1:
if i == 's':
print('遇到s不打印')
break
print(i)