如果我为限制输入'5'而副本输入'3',我希望输出为
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
这是我的代码
limit = int(input("Limit: ")
copies = int(input("Copies: ")
count = 1
for i in range(copies):
for j in range(limit):
print(count, end= " ")
count += 1
if count == limit: count = 0
print()
Run Code Online (Sandbox Code Playgroud)
但是这段代码的输出是
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)
为什么我的"if count == limit:count = 0"似乎没有做任何事情?
让我们手动看一下迭代:你先来看看count = 1.
所以在第一次迭代中copies,内部循环运行了limit=5一段时间.在每次内部迭代之后,count增加1.因此,在5次迭代之后,count将增加五次.所以内循环之后的值将是6.
此时,检查是否count等于值limit.所以你检查是否6等于5哪个显然不是真的.因此,变量不会重置,下一个外部迭代会运行.
由于您永远不会减少值count,因此检查永远不会变为真,因此count将不断增加而不会被重置.
要解决此问题,只需删除检查,然后重置,count无论其值如何.由于您始终运行内循环limit次数,因此您将始终知道增加的频率count,因此没有理由检查:
for i in range(copies):
for i in range(limit):
print(count, end= " ")
count += 1
count = 1
Run Code Online (Sandbox Code Playgroud)
您还希望将值重置1为与初始大小写匹配,以便将行中的第一个值设置为1.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |