【问题标题】:how to loop step and count in python如何在python中循环步数和计数
【发布时间】:2022-08-14 13:17:28
【问题描述】:

当条件小于 1000 时,我希望能够在 2 的每一步中数 5 例如:

i = 0
j = 2000
k = 3000
while i < 1000:
    i += 2
    for x in range(5):
        print(i)
    j += 2
    for x in range(5):
        print(j)
    k += 2
    for x in range(5):
        print(k)

但输出只打印 i, j, k 5 次

output:::
2
2
2
2
2
2002
2002
2002
2002
2002
3002
3002
3002
3002
3002
4
4
4

我希望结果是: ......

2
3
4
5
6
2002
2003
2004
2005
2006
3002
3003
3004
3005
3006
8      #please note here that 8(i) continue by 2 steps from 6
9
10
etc..........

我想知道一种更简单和pythonic的方法来做到这一点。谢谢

  • 有无数种方法可以得到你想要的输出,但我不明白你在做什么
  • 有无数种剥猫皮的方法,我想知道使用timeit 哪个答案最有效
  • 我想从 0 数到 1000,但每计数 5 就跳 2 步。例如2、3、4、5、6、8、9、10、11、12、14、15、16、17、18……

标签: python


【解决方案1】:

这是您尝试做的一件奇怪的事情,但这是我修改后的版本,其中包含您想要的输出:

a, b, c = 0, 2000, 3000
for i in range(2, 1000, 6):
    for x in range(5):
        print(a+i+x)
    for x in range(5):
        print(b+i+x)
    for x in range(5):
        print(c+i+x)

【讨论】:

  • 您可以在 for 循环中使用 range 来删除定义和步进 i 自己:for i in range(2,1000,6)
【解决方案2】:

因此,您正在尝试获得数字进展,这是一种方法:

progression = [a for a in range(2,7)] \
            + [b for b in range(2002,2007)] \
            + [c for c in range(3002,3007)]
for i in range(0, 1000, 6):
    for p in progression:
        print(p + i)

2
3
4
5
6
2002
2003
2004
2005
2006
3002
3003
3004
3005
3006
8
9
10
11
12
2008
2009
2010
2011
2012
3008
3009
3010
3011
3012
14
15
16
17
18
2014
2015
2016
2017
2018
3014
3015
3016
3017
3018
20
21
22
23
24
2020
2021
2022
2023
2024
3020
3021
3022
3023
3024
26
...<truncated>

【讨论】:

    【解决方案3】:

    我真的不明白你想做什么,但这会输出你想要的:

    i = 0
    j = 2000
    k = 3000
    while i < 1000:
        i += 2
        for x in range(5):
            print(i+x)
        j += 2
        for x in range(5):
            print(j+x)
        k += 2
        for x in range(5):
            print(k+x)
        i += 4
    

    【讨论】:

    • 我想从 (i,j,k) 0 计数到 1000,但每计数 5 就跳 2 步。例如2、3、4、5、6、8、9、10、11、12、14、15、16、17、18……
    【解决方案4】:

    您可以通过其他方式做到这一点,但这是我的方法

    j = 2000
    k = 3000
    for i in range(2, 1000, 6):
        for x in range(5):
            print(i+x)
        j += 2
        for x in range(5):
            print(j+x)
        k += 2
        for x in range(5):
            print(k+x)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 2016-05-18
      • 2021-01-01
      • 1970-01-01
      相关资源
      最近更新 更多