С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.04.2025
Сообщений: 13

Генератор

10.05.2025, 19:58. Показов 1927. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Помогите, пожалуйста, не могу доделать задачу. ВВодятся строки, преобразуются в числа. Новый список содержит четные числа возведенные в квадрат из каждой строки таблицы и их сумму в каждой строке. если в какой-то строке нет четных чисел. нужно ее пропустить. То есть: 1, 2, 3, 4 ответ [4, 16, 6]не получается сумму ввести.

Python
1
2
a = [[int(i) ** 2 for i in input().split(',') if int(i) % 2 == 0] for _ in range(3)]
print(a)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2025, 19:58
Ответы с готовыми решениями:

Напишите генератор списка, который заполняет список данными, которые вводит пользователь. Другой генератор списка должен
Напишите генератор списка, который заполняет список данными, которые вводит пользователь. Другой...

Генератор паролей, функция генератор
import random from string import ascii_lowercase, ascii_uppercase random.seed(1) def...

Генератор цифры в слово
Работаю в django , нужно превратить число, например 34 000, в словестное выражение: тридцать четыре...

19
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
11.05.2025, 01:27
Вот, что получилось:
Python
1
2
3
4
5
6
7
8
9
10
11
12
x1 = int(input('x1 = '))
x2 = int(input('x2 = '))
for num in range(x1+(x1%2 != 0), x2+1, 2):
    print(num**2)
 
def summation(x1,x2):
    s = 0
    for i in range(x1+(x1%2 != 0), x2+1, 2):
      if i%2 == 0:
        s += i**2
    return s
print(summation(x1,x2))
Добавлено через 3 часа 26 минут
Вот более правильное решение, соответствующее условию задачи:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
m= int (input(' '))
n= int (input(' '))
def summation(even_squares1):
    s = 0
    for i in range(m):
        if i % 2 == 0:
            s += i ** 2
    return s
even_squares1 = [x**2 for x in range(m) if x % 2 == 0]
 
print(even_squares1)
print(summation(even_squares1))
def summation(even_squares2):
    s = 0
    for i in range(n):
        if i % 2 == 0:
            s += i ** 2
    return s
even_squares2 = [x**2 for x in range(n) if x % 2 == 0]
print(even_squares2)
print(summation(even_squares2))
0
0 / 0 / 0
Регистрация: 27.04.2025
Сообщений: 13
11.05.2025, 12:03  [ТС]
Я похоже плохо объяснила. Условие - вводятся строки
1, 2, 3, 4
2, 5, 6
10, 5, 9, 4
Ответ:
[[4, 16, 6], [4, 36, 8], [100, 16, 14]] Не могу вывести сумму четных чисел в строке (последнюю цифру)
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
11.05.2025, 13:28
Katrin_007, цель - сделать все это внутри генератора списков? Или необязательно?
тогда можно как-то так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def input_data():
 
    data = []
    while True:
        data_input = input("Введите числа через запятую: ")
        if data_input:
            data.append([int(x)**2 for x in data_input.split(",") if int(x) % 2 == 0])
        else:
            break
    for item in data:
        item.append(sum(item))
 
    print("Обработанные данные:", data)
 
 
if __name__ == "__main__":
    input_data()
0
0 / 0 / 0
Регистрация: 27.04.2025
Сообщений: 13
11.05.2025, 13:35  [ТС]
1, 2, 3, 4
[4, 16, 6] Да. первое число 2 в квадрате, второе - четыре в квадрате, третье - сумма 2+4 из входных данных.
Промер на одной строке.
for _ in range(3) - количество строк ввода.
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
11.05.2025, 13:52
Цитата Сообщение от Katrin_007 Посмотреть сообщение
Да.
Python
1
2
result = [[*lst, sum(lst)] for lst in [[int(i) ** 2 for i in input().split(',') if int(i) % 2 == 0] for _ in range(3)]]
    print(result)
1
Вирусоборец
 Аватар для thyrex
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
11.05.2025, 14:05
ViachaslauK,
Цитата Сообщение от Katrin_007 Посмотреть сообщение
если в какой-то строке нет четных чисел. нужно ее пропустить
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
11.05.2025, 14:15
thyrex, Серьезно? мне кажется это не сложно )
Python
1
result = [[*lst, sum(lst)] for lst in [[int(i)**2 for i in input().split(',') if int(i)%2==0] for _ in range(3)] if lst]
Но вообще тут уже перебор для однострочника) функция будет понятнее
0
Вирусоборец
 Аватар для thyrex
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
11.05.2025, 14:25
ViachaslauK, так я и не говорил про однострочник, все вопросы к автору темы
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
11.05.2025, 14:28
thyrex, так это и не лично к вам обращено, к слову.
Питон позволяет кстати такое писать вот так:
Python
1
2
3
4
5
6
7
8
    result = [
        [*lst, sum(lst)]
        for lst in [
            [int(i) ** 2 for i in input().split(',') if int(i) % 2 == 0]
            for _ in range(3)
        ]
        if lst
    ]
