我想做一个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+16
或i+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)