Python - 简单的输入程序挂在输入语句处

Python - Simple input program is hanging at input statement

我正在编写一个简单的程序,它接受 5 个数字,将它们放在一个列表中,将每个数字除以 2 并打印输出列表。

list1 = input("Type 5 numbers: ").split()
for eachElement in list1:
    list1.append(str(int(eachElement)//2))
print("final numbers are "," ".join(list1[5:]))

问题:程序在第一行输入后挂起。在终端中,它需要 5 个数字,但永远不会进入下一行。

Type 5 numbers: 56 67 84 45 78


可能是什么问题?我在许多其他程序中使用了带拆分的输入,但它有时会挂起,但大部分时间都能正常工作。

您正在遍历您的列表 并同时向其添加 ,这意味着您的列表会增长到无穷大。

观察当你在循环体内打印一些东西时会发生什么:

list1 = input("Type 5 numbers: ").split()
for eachElement in list1:
    val = str(int(eachElement)//2)
    print("Appending", val)
    list1.append(val)
print("final numbers are "," ".join(list1[5:]))

这会打印:

Type 5 numbers: 1 2 3 4 5
Appending 0
Appending 1
Appending 1
Appending 2
Appending 2
Appending 0
Appending 0
Appending 0
...

您可以通过将新号码放在不同的列表中来解决此问题,首先:

list1 = input("Type 5 numbers: ").split()
list2 = []
for eachElement in list1:
    val = str(int(eachElement)//2)
    print("Appending", val)
    list2.append(val)
list1.extend(list2)
print("final numbers are "," ".join(list1[5:]))
for eachElement in list1:
    list1.append(str(int(eachElement)//2))

循环体向list1添加了更多个元素,所以for element in ...循环永远不会结束。