对于带索引的语句和范围函数

时间:2019-05-31 07:56:45

标签: python python-3.x

对于我的作业,我必须为程序使用for循环和range函数,以将以下内容打印出来,每个内容都在单独的一行上,以便看起来像一个列表。

Hello 0
Hello 1
Hello 3
Hello 6
Hello 10

我知道您必须创建两个变量,一个变量可以跟踪索引数,另一个变量可以打印索引数,因为该问题指出:  (数字对应于连续索引上的累加总和)。我的问题是创建可以跟踪索引的函数。任何指导都会很棒。再次感谢。

count_indexes = ?
print_statement = count_indexes + 1
for i in range(0,11,count_indexes):
    print("Hello",print_statement)

预期结果应该打5遍打招呼,每条打在不同的行上,每个行上都有不同的数字,数字应该为0、1、3、6、10。

4 个答案:

答案 0 :(得分:1)

  

itertools模块是用于处理迭代器的工具的集合

     

itertools.accumulate   -使迭代器返回累加的总和或其他二进制函数的累加结果

from itertools import accumulate
for i in accumulate(range(5)):
    print(f'Hello {i}')

或者没有任何模块

cum_idx = 0
for i in range(5):
    cum_idx += i
    print(f'Hello {cum_idx}')

答案 1 :(得分:0)

Range从0开始,因此您无需输入。

这是示例解决方案:

counter = 0
for i in range(5):
    counter += i
    print('Hello', counter)

答案 2 :(得分:0)

您将需要手动增加步长,这可以使用while循环来完成。 while和for循环之间的结帐差异。

for语句遍历集合,可迭代对象或生成器函数。

while语句仅循环执行直到条件为False。

如果使用while循环,则代码将如下所示:

count_indexes = 0
step = 1
while count_indexes < 11:
    print("Hello", count_indexes)
    count_indexes = count_indexes + step
    step = step + 1

输出:

Hello 0
Hello 1
Hello 3
Hello 6
Hello 10

答案 3 :(得分:0)

数字是三角形数字。有一个封闭的形式来计算它们,因此您无需跟踪额外的变量。

>>> for i in range(5):
...     print('Hello', (i+1)*i//2)
Hello 0
Hello 1
Hello 3
Hello 6
Hello 10