Как добавить два списка чисел с помощью цикла for?

#loops #append

Вопрос:

Я пытаюсь взять список list_of_numbers и определить, какие из чисел являются четными идеальными квадратами, а какие нечетными идеальными квадратами, но при запуске я не получаю никаких выходных данных. ожидаемый результат будет состоять из двух списков первый список: number_odd_squares [9, 25, 81, 121] второй список: number_even_squares [2, 16, 36, 42, 64, 100]

list_of_numbers = [2, 9, 16, 25, 36, 42, 64, 81, 100, 121]

определение find_perfect_squares(list_of_numbers):

 number_even_squares =[]
number_odd_squares = []

for i in list_of_numbers:
    if (i%2) != 0 and root = math.sqrt(i):
        number_odd_squares.append(i)
    elif (i%2) == 0 and root = math.sqrt(i):
        number_even_squares.append(i)
        
print(number_even_squares)
print(number_odd_squares)

return 
 

find_perfect_squares(list_of_numbers)

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

1. Каков ожидаемый результат? Не могли бы вы задать этот вопрос, пожалуйста?

2. отредактировал то, что у меня есть сейчас, и каков мой ожидаемый результат

Ответ №1:

В своем for цикле вы на самом деле не выполняете итерацию по массиву, вы выполняете итерацию от 0 до длины массива, которая [0, 1, 2, ...] вместо [2, 9, 16, ...] этого, поэтому посмотрите на изменение range(len(...)) детали.

Кроме того, вы никогда не используете свою i переменную, которая устанавливается в цикле. Вероятно, он предназначен для того, чтобы попасть в if/else блок, где вы проверяете 1 % 2 (что никогда не бывает равно 0 ).

Посмотрите на эти 2 ошибки, и это поможет вашей программе работать должным образом.