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个倍数,有没有办法使它更简洁? (已编辑)
答案 0 :(得分:2)
这是for
循环实用程序非常清楚的地方。
def print_first_multiples(num, multiples):
for i in range(1, multiples+1):
print(num*i)
return num*multiples
以上脚本将打印multiples
的前num
倍,从1
(num*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)
的最后一个索引大一个。