我正在尝试生成两个循环,我希望第二个循环从第一个循环的第一个数字开始计算,范围从10到80.看起来像这样:
0
0
1
12345678910
2
234567891011121314151617181920
3
3456789101112131415161718192021222324252627282930
继续这样直到我的第一个循环中的8个和我的第二个循环中的80个。 我的代码到目前为止
count = 1
for i in range(9):
for j in range(0, i,10):
print(count, end=80)
count = count i+1
print()
任何关于我做错事的建议都会非常有帮助。
答案 0 :(得分:1)
您的代码中存在许多语法错误。我想我在这里有一个可用的版本:
for i in range(9):
end_second_loop = (i * 10) + 1
print(i)
for j in range(i, end_second_loop):
print(j, end='')
print()
我还会用你的第一个代码来解释语法错误。
为了让您的代码能够运行,必须删除前一次print()
调用之前的额外空格,end=80
必须更改end
,在这种情况下必须一个字符串,例如end=''
强制print()
不添加换行符),+
中缺少count = count i+1
。我想你想要:
count = count + i + 1
让它运行,但尚未产生正确的输出。根据您格式化所需输出的方式,需要3 print()
个语句。
end=''
,以便全部在线打印)在外部循环内部,但在进入内部循环之前,我定义了end_second_loop
以让第二个循环知道何时停止,并且它在外部循环的每次迭代时更新。然后内循环开始工作。重要的是,第3个print()
语句必须在内部循环中称为外部,而在外部循环中称为内部。正如你最初所做的那样,它在内部循环中被调用,阻止它在一行上打印。通过将它移出该循环,并移动到第一个循环的末尾,它只在外循环的每次迭代中打印一次换行,并且仅在内循环完成后将其所有数字打印到一行。
我希望有所帮助。
答案 1 :(得分:0)
您不需要for
循环来打印整数列表:使用str.join
方法。这是一个例子:
for x in range(9):
print('{}\n{}'.format(str(x), ''.join(map(str, range(x, 10 * x + 1)))))
技巧是在执行连接操作之前将整数映射到字符串:map(str, range(x, 10 * x + 1))
。