Top.Mail.Ru

Фишки Python

183 ~5 мин
  • ЕГЭ
  • 11 класс

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

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

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

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

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

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

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

  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().

Подготовка к экзаменам в 100балльном репетиторе

Матрица

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 :

# тело цикла

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-строк можно переводить числа из 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балльном репетиторе

Похожие статьи

С нами ты получишь высокие баллы на ЕГЭ и ОГЭ

№ 1 по стобалльникам
№ 1 по стобалльникам

Мы выпускаем больше всего стобалльников в России (в 2025 году каждый 7-й - наш выпускник)

430k+ учеников поступили в вузы мечты 430k+

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

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

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

Мы знаем, как забрать максимум на экзамене

Мы знаем, как забрать максимум на экзамене

Отправим стратегию подготовки к экзаменам на бесплатной консультации

  • Оценим текущий уровень знаний
  • Подскажем, с чего начать
  • Дадим понятный план действий
  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс