如何在python中的for循环中插入if条件



我想做一个for循环,并在这里通过简单的打印函数进行解释。我想更改固定值后打印的数据。让我们考虑一下这个代码:

for i in range (7):
print (i, i+15, i+1)

它给了我:

0 15 1
1 16 2
2 17 3
3 18 4
4 19 5
5 20 6
6 21 7

但我想在每次3迭代后将1添加到第二行的打印值中。我的意思是,从第一次到第三次迭代,我想要与上面打印的结果相同的结果。但从第三到第六,我想将1添加到i+15(打印i+16而不是i+15(。在第六行之后,我想再次将1添加到i+16(打印i+17而不是i+16i+15(。我的意思是我想要这个:

0 15 1
1 16 2
2 17 3
3 19 4
4 20 5
5 21 6
6 23 7

如何使我的i在函数中成为这样的东西?它尝试了以下内容,但它给出了另一个东西:

for i in range (7):
if i % 3 == 0:
print (i, i+15+1, i+1)
else:
print (i, i+15, i+1)

我非常感谢任何事先的帮助。

试试这个:

for i in range (7):
print (i, i//3+i+15, i+1)
0 15 1
1 16 2
2 17 3
3 19 4
4 20 5
5 21 6
6 23 7

对于不是从0开始的范围,为了保持相同的逻辑(每3次迭代递增(,可以执行以下操作:

for i in range (4,15):
print (i, (i-4)//3+i+15, i+1)
4 19 5
5 20 6
6 21 7
7 23 8
8 24 9
9 25 10
10 27 11
11 28 12
12 29 13
13 31 14
14 32 15
print("Hello world")
starting = 14;
for i in range (7):

if(i %3==0):
starting=starting+1
print (i, i+starting, i+1)

刚刚添加了检测的条件

你可以这样做smth:

for i in range(7):
print(i, i + 15 + i // 3, i + 1)

或者,如果需要,可以将这个delta保存到变量中。

inc = 0
for i in range(7):
if i > 0 and i % 3 == 0:
inc += 1
print(i, i + 15 + inc, i + 1)

我认为第二种变体更像蟒蛇的方式:

inc = 0
for i in range(7):
if i > 0:
inc += i % 3 == 0
print(i, i + 15 + inc, i + 1)

最新更新