gpt4 book ai didi

python - 嵌套语句,我做错了什么?

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:01 25 4
gpt4 key购买 nike

如果我为限制输入“5”,为副本输入“3”,我希望输出为

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

这是我的代码

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()

但是这段代码的输出是

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

为什么我的“if count == limit: count = 0”似乎什么都没做?

最佳答案

让我们手动查看迭代:您从 count = 1 开始。

因此在copies 的第一次迭代中,内部循环运行了limit=5 次。每次内部迭代后,count 都会递增 1。因此,在 5 次迭代之后,count 将增加 1 5 次。所以内循环后的值将是 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

您还希望将值重置为 1 以匹配初始大小写,并使行中的第一个值为 1

关于python - 嵌套语句,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com