【问题标题】:While loop inside While loop in python?Python中的While循环内的While循环?
【发布时间】:2018-05-01 22:34:54
【问题描述】:

我是python初学者。

第二个循环只运行一次,只运行一次,但是当轮到第一个循环和e = e+1 - python 跳过第二个循环!

为什么?

print 订单只能使用一次。

 items  = [['.', '.', '.', '.', '.', '.'],
    ['.', 'O', 'O', '.', '.', '.'],
    ['O', 'O', 'O', 'O', '.', '.'],
    ['O', 'O', 'O', 'O', 'O', '.'],
    ['.', 'O', 'O', 'O', 'O', 'O'],
    ['O', 'O', 'O', 'O', 'O', '.'],
    ['O', 'O', 'O', 'O', '.', '.'],
    ['.', 'O', 'O', '.', '.', '.'],
    ['.', '.', '.', '.', '.', '.']]
i=0
e=0
while e < 6 :
    while i < 9 :  #python run this loop only once, and never come back when e=e+1
          print items[i][e]
          i=i+1
    e=e+1    

【问题讨论】:

  • 自己调试,将打印更改为仅打印 foo 并在外部添加打印,同时打印 bar, foo 打印 9 次, bar 打印 6 次后完成。这不是预期的行为吗
  • 我会试试的,因为我以前没用过'print foo',我用的是python 2.7,谢谢你的信息:)
  • 它没有做任何特别的事情我只是使用它,所以我可以看到循环是如何工作的

标签: python-2.7


【解决方案1】:

“i”循环运行一次后,i 将被设置为 9,并保持为 9,直到您重置。 因此您可以尝试在 e = e+1 之后将其设置为 0。 您可以尝试的一种有用技术是打印 'e' 和 'i' 的值以查看循环出错的位置

items  = [['.', '.', '.', '.', '.', '.'],
    ['.', 'O', 'O', '.', '.', '.'],
    ['O', 'O', 'O', 'O', '.', '.'],
    ['O', 'O', 'O', 'O', 'O', '.'],
    ['.', 'O', 'O', 'O', 'O', 'O'],
    ['O', 'O', 'O', 'O', 'O', '.'],
    ['O', 'O', 'O', 'O', '.', '.'],
    ['.', 'O', 'O', '.', '.', '.'],
    ['.', '.', '.', '.', '.', '.']]
i=0
e=0
while e <6 :
    while i <9 : 
          print items[i][e]
          print 'loop: i'+str(i)+'e'+str(e)
          i=i+1
    e=e+1
    i=0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-02
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2011-06-19
    • 1970-01-01
    • 2018-11-05
    相关资源
    最近更新 更多