我写了这段代码,但我不明白为什么它会这样工作

I have writen this code but I don't understand why it works like this

我有一个代码,它得到一个数字 n 作为你想要给出的数字的数量,然后我有另一个输入是我们想要给代码的数字,我希望我的代码找到这些数字低于 3 并产生输出,但它工作起来很奇怪!所以帮助我的人,提前多谢

y = []
n = int(input())
for i in range(1,n+1):
    x = input()
    x = x.split()
    
    for j in x:
        j = int(j)
        if j < 3:
            for j in x:
                y.append(j)
                break
            print(y)

我的输入是这样的: 5个 1 2 3

我的输出应该是: 1 2

但它就像: ['1','1']

您可以试试这个代码:

y = []
n = 5

x = "5 1 2 3 2"
x = x.split()
    
for j in x:  # for each value in x
    j = int(j)
    if j < 3:  # if < 3, append to list
       y.append(j)

print(y)

现在您可以实现获取数字的功能并改进return。

你已经与输入混合了。

要么您将其作为一个输入接收,然后需要拆分,要么您一个接一个地接收(n 次)。

在第一个选项中,您需要拆分列表并遍历它并追加,在第二个选项中,您只需要检查每个数字并追加它 在列表的情况下,你不需要开头的 n

y = []
x = input()
x = x.split()
for j in x:
    j = int(j)
    if j < 3:
        y.append(j)
print(y)