[英]How to insert an if condition in a for loop in python
我想做一个for循环,在这里通过简单的打印function来解释。 我想更改固定值后打印的数据。 让我们看看这段代码:
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
我怎样才能让我在 function 中的i
变成这样的东西? Itried 以下但它给出了另一件事:
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)
刚刚添加了 if 条件来检测
你可以这样做:
for i in range(7):
print(i, i + 15 + i // 3, i + 1)
或者,如果您愿意,可以将此增量保存到变量中。
inc = 0
for i in range(7):
if i > 0 and i % 3 == 0:
inc += 1
print(i, i + 15 + inc, i + 1)
我认为第二种变体更pythonic的方式:
inc = 0
for i in range(7):
if i > 0:
inc += i % 3 == 0
print(i, i + 15 + inc, i + 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.