簡體   English   中英

另一個For循環中的For-Else循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM