Найти в Дзене
Python для школьников

Задание 16 из ОГЭ по информатике: в 2 строки благодаря списочным выражениям

Привет! Очень многие 9-классники пропускают последнее задание из ОГЭ, потому что оно кажется им очень сложным. На самом деле это не так! Сегодня я покажу как решать 16 задание из огэ с применением списочных выражений в питоне. Списочные выражения (или генераторы списков) - это удобный и мощный
инструмент в языке программирования Python, позволяющий создавать списки с помощью компактного синтаксиса. Моржовый оператор (:=) позволяет создавать переменные прямо внутри логического выражения. В данном примере name сохраняется сразу при вводе и используется дальше для проверки длины. Без моржового оператора код бы выглядел так: Но еще удобнее его применять в циклах: Тот же пример, но без моржового оператора: Разберемся, как применить списочные выражения и моржовый оператор в 16 задании ОГЭ по информатике. Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 5. Программа получает на вход количество чисел в последовательности, а затем сами
Оглавление

Привет! Очень многие 9-классники пропускают последнее задание из ОГЭ, потому что оно кажется им очень сложным. На самом деле это не так! Сегодня я покажу как решать 16 задание из огэ с применением списочных выражений в питоне.

Списочные выражения

Списочные выражения (или генераторы списков) - это удобный и мощный
инструмент в языке программирования Python, позволяющий создавать списки с помощью компактного синтаксиса.

Синтаксис списочных выражений

Моржовый оператор в Python

Моржовый оператор (:=) позволяет создавать переменные прямо внутри логического выражения.

-2

В данном примере name сохраняется сразу при вводе и используется дальше для проверки длины.

Без моржового оператора код бы выглядел так:

-3

Но еще удобнее его применять в циклах:

-4

Тот же пример, но без моржового оператора:

-5

Разберемся, как применить списочные выражения и моржовый оператор в 16 задании ОГЭ по информатике.

Поиск максимума и минимума

Задача 1.

Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 5. Программа получает на вход количество чисел в последовательности, а затем сами числа. Программа должна вывести одно число  - максимальное число, кратное 5.

-6

Решение.

-7

1. Вначале мы просим пользователя ввести количество чисел и запускаем цикл:
for _ in range(int(input())
2. Считываем каждое введенное число и присваиваем его переменной num:
num := int(input())
3. После того как "захватили" num, проверяем что num кратно 5, и если это так, num добавляется в список sp.

4. С помощью функции max вычисляем и выводим максимум получившегося списка sp.

Задача 2.

Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, кратное 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. Программа должна вывести одно число  - минимальное число, кратное 3.

-8

Решение.

-9

Аналогично предыдущей задаче отбираем числа кратные 3 и вычисляем минимум.

Задача 3.

Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. Программа должна вывести одно число  - максимальное число, оканчивающееся на 3.

-10

Решение.

-11

Применим условие num % 10 == 3 для проверки последней цифры числа и вычислим максимум из получившегося списка.

Сумма и количество чисел

Задача 4.

Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. Программа должна вывести одно число  - количество чисел, кратных 4.

-12

Решение.

-13

В данном примере нас интересует количество чисел, и, т.к. список содержит только нужные значения, вызовем функцию len для вывода результата.

Задача 5.

Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, оканчивающихся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. Программа должна вывести одно число  - сумму чисел, оканчивающихся на 4.

-14

Решение.

-15

Аналогично применим функцию sum к получившемуся списку.

Проверка окончания ввода

Задача 3.

Напишите программу, которая в последовательности целых чисел определяет сумму двух наибольших и сумму двух наименьших. Программа должна вывести две этих суммы в указанном порядке. Программа получает на вход целые числа, количество введенных чисел не известно, последовательность чисел заканчивается числом 0 (0  - признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введенные числа по модулю не превышают 30 000.

Решение.

Так как мы заранее не знаем, сколько элементов в списке, воспользуемся циклом While. Наполним список, а уже потом отфильтруем нужные значения и сделаем расчет суммы.

-16

Строка 2. Ввод чисел до тех пор, пока не будет введён 0.

Строка 3. Добавление числа в список sp.

Строка 4. Суммируем только те числа, которые кратны 8 и оканчиваются на 6.

Надеюсь, данная статья была вам полезной. Если нужно что-то еще разобрать, пишите в комментариях :)