有没有一种方法可以更简洁地打印特定数字的倍数?

时间:2019-12-11 00:04:30

标签: python

def first_three_multiples(num):
  print(num)
  print(num*2)
  print(num*3)
  return num*3

first_three_multiples(10)
first_three_multiples(0)

如果要打印,请说3的前45个倍数,有没有办法使它更简洁? (已编辑)

1 个答案:

答案 0 :(得分:2)

这是for循环实用程序非常清楚的地方。

def print_first_multiples(num, multiples):
   for i in range(1, multiples+1):
       print(num*i)
   return num*multiples

以上脚本将打印multiples的前num倍,从1num*1)开始,直至multiples({{1} }。

例如,如果要传递num*multiples参数print_first_multiples,它将打印(10, 45)的前45倍数:

10

由于您似乎不熟悉10 20 ... 440 450 循环(因此您会提出问题),因此我将添加一条注释,说明为什么构造它的方式。

您可能会想象,当您初次设计for循环时,会使用类似的

for

如果您要尝试这样做,您会注意到上面示例的第一个for i in range(multiples)将是print,而不是0,最后一个输出将是{{1 }},而不是10。这是因为440函数从450开始,并且比其输入参数(range())的值继续小一个,这意味着它的范围为0。由于我们改为希望范围为45,因此我们将(0, 44)的起点移至(1, 45),并将终点移至range,剩下{{1} }。

这对于在循环访问1的索引时非常重要,因为multiples+1的索引从range(1, multiples+1)开始,并比列表的长度小1({ {1}},因此lists将返回lists的所有索引,而0将从len(example_list)-1开始(range(len(example_list))的第二个索引)并继续到example_list,它比range(1, len(example_list)+1)的最后一个索引大一个。

相关问题