[英]For-Else loop in another For loop
我對另一個for循環中的for-else循環有一些疑問。 所以這是一個例子:
primelist = []
for p in range (2, x+1):
print 'in first for'
raw_input()
for i in range(2, p):
print 'in second for'
if p%i == 0:
print 'in if'
raw_input()
break
else:
print 'in else'
raw_input()
primelist = primelist + [p]
return primelist
如您所見,這是用於確定質數並將其存儲在列表中的,以便以后可以檢索。 所以我的問題是第一個for循環。 當我運行該程序時,它的輸入如下:First FOR循環,ELSE,First FOR循環,Second FOR循環等等。 為什么它第一次跳到ELSE? 另外,如果我要求輸入第1000個數字,則輸入:7919
for i in range(2, p)
和7907與
for i in range(2, p/2).
這是為什么? 希望您能對此有所幫助,但請不要提供其他實現素數算法的方法!
Python的range
不包含結束值。
range[start, end)
因此,在第一次迭代中, p
值為2, range(2, 2)
為空列表。 這就是為什么要輸入else部分的原因。
print range(2, 2) # []
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.