Top.Mail.Ru

В этой статье разберём несколько полезных конструкций Python, которые часто встречаются в заданиях ЕГЭ по информатике и помогают писать более короткий и понятный код. Посмотрим, как работают глобальные и локальные переменные, как удобно хранить данные в матрицах, зачем нужна конструкция for else, а также как использовать функции all(), any() и f-строки.

Термины, которые будем использовать: глобальная переменная, локальная переменная, матрица, f-строка.

Глобальные и локальные переменные

Переменные в Python делятся на два типа в зависимости от того, где они созданы.

Локальные переменные — это переменные, которые существуют только внутри определённого блока кода.

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

ПризнакЛокальная переменнаяГлобальная переменная
Где создаётсяВнутри функцииВ основном коде, вне функций
Где виднаТолько внутри своей функцииВо всей программе (во всех функциях)
Время жизниСоздаётся при вызове функции, уничтожается при её завершенииСуществует всё время работы программы
Как изменить из функцииИзменяется напрямуюПередать как аргумент, вернуть результат

Действия со списками

  1. Списки можно складывать.

    Пример:

    a = [5]
    a += [2, 3]
    print(a) #выводит [5, 2, 3]

  2. extend() добавляет элементы одного списка в конец другого.
  3. reverse() изменяет порядок элементов списка на обратный.

Создание списка в одну строку

map — функция, возвращающая ссылку на map object. Она принимает в качестве параметров два аргумента: имя функции, которая применяется ко второму аргументу, и итерируемый объект, к элементам которого применяется функция.

list превращает итератор в список (если от строки, то список символов, если с map, то список цифр).

Тогда:
s = ‘1 2 3 4 5’
a = list(map(int, s.split())) #создаём строку s, внутри разбиваем по пробелам и создаём массив (с помощью .split()). Чтобы каждый элемент стал числом, записываем всё в map, применяя int ко всем элементам. Получается последовательность чисел, но это ещё не список, а объект map. Поэтому, чтобы получить список, оборачиваем результат в list().

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

Матрица

Матрица — это прямоугольная таблица, которая используется для организации и обработки данных. В Python матрицы обычно представляют в виде списка списков (список, где каждый элемент является списком).

matrix = [[1, 2, 3], [5, 6, 7]]

В этом примере:
matrix — это список списков, матрица.
matrix[0] — первая строка матрицы: [1, 2, 3].
matrix[1] — вторая строка матрицы: [5, 6, 7].
matrix[0][0] — элемент на первой строке в первом столбце: 1.
matrix[1][2] — элемент на второй строке в третьем столбце: 7.

Как выводить элементы внутри матрицы

Элементы матрицы удобно выводить с помощью вложенного цикла: внешний цикл проходит по строкам (внешнему списку), а вложенный — по элементам внутри каждой строки.

Например:

a = [[1,2,3], [5,6,7]]

for i in range(len(a)):

for j in range(len(a[i])):

print(a[i][j])

Также матрицу можно создавать по входным данным согласно её размерности:

n = int(input())

m = int(input())

b = [[i + j for j in range(m)] for i in range(n)]

print(b)

Третья строка создаёт матрицу (список списков) b с использованием генератора списков. Рассмотрим его.

  1. Внешний цикл for i in range(n) перебирает n раз, где n — количество строк в матрице. В нашем случае n = 10, значит получится 10 строк.
  2. Внутренний цикл for j in range(m) выполняется для каждого значения i из внешнего цикла и перебирает m раз. В нашем случае m = 5, значит будет 5 столбцов.
  3. i + j — для каждого значения i (номер строки) и j (номер столбца) вычисляется сумма i + j, и это значение становится элементом матрицы.

Тогда:

[i + j for j in range(m)]: создаёт строку матрицы, где каждый элемент — сумма индекса строки и индекса столбца.

[[i + j for j in range(m)] for i in range(n)]: формирует всю матрицу b из созданных строк.

В результате выведется:

[[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9], [6, 7, 8, 9, 10], [7, 8, 9, 10, 11], [8, 9, 10, 11, 12], [9, 10, 11, 12, 13]]

Конструкция for else

Конструкция for…else — это способ выполнить блок кода else после завершения цикла for, но только при условии, что цикл завершился естественным образом, то есть не был прерван оператором break.

Структура

for :

# тело цикла

if :

break # прерываем цикл при определённом условии
else:

# эта часть выполнится, если цикл не будет прерван

Функции all и any

