Я написал этот код, но я не понимаю, почему он так работает

#python #for-loop #if-statement #input #append

#питон #for-цикл #if-оператор #входные данные #добавить

Вопрос:

У меня есть код, он получает число как 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’]

Комментарии:

1. Итак, вы вводите 5 для n, но продолжаете вводить только три числа? Кроме того, отступы не в порядке, так ли это на самом деле выглядит в вашей IDE или вы перепутали форматирование при вставке? Потому что затем цикл выполняется для каждого ввода, а не после обработки всех входных данных

2. Во-первых, пожалуйста, добавьте языковой тег, во-вторых, зачем вам нужен внутренний цикл? если j<3, просто добавьте его в выходной массив,

3. привет, дорогая, Марта. Да, я хочу ввести несколько чисел, это не очень важно, я хочу, чтобы все работало так, как я сказал, чтобы найти числа меньше 3 и поместить их в список, отступы точно такие, как в моей IDE

4. привет, дорогой, @InUser Я добавил языковой тег, спасибо, что напомнил мне об этом, я хочу точно то же самое, что вы сказали, но я не могу с этим справиться и не знаю, что в этом плохого

Ответ №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. Спасибо, дорогой Виниций, но задание связано с вводом, но ты мне очень помог, и я ценю это

Ответ №2:

У вас есть микс с входными данными.

Либо вы получаете его как один входной сигнал, а затем вам нужно разделить, либо вы получаете его один за другим (n раз).

В первом варианте вам нужно разделить список, выполнить итерацию по нему и добавить, во втором варианте вам просто нужно проверить каждое число и добавить его в список, если вам не нужно n в начале

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