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

我知道范围具有格式(开始、停止、步骤)。但是你如何告诉它在一定次数而不是在一定次数后停止?

4

3 回答 3

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]
于 2013-05-30T01:48:20.243 回答
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
于 2013-05-30T01:49:32.883 回答
0

另一种方法可能是以下一种

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

例如: In [8]: mult_list(2,4) Out[8]: [2, 4, 6, 8]

此外,如果我不想要参数,则空列表似乎与常规数据类型一致:

In [10]: mult_list(2,0)
Out[10]: []
于 2013-05-30T02:55:44.860 回答