Обе эти функции возвращают значение True или False в зависимости от того, какие значения содержатся в итерируемом объекте.

all() возвращает True, если все элементы в итерируемом объекте истинны (или если итерируемый объект пустой). Она возвращает False, если хотя бы один элемент является ложным (похоже на and).

any() возвращает True, если хотя бы один элемент в итерируемом объекте истинный. Она возвращает False, если все элементы являются ложными (похоже на or).

Пример:

a = [2,3,6,8,10]
print(all(x % 2 == 0 for x in a)) #выведет False, так как есть нечётное число 3.

print(any(x % 2 == 1 for x in a)) #выведет True, так как есть чётные числа.

Что такое f-строка

F-строка — это «умная» строка, которая сама подставляет значения переменных и выполняет вычисления внутри себя.

Представь, что обычная строка — это просто текст в блокноте, а f-строка — это живой документ, который автоматически обновляет все числа и имена.

Фигурные скобки {} — это окошко в строку, через которое ты можешь:

  • вставить значение переменной,
  • выполнить вычисление,
  • вызвать функцию.

Также с помощью f-строк можно переводить числа из 10 сс в 2 сс, 8 сс и 16 сс:

a = 100

print(f»Число {a} в двоичной сс = {a:b}\n»

f»Число {a} в восьмеричной сс = {a:o}\n»

f»Число {a} в шестнадцатеричной сс = {a:x}\n»)

Заключение

В этой статье мы разобрали несколько приёмов Python, которые регулярно встречаются в заданиях ЕГЭ по информатике: работу с переменными, списками и матрицами, конструкцию for else, функции all() и any(), а также f-строки и базовые шаблоны генерации данных.

Эти инструменты не требуют сложного синтаксиса, но сильно упрощают решение задач и помогают писать более короткий и читаемый код. Важно не просто запомнить конструкции, а понимать, как они работают: тогда их легче применять в нестандартных заданиях.

Практика

Задание 1

Определи, сколько символов * выведет эта процедура при вызове F(35):

def F( n ):

print(’*’)

if n >= 1:

print(’*’)

F(n-1)

F(n-2)

print(’*’)

В этом задании нужно посчитать количество ‘*’. Мы бы могли создать счётчик, но при каждом новом вызове функции (например F(5) и F(7)) он будет обнуляться, и подсчёт начнётся заново. Так мы никогда не получим итоговую сумму. Поэтому мы вводим глобальную переменную, которая хранит в себе информацию о количестве всех звёздочек, полученных при вызове функций.

Ответ: 96631265.

Задание 2

Найти минимальное число от 1000 до 1000000, чтобы оно делилось на все числа от 2 до 15 включительно.

for i in range(10**3, 10**6):

for j in range(2, 16):

if i % j != 0: # если число i не делится на хотя бы одно число от 2 до 15, то прерываем цикл и переходим на следующее значение

break

else:

# в ином случае выводим i и прекращаем работу

print(i)

break

Ответ: 360360.

Задание 3

Создай визитку с помощью f-строк.

name = «Алексей»

job = «разработчик»

experience = 3

salary = 150000

# Напиши код с помощью f-строк, который выведет:
# ======= ВИЗИТКА =======
# Имя: Алексей
# Должность: разработчик
# Опыт: 3 года
# Зарплата: 150000 руб.
# =======================

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

В 100б ты пробьёшь свой
максимум на экзаменах

наши лучшие курсы

Выбери подходящий курс и предмет, чтобы прокачаться и сдать ОГЭ на «5», а ЕГЭ на 80+ баллов

Выбрать курс

бесплатные материалы

Курсы, вебы, чек-листы — всё за 0 ₽

Забрать за 0 ₽

Интенсив по поступлению

Запишись на интенсив по поступлению, чтобы
взять из ЕГЭ максимум и попасть в вуз мечты

Записаться
В 100балльном репетиторе ты пробьёшь свой максимум на экзаменах

Преимущества подготовки
в 100балльном

10+
лет средний опыт наших преподавателей

18
выпускников сдали ЕГЭ
на 200 из 200 в 2024 году

300k+
учеников поступили в вуз мечты с нашей помощью 

14%
стобалльников России — наши выпускники

2 347
выпускника сдали ЕГЭ на 100 баллов

Преимущества подготовки в 100балльном

Запишись
на бесплатный
вводный урок

Познакомим с преподавателями и платформой

Расскажем про учёбу

Поможем поставить цель

  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс
Запись на вводный урок