2013-05-30 74 views
1

這是基本的,我在整個網站搜索,但我找不到任何具體關於此。使用範圍的倍數序列

問題是編寫一個函數,該函數需要一個整數並返回該整數的一定數量的倍數。然後,返回包含這些倍數的列表。例如,如果你輸入2作爲你的電話號碼參數和4的倍數的參數,你的函數應該返回含2,4,6,和8

我有什麼迄今爲止的列表:

def multipleList(number, multiples): 
    mult = range(number, multiples, number) 
    print mult 

的測試情況是:

print multipleList(2, 9): 
>>> [2, 4, 6, 8, 10, 12, 14, 16, 18] 

我的回答,我得到:

>>> [2, 4, 6, 8] 
None 

我知道範圍H作爲格式(開始,停止,步驟)。但是,你如何告訴它停止一定次數而不是某個數字?

回答

0

使用(number*multiples)+1作爲終值在range

>>> def multipleList(number, multiples): 
     mult = range(number, (number*multiples)+1 , number) 
     return mult 
...  
>>> print multipleList(2,9) 
[2, 4, 6, 8, 10, 12, 14, 16, 18] 
>>> print multipleList(3, 7) 
[3, 6, 9, 12, 15, 18, 21] 

函數的默認返回值是None,如你不會在你的函數中返回任何東西所以它將返回None。而不是打印mult你應該返回它。

>>> def f():pass 
>>> print f()  
None   #default return value 
2

嘗試range(number, number*multiples+1, number)代替:

def multipleList(number, multiples): 
    return list(range(number, number*multiples+1, number)) 

print(multipleList(2, 9)) 

輸出:

[2, 4, 6, 8, 10, 12, 14, 16, 18] 
+0

它仍然在底部打印「無」。有沒有辦法解決這個問題? – user2434517

+0

這是因爲你的函數返回'None'。看我的例子 –

0

另一種方法可以是以下各項之一

def mult_list(number, limit): 
    multiples = [] 
    for i in xrange(1, limit+1): 
     multiples.append(number * i) 
    return multiples 

例如: 在[8]:mult_list(2,4) 缺貨[8]:[2,4,6,8 ]

另外,如果我不想要的參數列表爲空,似乎與常規數據類型是一致的:

In [10]: mult_list(2,0) 
Out[10]: []