为什么我的for循环和if语句在我的机器上不起作用?

时间:2018-11-20 06:47:52

标签: python

我遇到一个问题,我的for循环只应该运行一次,而应该循环两次。但是,这似乎仅在我的计算机上发生。

当我在trinket中运行以下代码时:

listOne = ['rat', 'hat', 'hat']

listTwo = []

while True:

  move = input("enter command: ")

  for i in listOne:
    if i == move:
      listTwo.append(i)
      listOne.remove(i)
  print(listOne)
  print(listTwo)

我得到:

enter command:  hat
['rat']
['hat', 'hat']

我想要的是什么。但是,当我在终端中运行完全相同的代码时,for循环仅运行一次,我得到:

enter command: hat
['rat', 'hat']
['hat']

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

您的代码缩进对我来说很奇怪。应该是这样的:

listOne = ['rat', 'hat', 'hat']
listTwo = []

while True:
    move = input("enter command: ")

    for i in listOne:
        if i == move:
            listTwo.append(i)
           # listOne.remove(i)
        print(listOne)
        print(listTwo)

这将打印如下:

mayankp@mayank:~/$ python3 t.py 
enter command: hat
['rat', 'hat', 'hat']
[]
['rat', 'hat', 'hat']
['hat']
['rat', 'hat', 'hat']
['hat', 'hat']

由于要从ListOne中删除项目,因此循环不会继续进行。因此,将其注释掉。 让我知道这是否有效。