Первые шаги
Вывод на экран, переменные и арифметика. Это кирпичи, из которых собрано решение любого номера, поэтому тут без спешки.
- 1print: первая программа
- 2Переменные
- 3Арифметика и три главных знака
- 4Числа, строки и input
- 5Сломай код
- 6Где пригодится на ЕГЭ
print: первая программа
Программа на Python это список команд, которые выполняются сверху вниз, по одной. Первая команда, которая нужна всегда, это print: она выводит на экран то, что стоит в скобках.
print('Привет!') print(2 + 3) print('2 + 3')
Посмотри на вторую и третью строку. Без кавычек Python считает: 2 + 3 превращается в 5. В кавычках это просто текст, его выводят как есть.
В одном print можно вывести несколько вещей через запятую. Между ними Python сам поставит пробел:
print('Ответ:', 2 + 3)
Так удобно подписывать, что ты выводишь. Когда в программе пять print, без подписей легко запутаться, какое число откуда.
Переменные
Переменная это имя, под которым мы запоминаем значение. Записываем так: имя, знак =, значение.
w = 1024 # ширина картинки в пикселях h = 768 # высота print(w * h) # сколько всего пикселей
Знак = тут не значит «равно», как в математике. Он значит «положи значение справа в переменную слева». Поэтому в Python нормально написать так:
k = 0 k = k + 1 # взяли старое k, прибавили 1, положили обратно k += 1 # то же самое, только короче print(k)
Строка k = k + 1 в математике бессмыслица, а в Python это обычное дело. Именно так в №8 растёт номер слова и счётчик подходящих слов.
Имена переменных пишем латиницей, можно с цифрами и _, но не с цифры в начале: k, total, max_sum, x1. Большие и маленькие буквы различаются: x и X это две разные переменные.
Сколько секунд в одних сутках? Заведи переменные для часов, минут и секунд и перемножь.
Арифметика и три главных знака
Плюс, минус и умножение работают как обычно. Интереснее деление. В Python их три вида, и все три постоянно нужны на ЕГЭ.
| Знак | Что делает | 17 и 5 |
|---|---|---|
/ | обычное деление | 17 / 5 → 3.4 |
// | целая часть от деления | 17 // 5 → 3 |
% | остаток от деления | 17 % 5 → 2 |
** | степень | 2 ** 10 → 1024 |
print(17 / 5) print(17 // 5) print(17 % 5) print(2 ** 10)
// и % работают в паре. 17 конфет на 5 человек: каждому по 17 // 5 = 3, и 17 % 5 = 2 остаётся.
Зачем нужен остаток
С остатком очень удобно разбирать число на цифры и проверять делимость:
n = 2026 print(n % 10) # последняя цифра: 6 print(n // 10) # число без последней цифры: 202 print(n % 2) # 0, значит n чётное
Запомни эти три приёма, они встречаются в задачах на числа постоянно. Число делится на 7, если n % 7 == 0. Чётное, если n % 2 == 0.
Порядок действий
Как в математике: сначала **, потом * / // %, потом + -. Если сомневаешься, ставь скобки, лишними они не бывают.
print(2 + 3 * 4) print((2 + 3) * 4)
Обычное деление / всегда даёт дробное число, даже если делится нацело: 10 / 2 это 5.0, а не 5. Если нужно целое, бери //.
Какая последняя цифра у числа 7100?
Таймер показывает 100 000 секунд. Сколько это полных часов?
Числа, строки и input
У каждого значения в Python есть тип. Нам хватит трёх:
| Тип | Что это | Пример |
|---|---|---|
int | целое число | 5, -12, 2026 |
float | дробное число | 3.4, 5.0 |
str | строка, то есть текст | '5', 'КОТ' |
5 и '5' для Python разные вещи. С числами + складывает, со строками склеивает:
print(15 + 2) print('15' + '2') print('ab' * 3)
Превратить строку в число можно через int(...), число в строку через str(...):
print(int('15') + 2) print(str(15) + '2')
input: ввод с клавиатуры
input() ждёт, пока человек что-то напечатает, и возвращает это всегда строкой. Даже если ввели цифры. Поэтому число вводят так:
n = int(input()) # прочитали строку и сразу превратили в число print('Ты ввёл:', n) print('Вдвое больше:', n * 2)
Под кодом есть поле «Ввод». Всё, что там написано, программа получит через input(). Поменяй 5 на другое число и запусти ещё раз.
А теперь то же самое, но без int:
s = input() # тут строка '5', а не число 5 print('Ты ввёл:', s) print('Вдвое больше:', s * 2)
Вышло 55: строка '5', умноженная на 2, просто повторилась. Python не ругается, он честно сделал то, что написано. Вот почему int(input()) пишут почти всегда.
Если input() в программе несколько, каждый берёт следующую строку из поля:
a = int(input()) # первая строка поля b = int(input()) # вторая строка print('Сумма:', a + b)
На ЕГЭ input почти не нужен: данные берутся из условия или из файла. Но в учебниках и разборах он встречается, так что знать его надо.
0.1 + 0.2 в Python даёт 0.30000000000000004. Компьютер хранит дроби неточно. Поэтому, где можно, считай в целых числах (//, а не /) и не сравнивай дроби через ==.
Что выведет print('3' * 2 + '1')? Сначала подумай, потом проверь кодом.
Сломай код
Ошибаться в Python нормально. Важно уметь прочитать, что он написал. Сообщение об ошибке всегда устроено одинаково: в последней строке тип ошибки и короткое объяснение, а выше показано место, где она случилась. Читай снизу вверх.
Ниже пять частых ошибок. Запусти каждый блок, посмотри на сообщение, потом исправь.
NameError: такого имени нет
x = 5 print(X)
Python говорит, что не знает X, и даже подсказывает Did you mean: 'x'?. Большая и маленькая буквы это разные имена. Ещё NameError бывает, когда забыл кавычки вокруг текста или не написал import.
TypeError: строку с числом не сложить
print('Ответ: ' + 5)
Строку можно склеить только со строкой. Исправить можно двумя способами: print('Ответ:', 5) через запятую или print('Ответ: ' + str(5)).
SyntaxError: не закрыта скобка
print((2 + 3)
'(' was never closed: открыли две скобки, закрыли одну. SyntaxError значит, что Python вообще не понял, что написано. Чаще всего это скобка, кавычка или забытое двоеточие.
IndentationError: лишний отступ
x = 5 print(x)
В Python отступы не для красоты, они показывают, какие команды внутри if или цикла. Здесь отступ стоит просто так, и Python на него ругается. Подробно про отступы будет в теме «Условия».
ZeroDivisionError: деление на ноль
print(10 / 0)
Делить на ноль нельзя и в Python тоже. Встречается, когда делишь на переменную, а она оказалась нулём.
Получил ошибку: прочитай последнюю строку, найди номер строки в коде, посмотри на неё и на строку выше. Девять из десяти ошибок находятся так за полминуты.
Где пригодится на ЕГЭ
Эта тема нужна вообще везде, но вот где она главная:
| Номер | Что из темы |
|---|---|
| №7 | Python как калькулятор: размер картинки и звука, ** и // |
| №5 | % и // для работы с цифрами числа |
| №8 | счётчики k += 1, строки и + |
| №14 | огромные степени: 7 ** 100 Python считает точно |
| №25 | делимость через % |
Пример из №7, весь на знаниях этой темы. Картинка 640 на 480 пикселей, на пиксель 8 бит. Сколько она займёт в Кбайтах?
w = 640 h = 480 i = 8 # бит на один пиксель size = w * h * i // 8 // 1024 # биты в байты, байты в Кбайты print(size)
Ответ 300 Кбайт. Тут нет ничего, кроме переменных и деления.
Картинка 1024 на 768 пикселей, на пиксель 16 бит. Сколько Кбайт она займёт?
Код в блоках можно менять и запускать, он выполняется прямо в браузере. Ломай смело, ничего не сломается.