【问题标题】:Inner loop runs only once内循环只运行一次
【发布时间】:2014-03-03 06:02:04
【问题描述】:

我不知道问题出在哪里,但是内循环只运行一次,为什么?

代码:python 2.7

for i in range(1,11,5):
   print i
   print '#'
   for j in range(i,6):
       print j
   print '---------------'

输出:

1
#
1
2
3
4
5
---------------
6
#
---------------

需要输出::

1
#
1
2
3
4
5
---------------
6
#
6
7
8
9
10
---------------

【问题讨论】:

  • 有了这个缩进,它就不是一个内循环了:(
  • @thefourtheye 这可能不是缩进的问题,只是预期的输出错误
  • @thefourtheye 不,我的意思是即使缩进正确,代码 sn-p 仍然没有得到 OP 的预期输出。这就是为什么我猜缩进错误只是在 SO 上发布时的拼写错误。
  • @thefourtheye 我是说IndentationError 修复不是 OP 要求的;P

标签: python python-2.7 for-loop


【解决方案1】:
>>> range(1,11,5)
[1, 6]

range(1,11,5) 只在 1 和 6 之间循环。这可能是你不想要的......当你运行第二个 for 循环时,i 是 6,所以 for j in range(i,6)for j in range(6,6),所以它只运行一次。

【讨论】:

  • 他的“所需输出”表明这确实是他想要的。
【解决方案2】:

这会产生您所需的输出:

for i in range(1,11,5):
    print i
    print '#'
    for j in range (i, i+5):
        print j
    print '-------------------'

除非您使j 的两个边界都依赖于i,否则当i 大于或等于内部循环的固定上限时,内部循环将停止运行。

【讨论】:

    【解决方案3】:
    for i in range(1,11,5):
        print i
        print '#'
        for j in range(1,6): # based on your 'required output', the inner loop should run from 1 to 6.
            print j
        print '---------------'
    

    【讨论】:

      【解决方案4】:

      您的第二个循环是for j in range(i,6): 而不是for j in range(1,6):

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-06
        • 1970-01-01
        • 2018-05-02
        • 1970-01-01
        • 1970-01-01
        • 2011-11-02
        • 2013-11-28
        • 1970-01-01
        相关资源
        最近更新 更多