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

时间:2021-01-04 19:44:38

标签: python for-loop if-statement input append

我有一个代码,它获取一个数字作为 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']

2 个答案:

答案 0 :(得分: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)

现在您可以实现获取数字并提高回报的函数了。

答案 1 :(得分:0)

您已与输入混合。

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

在第一个选项中,您需要拆分列表并对其进行迭代并附加,在第二个选项中,您只需要检查每个数字并附加它 在列表情况下,您不需要开头的 n

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