使用范围的倍数序列

2024-10-02 18:14:43 发布

您现在位置:Python中文网/ 问答频道 /正文

这是基本的再次和我在整个网站上搜索,但我找不到任何具体的关于这个。你知道吗

问题是要编写一个函数,该函数接受一个整数并返回该整数的特定倍数。然后,返回一个包含这些倍数的列表。例如,如果要输入2作为number参数,输入4作为multiples参数,则函数应该返回一个包含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

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


Tags: 函数number列表参数网站def测试用例range
3条回答

改为尝试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]

使用(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

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

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

例如: 在[8]中:多重列表(2,4) 输出[8]:[2,4,6,8]

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

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

相关问题 更多 >