2013-04-01 66 views
0

我有一個關於python函數對於是如何工作的問題。我有一個我正在編寫的程序,其中涉及生成幾個數字的素因式分解。關於python_for_函數如何工作的困惑

for a in range(2,25): 
    print primefactorize(a) 

當我在上述範圍內進行了測試,最後一個列表中的終端彈出是24的主要因子分解輸出,而不是25是否功能

for a in range(1,x): 

僅通過每個運行值高達x-1?

感謝

+4

不要忘記,你可以'在控制檯輸入'幫助(範圍)。您也可以使用引號 - 例如'help(「for」)' - 當你想看到關鍵字的幫助。 – DSM

+0

回答你的問題:是的。 – alexis

回答

5

我覺得你的困惑是range

range(2,25) 
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] 

從文檔:

這是一個多功能的函數來創建一個包含算術級數 名單。它最常用於for循環。參數必須是 是純整數。如果省略step參數,則缺省值爲1. 如果省略start參數,則缺省值爲0.完整形式 返回步驟1中的純整數列表[start,start + step,start + 2 * 。 ..]。如果步驟是肯定的,最後一個元素是最大的開始 + i *步驟小於停止;如果step是負數,最後一個元素是最小的start + i * step大於stop。步驟不得爲零 (否則會引發ValueError)。例如:

在數學這被稱爲start inclusive, stop exclusive interval,看起來像這樣:

[start, stop) 
+0

這非常有幫助,謝謝。不過,我還有一個問題。有沒有辦法編輯我編寫的範圍函數,以便在不更改數字的情況下將其轉換爲25?非常感激。 –

+1

@KevinBradner:如果你想要一個完全包含的時間間隔,你可以很容易地編寫你自己的函數:'def inclusive_range(start,stop):return range(start,stop + 1)'。然後,你可以使用'inclusive_range(2,25)'來得到你想要的。 – abarnert