我是一名刚开始学习python的学生,当时我正在制作一个程序,使用break和continue打印从1到300的素数,它执行得很好,但我不明白为什么它不打印1。如果给定范围为(a,a),该函数将起作用。您可以理解为什么在看到代码后问这个原因,因为我认为这是在质数程序中未显示1的原因。
a=range(1,301)
for num in a:
for d in range(2,num+1)
rem=num % d
if(rem==0):
if (d != num ):
break
if (num != d):
continue
print (num, end=' ')
答案 0 :(得分:2)
让我们遍历您的代码
a=range(1,301) # this gives numbers from 1 to 300
for num in a: #assume we are at num =1
for d in range(2,num+1) # in this range fnc we start from 2 till 2 so this loop is not even executed
rem=num % d
if(rem==0):
if (d != num ):
break
if (num != d):
continue
print (num, end=' ')
a=range(1,301)
for num in a:
if num ==1: print (num, end=' ') # 1 is a co prime
for d in range(2,num+1):
rem=num % d
if(rem==0):
if (d != num ):
break
if (num != d):
continue
print (num, end=' ')
(a,b)的范围函数从a到b,即从a到b的门阶(因此不包括b)
如果您已经在(a,b)的b处,其中a == b,那么范围函数将不会启动