[英]Generate two loops with different ranges
我正在尝试生成两个循环,我希望第二个循环从第一个循环的第一个数字开始计数,范围为 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()
关于我做错了什么的任何建议都会非常有帮助。
您的代码中有许多语法错误。 我想我在这里有一个工作版本:
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
以让第二个循环知道何时停止,并在外循环的每次迭代中更新。 然后内循环开始工作。 重要的是,第三次print()
语句必须被称为内环以外,但外环内。 正如您一开始所拥有的那样,它是在内循环中被调用的,以防止它在一行上打印所有内容。 通过将其移出该循环,并到达第一个循环的末尾,它仅在外循环的每次迭代中打印一次换行符,并且仅在内循环完成后将其所有数字打印到一行。
我希望这有帮助。
您不需要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))
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.