Тот же генератор списков, но гораздо читабельнее. Не проверял, лень, но black должен сам переформатировать так.
0
0 / 0 / 0
Регистрация: 27.04.2025
Сообщений: 13
11.05.2025, 16:30  [ТС]
1, 2, 3, 4
[4, 16, 20] по Вашему ответу так получается, а должно быть [4, 16, 6]
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
11.05.2025, 19:05
Цитата Сообщение от Katrin_007 Посмотреть сообщение
[4, 16, 20] по Вашему ответу так получается, а должно быть [4, 16, 6]
Ну е-мае))) не видите ли чтоли ошибку? Ну просуммируйте не квадраты чисел а сами числа, я невнимательно прочитал условие. Это-хоть сами сможете сделать?

Добавлено через 10 минут
так пойдет?
Python
1
2
3
4
5
    result = [
        [*(squared := [int(i)**2 for i in nums]), sum(int(i) for i in nums)]
        for nums in [[i for i in input().split(',') if int(i)%2==0] for _ in range(3)]
        if nums
    ]
Но я бы такое встретив в коде сам себя бы убил, наверное) Переоптимизация
1
0 / 0 / 0
Регистрация: 27.04.2025
Сообщений: 13
11.05.2025, 22:08  [ТС]
Выхожу с вашего форума. Злые вы. Неужели если бы я была такой крутой как вы все, я бы пришла за помощью? Нормально никто из учителей не объясняет, что сама смогу вот и счастье.
0
Вирусоборец
 Аватар для thyrex
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
11.05.2025, 23:35
Katrin_007, а зачем Вы стараетесь все впихнуть в две строки кода? Если Вам нужно все сделать попроще, то почему бы об этом написать сразу, чтобы не вводить помощников в заблуждение.
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
12.05.2025, 11:46
Цитата Сообщение от Katrin_007 Посмотреть сообщение
Выхожу с вашего форума. Злые вы. Неужели если бы я была такой крутой как вы все, я бы пришла за помощью? Нормально никто из учителей не объясняет, что сама смогу вот и счастье.
Я не заметил в ваших постах просьб обьяснить, вижу просьбу сделать за вас. Вам показываешь решение но предлагаешь немного подумать и допилить - вы обижаетесь. Поддерживаю ваше решение уйти. Я, когда учился, старался сам решать задачи а не спрашивать решение. Тем более все это база. Для начала почитайте Кнута или Рамальо, выучите базу.
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
12.05.2025, 11:53
В принципе, если количество вводимых строк вводиться с клавиатуры, наверное даже лучше:
Python
1
2
3
4
5
6
7
n= int (input(' '))
result = [
        [*(squared := [int(i)**2 for i in nums]), sum(int(i) for i in nums)]
        for nums in [[i for i in input().split(',') if int(i)%2==0] for _ in range(n)]
        if nums
    ]
print(result)
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
12.05.2025, 12:17
Цитата Сообщение от isaak Посмотреть сообщение
наверное даже лучше:
Это уже логичные улучшалки. По начальному условию работает с тремя строками вроде как
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
12.05.2025, 12:51
ViachaslauK, а можете написать функцию подробно суммирования, четных элементов списка? О то не совсем понятно как идет суммирование. Заранее благодарю.
0
 Аватар для ViachaslauK
124 / 183 / 16
Регистрация: 08.10.2024
Сообщений: 664
12.05.2025, 13:13
Цитата Сообщение от isaak Посмотреть сообщение
можете написать функцию подробно суммирования, четных элементов списка? О то не совсем понятно как идет суммирование. Заранее благодарю.
Не очень понял вопрос, что написать? Тут же и происхожит суммирование...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
result = [
    # For each filtered list of even numbers:
    # 1. Create a list of squares using the walrus operator to store it in 'squared'
    # 2. Unpack the squares list with * operator
    # 3. Add the sum of the original numbers at the end
    [*(squared := [int(i) ** 2 for i in nums]), sum(int(i) for i in nums)]
    
    # This part generates 3 lists by:
    # 1. Prompting user for input 3 times (range(3))
    # 2. Splitting each input by commas
    # 3. Filtering to keep only even numbers
    for nums in [[i for i in input(f"Enter list {_}: ").split(",") if int(i) % 2 == 0] for _ in range(3)]
    
    # Only process non-empty lists
    if nums
]
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
12.05.2025, 14:33
Да все верно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2025, 14:33
Помогаю со студенческими работами здесь

Генератор аббревиатур
Помогите, пожалуйста, в решении следующей задачи Нужно создать приложение, которое генерирует...

Генератор аббревиатур 2. Как брать слова из текстового файла?
Задача с генератором аббревиатур, которая обсуждалась уже в этом форуме, только вот слова должны...

Генератор простых чисел
Помогите плз исправить генератор простых чисел. Сейчас выдаёт следующее: 2,3,2,2,2,2,2 вместо...

Как ввести элементы массива через генератор псевдослучайных чисел?
def get_array(): def check(origin): try: for value in origin.strip().split(' '): ...

Генератор псевдослучайных чисел
Модифицируйте программу так, чтобы элементы массива не вводились с клавиатуры, а генерировались...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru