На этом занятии мы разберём ключевые конструкции языка Python: переменные и присваивание, числовые и текстовые типы данных, арифметику и булеву логику, работу со строками и срезами, ввод-вывод, а также условный оператор и ветвление кода. Но главная цель урока не в том, чтобы просто прочитать определения, а в том, чтобы сразу превратить их в рабочие мини-программы.
Что ты сделаешь на практике: напишешь код с переменными и вычислениями, обработаешь текст, запустишь программы с input(), проверишь условия if/elif/else и соберёшь несколько маленьких, но жизненных сценариев: приветствие пользователя, определение знака числа, расчёт цены и проверку доступа.
Как работать с уроком: короткий блок теории → конкретный пример → самостоятельное задание в textarea → запуск и проверка. Такой ритм помогает начинающему разработчику не «застревать» в абстрактных формулировках, а сразу видеть смысл конструкции в коде.
Python - универсальный язык высокого уровня с динамической типизацией. В нём не нужно объявлять тип переменной заранее: интерпретатор определяет его по присваиваемому значению. Это ускоряет написание кода и эксперименты.
Переменная в Python - это имя, связанное с объектом в памяти. Когда мы пишем x = 5, мы не «создаём ящик с числом», а даём имя объекту (целому числу 5). Другое присваивание может связать то же имя с другим объектом.
Присваивание выполняется знаком =. Слева — имя переменной, справа — выражение (значение, результат вызова функции, другая переменная). Имя должно начинаться с буквы или подчёркивания и может содержать буквы, цифры и подчёркивание.
После присваивания имя можно использовать в выражениях и передавать в функции. Один оператор — одно присваивание; несколько переменных в одной строке (например a = b = 0) тоже допустимы.
Практический пример: сохраняем данные и выводим их — так переменные связывают ввод и вывод.
В Python всё является объектом: числа, строки, списки, функции, модули. У каждого объекта есть тип (класс), идентичность (id) и значение. Переменная хранит ссылку на объект, а не копию данных.
Функция type(объект) возвращает тип; id(объект) - уникальный идентификатор в памяти. Это полезно при отладке и при изучении того, как переменные связаны с объектами.
Тип int - целые числа любой величины (ограничены только памятью). Тип float - числа с плавающей запятой для дробей и вещественных значений. Литералы: 42, -7, 3.14, 2e-3.
Целочисленное деление: //; остаток от деления: %; степень: **. Обычное деление / в Python 3 всегда возвращает float, даже при делении целых (например 4 / 2 даёт 2.0).
Операторы: +, -, *, /, //, %, **. Приоритет как в математике: сначала скобки и степень, затем умножение и деление, затем сложение и вычитание. Операторы можно комбинировать с присваиванием: a += 1.
Практический пример: посчитать сумму покупки (цена × количество) и остаток от деления (например, для проверки чётности).
Тип bool имеет два значения: True и False (с большой буквы). Они являются подтипом целых: True ведёт себя как 1, False как 0 в арифметике, но для условий важно именно логическое значение.
Результаты сравнений (==, !=, <, >, <=, >=) и проверки вхождения (in) имеют тип bool.
Оператор and — логическое И: истина только когда оба операнда истинны. or — логическое ИЛИ: истина, если хотя бы один истинен. not — отрицание. Короткое замыкание: если по первому аргументу результат уже ясен, второй не вычисляется.
Практический пример: проверка диапазона — «возраст от 18 до 65»: age >= 18 and age <= 65.
Строка (str) - последовательность символов. Литералы задаются в одинарных или двойных кавычках: "привет", 'мир'. Многострочные строки - в тройных кавычках """ или '''. Строки неизменяемы: любая операция, «меняющая» строку, создаёт новую.
К любому символу строки можно обратиться по индексу в квадратных скобках. Индексация с нуля: s[0] - первый символ, s[1] - второй. Отрицательный индекс считает с конца: s[-1] - последний символ, s[-2] - предпоследний.
Срез (slice) - это подпоследовательность символов строки, задаваемая диапазоном индексов. Результат - новая строка.
Срез записывается как s[начало:конец:шаг]. Начало включается, конец не включается. Если начало или конец опущены - берётся начало или конец строки. Шаг по умолчанию 1; отрицательный шаг - обход в обратном порядке.
Оператор + объединяет строки (конкатенация). Оператор * с целым числом повторяет строку: "ab" * 3 даёт "ababab". Проверка вхождения: "под" in "подстрока" возвращает True.
Строки нельзя складывать с числами без явного преобразования: нужно str(число) или f"результат: {x}" в f-строках.
У строк есть встроенные методы - функции, вызываемые через точку: s.метод(). Они не меняют исходную строку, а возвращают новую. Ниже - описание и примеры основных методов.
.upper() возвращает строку в верхнем регистре; .lower() - в нижнем. Исходная строка не меняется.
.strip() удаляет пробелы и переводы строк с обоих концов строки. На практике: пользователь часто случайно ставит пробелы — без strip() строка " Анна " не равна "Анна".
.replace(old, new) возвращает строку, в которой все вхождения подстроки old заменены на new. Удобно для нормализации текста или замены разделителей.
.split(разделитель) разбивает строку на список подстрок по разделителю. Без аргументов делит по пробелам (последовательности пробелов схлопываются). На практике: разбор ввода «фамилия имя» или данных в формате "a,b,c".
.find(подстрока) возвращает индекс первого вхождения или -1. .startswith(подстрока) и .endswith(подстрока) возвращают True или False.
print(значение1, значение2, ...) выводит аргументы в консоль через пробел; по умолчанию завершает вывод переводом строки. Параметры sep и end позволяют изменить разделитель и окончание строки.
input(подсказка) выводит подсказку, читает ввод пользователя до Enter и возвращает введённую строку. Число из ввода получают так: n = int(input("Введите число: ")).
Практический пример — приветствие: читаем имя и выводим фразу. Для подстановки переменной в строку используем f-строку: перед кавычками пишем f, в строке — {переменная}.
Условный оператор if позволяет выполнять блок кода только при истинности условия. Синтаксис: if условие:, после двоеточия - блок с отступом. Блок может содержать несколько строк; отступ (обычно 4 пробела) обязателен - по нему Python понимает границы блока.
Условие - любое выражение, дающее bool или значение, интерпретируемое как истина/ложь (число 0, пустая строка - ложь).
Дополнительные ветки задаются elif условие: и необязательной финальной else:. Выполняется первая ветка, условие которой истинно; если ни одно не подошло - блок else. Все блоки выделяются отступами одного уровня.
Внутри блока if могут быть другие if, циклы, присваивания - любые инструкции. Вложенный блок имеет больший отступ (например ещё 4 пробела). Важно соблюдать единообразие отступов в рамках одного блока: только пробелы или только табуляция.
Ошибка отступов (IndentationError) - одна из частых причин сбоя при запуске. Редактор с подсветкой Python помогает видеть уровни вложенности.
Переменная - имя, связанное с объектом. Присваивание = создаёт или обновляет эту связь. Тип объекта можно узнать функцией type(). В Python всё объект - числа, строки, функции, модули.
int и float - основные числовые типы. Операторы + - * / // % **. Деление / всегда даёт float. Логический тип bool: True, False. Операторы and, or, not.
Срез s[начало:конец:шаг] - конец не включается. Конкатенация +, повторение *. Ниже - кейсы по методам.
if, elif, else с двоеточием и отступами. Вложенные блоки - больший отступ.
Имена переменных в Python чувствительны к регистру: name и Name - разные переменные. По соглашению PEP 8 имена пишутся в нижнем регистре, слова разделяются подчёркиванием: user_name, max_value.
Нельзя использовать зарезервированные слова: if, else, for, while, def, class и др. - они часть синтаксиса языка.
int(значение) преобразует в целое (отбрасывает дробную часть у float, разбирает строку с числом). float(значение) - в число с плавающей запятой. round(x, n) округляет до n знаков после запятой.
При смешивании типов в арифметике Python автоматически приводит int к float при необходимости (например при делении).
== равно, != не равно, <, >, <=, >=. Результат - True или False. Сравнения можно объединять: 0 < x < 10 - проверка попадания в диапазон.
Один знак = - присваивание, два == - сравнение на равенство. Путать их - частая ошибка.
В строках обратный слэш \ начинает escape-последовательность: \n - перевод строки, \t - табуляция, \" и \' - кавычки внутри строки. Сырые строки r"путь\nфайл" не обрабатывают \n как перевод строки.
F-строка: перед кавычками ставится f, внутри фигурные скобки с выражением: f"Привет, {name}! Возраст: {age}". В скобках может быть переменная, вызов функции или выражение. Удобно подставлять числа и строки без явного str().
Пример: print(f"Сумма: {a + b}")
input() всегда возвращает строку. Для целого: n = int(input()) или n = int(input("Введите число: ")). Для дробного: x = float(input()). Если пользователь введёт не число, возникнет ошибка ValueError - её можно обработать блоком try/except (это тема следующих занятий).
В условии if можно использовать and, or, not и скобки для группировки: if (a > 0 and b > 0) or c == 0:. Читаемость важна - длинные условия лучше разбивать на переменные с осмысленными именами.
Если по синтаксису нужен блок (например после if), но пока ничего делать не нужно, используют инструкцию pass - она ничего не делает и служит заглушкой. Без неё пустой блок вызовет ошибку.
.capitalize() - первая буква заглавная; .title() - каждое слово с заглавной; .count(подстрока) - количество вхождений; .isdigit(), .isalpha() - проверка на цифры/буквы. Результат методов можно присваивать переменной или передавать в print().
Функция len(строка) возвращает количество символов. Для среза с отрицательным шагом s[::-1] получается перевёрнутая строка. Выход индекса за границу (например s[100] для короткой строки) вызывает IndexError.
Типичная задача для начинающего разработчика: прочитать число, проверить несколько вариантов и вывести человеку понятный ответ. Здесь особенно хорошо видна логика программы: ввод → преобразование строки в число → проверка условий → вывод результата. Это один из самых полезных шаблонов в самом начале обучения.
Обрати внимание: сначала мы не сравниваем строку из input(), а превращаем её в число через int(). Затем условия идут от более частного к общему: положительное, отрицательное, иначе остаётся только ноль.
Полезное упражнение: мысленно прогони программу для входных данных 5, -3 и 0. До запуска попробуй предсказать, какая ветка сработает в каждом случае. Такая привычка очень помогает при отладке.
Программа запрашивает имя, выводит приветствие и проверяет пустой ввод — так отрабатываются строки, .strip(), f-строки и if/else. Это хороший пример «человеческой» логики: сначала нужно очистить данные, потом понять, можно ли с ними работать, и только потом формировать ответ.
Такой шаблон часто используется в реальных формах и ботах: пользователь что-то вводит, программа убирает лишние пробелы, проверяет, что поле не пустое, и только затем продолжает сценарий.
Пустая строка в условии if name: считается ложью — поэтому сработает ветка else, если пользователь нажмёт Enter без ввода. Запомни этот приём: он короче и естественнее, чем писать отдельное сравнение с пустой строкой в каждой простой задаче.
Для строки s = "Программирование" ниже — типичные срезы. Это не просто механика ради механики: срезы нужны, когда требуется взять префикс, окончание, код города, первые символы логина, расширение файла или каждый второй элемент шаблона.
Запусти код у себя и измени индексы. Самое важное правило: начало включается, а конец — нет. Если это запомнить на практике, большинство ошибок со срезами исчезает.
Переменная и присваивание, объект и тип. Числа int/float, арифметика, bool и логические операции. Строки: срезы, конкатенация, методы, input и print. Условия if/elif/else, отступы и вложенность. Этого достаточно, чтобы писать первые полезные программы, а не только отдельные разрозненные команды.
Дальше начинается самая важная часть урока: самостоятельные интерактивы. В них уже недостаточно просто узнать ответ глазами — нужно самому написать код, запустить его и добиться правильного результата.
Функции isinstance(объект, тип) проверяет, является ли объект экземпляром типа (или подкласса). Например isinstance(5, int) даёт True. Полезно при приёме данных извне и перед операциями, требующими определённого типа.
Оператор // - целочисленное деление (результат округляется вниз). Оператор % - остаток от деления. Для положительных чисел a = (a // b) * b + (a % b). Отрицательные числа: в Python остаток имеет знак делителя.
s.split(разделитель) разбивает строку в список подстрок. По умолчанию разделитель — пробел. s.split() также убирает пустые элементы при нескольких пробелах. Обратная операция — разделитель.join(список): элементы списка склеиваются в одну строку.
Практический пример: собрать из списка слов строку с запятыми или путь из частей.
Внутри блока if можно написать другой if. Внутренний блок имеет отступ на один уровень больше. Так проверяют несколько условий подряд. Читаемость важна - слишком глубокая вложенность усложняет понимание; иногда лучше использовать elif или вынести проверку в переменную.
1. Проверка чётности — остаток от деления на 2: n % 2 == 0 значит «чётное».
2. Проверка возраста — ввели возраст, вывести «совершеннолетний» или «несовершеннолетний» (сравнение с 18). 3. Длина строки — len(input("Текст: ")) и вывод результата. Попробуй написать эти программы сам.
print, input, type, len, int, float, str. Операторы: =, + - * / // % **, == != < > <= >=, and or not. Срезы [start:stop:step]. Методы строк: .upper(), .lower(), .strip(), .split(), .replace().
Данные от пользователя (input()) всегда приходят как строка. Перед использованием в расчётах их преобразуют в int или float. Если ввод неверный, возникнет исключение - позже вы научитесь обрабатывать его через try/except и повторный запрос.
Мы рассмотрели переменную и присваивание, объект и типы; числовые типы и арифметику, булеву логику; строки, срезы и методы; ввод и вывод; условный оператор и вложенные инструкции. Этого достаточно для написания простых программ и перехода к циклам и функциям.
В следующих блоках тебя ждут задания с полем для ввода кода на Python. Теперь это не просто «нажми и посмотри», а полноценная практика: ты сам пишешь решение, запускаешь его в браузере, смотришь вывод и при необходимости исправляешь логику.
Важно: часть задач будет использовать input(). Для них рядом с кодом появится отдельное поле с входными данными. Каждая новая строка в этом поле будет считаться отдельным ответом пользователя.
Ещё важнее: после запуска будет доступна проверка решения. Она смотрит не только на вывод, но и на наличие нужных конструкций: переменных, условий, работы со строками, вызова input().
В одном из финальных шагов ты сможешь создать файл task.py, написать программу с input, print и if, запустить её у себя, а затем проверить тот же код в уроке. Это полезный мост между учебной средой и настоящим редактором кода.
Но сначала мы потренируемся внутри урока на нескольких небольших задачах. Такой порядок логичен: сначала короткие самостоятельные решения, потом более цельный скрипт.
Кнопка «Запустить» под полем кода загружает интерпретатор Python в браузере (Pyodide) при первом нажатии. Подожди несколько секунд при первой загрузке. Вывод print() появится под полем; при ошибке в коде отобразится сообщение об ошибке.
Если задача использует ввод, сначала заполни поле входных данных. Например, для программы с двумя вызовами input() нужно указать две строки: первая пойдёт в первый input(), вторая — во второй.
Первое задание — на логику программы. Затем тебя ждёт серия самостоятельных задач на написание кода: арифметика, строки, условия, обработка ввода и составные проверки. Практики станет заметно больше, и почти все важные конструкции ты действительно напишешь руками.
В итоговой практике нужно загрузить файл .py с программой, в которой есть print(), переменная, условный оператор if и использование строк или чисел. Порог зачёта — 60 баллов из 100. После прохождения теста (80% и выше) станет доступна кнопка перехода к практике.
Сначала постарайся решить задачи сам. Подсказки нужны не для того, чтобы сразу списать ответ, а чтобы дойти до решения шаг за шагом. Чем больше кода ты напишешь самостоятельно на этом этапе, тем легче будет на следующих занятиях.
Перетащи шаги в правильном порядке (сверху вниз):
Напиши программу, в которой есть переменные price = 120, count = 3 и discount = 40. Выведи двумя строками: полную стоимость заказа и стоимость со скидкой. Здесь важно не просто вывести готовые числа, а действительно использовать переменные и вычисления.
360, затем 320.Сначала удобно посчитать промежуточную переменную total, а потом уже вывести её и результат со скидкой.
Напиши код: создай text = " PyThOn " и word = "Программирование". Выведи три строки: очищенный и приведённый к нижнему регистру text, первые четыре символа word и последние три символа word.
python, затем Прог, затем ние.input() и условный операторНапиши программу, которая считывает целое число и выводит: положительное, отрицательное или ноль. Это уже не пример на готовой переменной, а полноценная мини-программа с вводом и ветвлением.
input(). Сейчас можно попробовать число -3, 0 или 5.Напиши программу: считай имя и город через input(), очисти имя методом .strip() и выведи строку вида Привет, Анна! Твой город: Казань. Это задание специально объединяет строковые методы, ввод и f-строки.
input(), вторая — во второй.Напиши программу, которая считывает логин и пароль. Если логин равен admin и пароль равен python123, выведи доступ разрешен, иначе выведи доступ запрещен. Это задание проверяет, понял ли ты, как использовать составное условие с and.
Считай возраст и выведи цену билета. Если возраст меньше 7 — Билет: 0, если меньше 18 — Билет: 50, иначе — Билет: 120. Это итоговая мини-задача на весь набор тем: ввод, число, сравнение, несколько веток и понятный текстовый результат.
Условия удобнее проверять сверху вниз: сначала самый маленький возрастной диапазон, потом следующий, и только потом общий случай else.
Ответь на 8 вопросов. Для допуска нужно не менее 80% (6 из 8).
1. В Python переменная - это:
2. Результат 10 // 3:
3. Срез s[2:5] включает индекс 5?
4. Функция вывода в консоль:
5. Блок после if задаётся:
6. Логическое И в Python:
7. input() возвращает:
8. f-строка для подстановки переменной:
Что сделать:
print() для вывода.=).if.input() или числа.Пример: запросить имя и возраст, затем вывести разные сообщения для несовершеннолетнего и взрослого. Ниже можно сначала набросать черновик и запустить его прямо в уроке, а потом загрузить готовый файл .py на проверку.
Загрузи файл .py