Введение

Основы Python: переменные, типы, строки, условия

На этом занятии мы разберём ключевые конструкции языка Python: переменные и присваивание, числовые и текстовые типы данных, арифметику и булеву логику, работу со строками и срезами, ввод-вывод, а также условный оператор и ветвление кода. Но главная цель урока не в том, чтобы просто прочитать определения, а в том, чтобы сразу превратить их в рабочие мини-программы.

Что ты сделаешь на практике: напишешь код с переменными и вычислениями, обработаешь текст, запустишь программы с input(), проверишь условия if/elif/else и соберёшь несколько маленьких, но жизненных сценариев: приветствие пользователя, определение знака числа, расчёт цены и проверку доступа.

Как работать с уроком: короткий блок теории → конкретный пример → самостоятельное задание в textarea → запуск и проверка. Такой ритм помогает начинающему разработчику не «застревать» в абстрактных формулировках, а сразу видеть смысл конструкции в коде.

Александр
Идём дальше!
Возможности языка

Возможности Python и понятие переменной

Python - универсальный язык высокого уровня с динамической типизацией. В нём не нужно объявлять тип переменной заранее: интерпретатор определяет его по присваиваемому значению. Это ускоряет написание кода и эксперименты.

Переменная в Python - это имя, связанное с объектом в памяти. Когда мы пишем x = 5, мы не «создаём ящик с числом», а даём имя объекту (целому числу 5). Другое присваивание может связать то же имя с другим объектом.

Присваивание

Присвоение значения переменной

Присваивание выполняется знаком =. Слева — имя переменной, справа — выражение (значение, результат вызова функции, другая переменная). Имя должно начинаться с буквы или подчёркивания и может содержать буквы, цифры и подчёркивание.

age = 18 name = "Анна" price = 19.99

После присваивания имя можно использовать в выражениях и передавать в функции. Один оператор — одно присваивание; несколько переменных в одной строке (например a = b = 0) тоже допустимы.

Практический пример: сохраняем данные и выводим их — так переменные связывают ввод и вывод.

product = "Молоко" quantity = 2 print(product, quantity) # Молоко 2
Объект

Понятие объекта в Python

В Python всё является объектом: числа, строки, списки, функции, модули. У каждого объекта есть тип (класс), идентичность (id) и значение. Переменная хранит ссылку на объект, а не копию данных.

Функция type(объект) возвращает тип; id(объект) - уникальный идентификатор в памяти. Это полезно при отладке и при изучении того, как переменные связаны с объектами.

Мария
То есть переменная - это как ярлык на объект?
Числовые типы

Целые числа и числа с плавающей запятой

Тип int - целые числа любой величины (ограничены только памятью). Тип float - числа с плавающей запятой для дробей и вещественных значений. Литералы: 42, -7, 3.14, 2e-3.

Целочисленное деление: //; остаток от деления: %; степень: **. Обычное деление / в Python 3 всегда возвращает float, даже при делении целых (например 4 / 2 даёт 2.0).

Арифметические операции

Арифметика в Python

Операторы: +, -, *, /, //, %, **. Приоритет как в математике: сначала скобки и степень, затем умножение и деление, затем сложение и вычитание. Операторы можно комбинировать с присваиванием: a += 1.

print(10 // 3) # 3 print(10 % 3) # 1 print(2 ** 4) # 16

Практический пример: посчитать сумму покупки (цена × количество) и остаток от деления (например, для проверки чётности).

price = 150 count = 3 print("Итого:", price * count) # Итого: 450 print(count % 2) # 1 — нечётное количество
Логический тип

Логические значения (bool)

Тип bool имеет два значения: True и False (с большой буквы). Они являются подтипом целых: True ведёт себя как 1, False как 0 в арифметике, но для условий важно именно логическое значение.

Результаты сравнений (==, !=, <, >, <=, >=) и проверки вхождения (in) имеют тип bool.

Булева логика

Логические операции

Оператор and — логическое И: истина только когда оба операнда истинны. or — логическое ИЛИ: истина, если хотя бы один истинен. not — отрицание. Короткое замыкание: если по первому аргументу результат уже ясен, второй не вычисляется.

print(True and False) # False print(True or False) # True print(not True) # False

Практический пример: проверка диапазона — «возраст от 18 до 65»: age >= 18 and age <= 65.

age = 25 print(age >= 18 and age <= 65) # True
Дмитрий
and, or, not - запомнил.
Текстовый тип

Строки в Python

Строка (str) - последовательность символов. Литералы задаются в одинарных или двойных кавычках: "привет", 'мир'. Многострочные строки - в тройных кавычках """ или '''. Строки неизменяемы: любая операция, «меняющая» строку, создаёт новую.

Текстовый тип

Индексация символов строки

К любому символу строки можно обратиться по индексу в квадратных скобках. Индексация с нуля: s[0] - первый символ, s[1] - второй. Отрицательный индекс считает с конца: s[-1] - последний символ, s[-2] - предпоследний.

s = "Python" print(s[0], s[-1]) # P n
Срезы строк

Правила составления срезов

Срез (slice) - это подпоследовательность символов строки, задаваемая диапазоном индексов. Результат - новая строка.

Срез записывается как s[начало:конец:шаг]. Начало включается, конец не включается. Если начало или конец опущены - берётся начало или конец строки. Шаг по умолчанию 1; отрицательный шаг - обход в обратном порядке.

s = "Python" print(s[1:4]) # yth print(s[::-1]) # nohtyP - строка наоборот
Операции над строками

Конкатенация и повторение

Оператор + объединяет строки (конкатенация). Оператор * с целым числом повторяет строку: "ab" * 3 даёт "ababab". Проверка вхождения: "под" in "подстрока" возвращает True.

Строки нельзя складывать с числами без явного преобразования: нужно str(число) или f"результат: {x}" в f-строках.

Методы строк

Методы строк в Python

У строк есть встроенные методы - функции, вызываемые через точку: s.метод(). Они не меняют исходную строку, а возвращают новую. Ниже - описание и примеры основных методов.

Методы строк

.upper() и .lower()

.upper() возвращает строку в верхнем регистре; .lower() - в нижнем. Исходная строка не меняется.

s = "Привет" print(s.upper()) # ПРИВЕТ print(s.lower()) # привет
Методы строк

.strip()

.strip() удаляет пробелы и переводы строк с обоих концов строки. На практике: пользователь часто случайно ставит пробелы — без strip() строка " Анна " не равна "Анна".

s = " текст \n" print(s.strip()) # текст # Типичное использование после input: name = input("Имя: ").strip() # убираем пробелы по краям
Методы строк

.replace(old, new)

.replace(old, new) возвращает строку, в которой все вхождения подстроки old заменены на new. Удобно для нормализации текста или замены разделителей.

s = "банан" print(s.replace("а", "о")) # бонон date = "2025-03-10" print(date.replace("-", ".")) # 2025.03.10
Методы строк

.split(разделитель)

.split(разделитель) разбивает строку на список подстрок по разделителю. Без аргументов делит по пробелам (последовательности пробелов схлопываются). На практике: разбор ввода «фамилия имя» или данных в формате "a,b,c".

s = "яблоко груша вишня" print(s.split()) # ['яблоко', 'груша', 'вишня'] csv = "Петров;Иван;25" print(csv.split(";")) # ['Петров', 'Иван', '25']
Методы строк

.find(), .startswith(), .endswith()

.find(подстрока) возвращает индекс первого вхождения или -1. .startswith(подстрока) и .endswith(подстрока) возвращают True или False.

s = "привет" print(s.find("ив")) # 2 print(s.startswith("при")) # True
Ввод и вывод

Функции ввода и вывода текстовых данных

print(значение1, значение2, ...) выводит аргументы в консоль через пробел; по умолчанию завершает вывод переводом строки. Параметры sep и end позволяют изменить разделитель и окончание строки.

input(подсказка) выводит подсказку, читает ввод пользователя до Enter и возвращает введённую строку. Число из ввода получают так: n = int(input("Введите число: ")).

Практический пример — приветствие: читаем имя и выводим фразу. Для подстановки переменной в строку используем f-строку: перед кавычками пишем f, в строке — {переменная}.

name = input("Как вас зовут? ").strip() print(f"Привет, {name}!") # Если ввести Мария, выведется: Привет, Мария!
Условный оператор

Понятие условного оператора в Python

Условный оператор if позволяет выполнять блок кода только при истинности условия. Синтаксис: if условие:, после двоеточия - блок с отступом. Блок может содержать несколько строк; отступ (обычно 4 пробела) обязателен - по нему Python понимает границы блока.

Условие - любое выражение, дающее bool или значение, интерпретируемое как истина/ложь (число 0, пустая строка - ложь).

Ветвление

Ветвление кода: if, elif, else

Дополнительные ветки задаются elif условие: и необязательной финальной else:. Выполняется первая ветка, условие которой истинно; если ни одно не подошло - блок else. Все блоки выделяются отступами одного уровня.

x = int(input("Число: ")) if x > 0: print("положительное") elif x < 0: print("отрицательное") else: print("ноль")
Синтаксис вложенных инструкций

Вложенные инструкции в Python

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

Ошибка отступов (IndentationError) - одна из частых причин сбоя при запуске. Редактор с подсветкой Python помогает видеть уровни вложенности.

Александр
Отступы - это про пробелы в начале строки?
Повторение

Переменная и объект: кратко

Переменная - имя, связанное с объектом. Присваивание = создаёт или обновляет эту связь. Тип объекта можно узнать функцией type(). В Python всё объект - числа, строки, функции, модули.

Повторение

Числа и арифметика

int и float - основные числовые типы. Операторы + - * / // % **. Деление / всегда даёт float. Логический тип bool: True, False. Операторы and, or, not.

Повторение

Строки: срезы и методы - примеры

Срез s[начало:конец:шаг] - конец не включается. Конкатенация +, повторение *. Ниже - кейсы по методам.

s = " Привет, Мир " print(s.strip().lower()) # привет, мир print(s.replace(" ", "")) # Привет,Мир print("a,b,c".split(",")) # ['a', 'b', 'c']
Повторение

Условия и вложенность - пример кода

if, elif, else с двоеточием и отступами. Вложенные блоки - больший отступ.

x = 15 if x > 10: print("больше 10") elif x > 5: print("больше 5") else: print("5 или меньше") # выведет: больше 10
Детали

Имена переменных и стиль

Имена переменных в 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, внутри фигурные скобки с выражением: 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:. Читаемость важна - длинные условия лучше разбивать на переменные с осмысленными именами.

Блоки

Пустой блок pass

Если по синтаксису нужен блок (например после if), но пока ничего делать не нужно, используют инструкцию pass - она ничего не делает и служит заглушкой. Без неё пустой блок вызовет ошибку.

if x < 0: pass # потом допишем
Методы строк

Ещё полезные методы

.capitalize() - первая буква заглавная; .title() - каждое слово с заглавной; .count(подстрока) - количество вхождений; .isdigit(), .isalpha() - проверка на цифры/буквы. Результат методов можно присваивать переменной или передавать в print().

Длина и индексы

len() и индексация

Функция len(строка) возвращает количество символов. Для среза с отрицательным шагом s[::-1] получается перевёрнутая строка. Выход индекса за границу (например s[100] для короткой строки) вызывает IndexError.

Практика

Пример: калькулятор знака числа

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

Обрати внимание: сначала мы не сравниваем строку из input(), а превращаем её в число через int(). Затем условия идут от более частного к общему: положительное, отрицательное, иначе остаётся только ноль.

x = int(input("Введите число: ")) if x > 0: print("положительное") elif x < 0: print("отрицательное") else: print("ноль")

Полезное упражнение: мысленно прогони программу для входных данных 5, -3 и 0. До запуска попробуй предсказать, какая ветка сработает в каждом случае. Такая привычка очень помогает при отладке.

Практика

Пример: приветствие по имени

Программа запрашивает имя, выводит приветствие и проверяет пустой ввод — так отрабатываются строки, .strip(), f-строки и if/else. Это хороший пример «человеческой» логики: сначала нужно очистить данные, потом понять, можно ли с ними работать, и только потом формировать ответ.

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

name = input("Ваше имя: ").strip() if name: print(f"Привет, {name}!") else: print("Имя не задано")

Пустая строка в условии if name: считается ложью — поэтому сработает ветка else, если пользователь нажмёт Enter без ввода. Запомни этот приём: он короче и естественнее, чем писать отдельное сравнение с пустой строкой в каждой простой задаче.

Практика

Срезы на примере

Для строки s = "Программирование" ниже — типичные срезы. Это не просто механика ради механики: срезы нужны, когда требуется взять префикс, окончание, код города, первые символы логина, расширение файла или каждый второй элемент шаблона.

Запусти код у себя и измени индексы. Самое важное правило: начало включается, а конец — нет. Если это запомнить на практике, большинство ошибок со срезами исчезает.

s = "Программирование" print(s[0:4]) # Прог — первые 4 символа print(s[4:]) # раммирование — с 5-го до конца print(s[-4:]) # ние — последние 4 символа print(s[::2]) # Пормирвне — каждый второй print(s[::-1]) # еинавориммаргорП — строка наоборот
Итоги блока

Что мы повторили

Переменная и присваивание, объект и тип. Числа int/float, арифметика, bool и логические операции. Строки: срезы, конкатенация, методы, input и print. Условия if/elif/else, отступы и вложенность. Этого достаточно, чтобы писать первые полезные программы, а не только отдельные разрозненные команды.

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

Мария
Готовы к интерактивам!
Детали

Проверка типов

Функции isinstance(объект, тип) проверяет, является ли объект экземпляром типа (или подкласса). Например isinstance(5, int) даёт True. Полезно при приёме данных извне и перед операциями, требующими определённого типа.

Числа

Целочисленное деление и остаток

Оператор // - целочисленное деление (результат округляется вниз). Оператор % - остаток от деления. Для положительных чисел a = (a // b) * b + (a % b). Отрицательные числа: в Python остаток имеет знак делителя.

Строки

Метод split и join

s.split(разделитель) разбивает строку в список подстрок. По умолчанию разделитель — пробел. s.split() также убирает пустые элементы при нескольких пробелах. Обратная операция — разделитель.join(список): элементы списка склеиваются в одну строку.

Практический пример: собрать из списка слов строку с запятыми или путь из частей.

words = ["яблоко", "груша", "вишня"] print(", ".join(words)) # яблоко, груша, вишня print(" — ".join(words)) # яблоко — груша — вишня
Условия

Вложенный if

Внутри блока if можно написать другой if. Внутренний блок имеет отступ на один уровень больше. Так проверяют несколько условий подряд. Читаемость важна - слишком глубокая вложенность усложняет понимание; иногда лучше использовать elif или вынести проверку в переменную.

Практика

Идеи для мини-программ с полным кодом

1. Проверка чётности — остаток от деления на 2: n % 2 == 0 значит «чётное».

n = int(input("Число: ")) if n % 2 == 0: print("чётное") else: print("нечётное")

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»

Мы рассмотрели переменную и присваивание, объект и типы; числовые типы и арифметику, булеву логику; строки, срезы и методы; ввод и вывод; условный оператор и вложенные инструкции. Этого достаточно для написания простых программ и перехода к циклам и функциям.

Напоминание

Задания с кодом

В следующих блоках тебя ждут задания с полем для ввода кода на Python. Теперь это не просто «нажми и посмотри», а полноценная практика: ты сам пишешь решение, запускаешь его в браузере, смотришь вывод и при необходимости исправляешь логику.

Важно: часть задач будет использовать input(). Для них рядом с кодом появится отдельное поле с входными данными. Каждая новая строка в этом поле будет считаться отдельным ответом пользователя.

Ещё важнее: после запуска будет доступна проверка решения. Она смотрит не только на вывод, но и на наличие нужных конструкций: переменных, условий, работы со строками, вызова input().

Подсказка

Задание с редактором

В одном из финальных шагов ты сможешь создать файл task.py, написать программу с input, print и if, запустить её у себя, а затем проверить тот же код в уроке. Это полезный мост между учебной средой и настоящим редактором кода.

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

Подсказка

Запуск кода в уроке

Кнопка «Запустить» под полем кода загружает интерпретатор Python в браузере (Pyodide) при первом нажатии. Подожди несколько секунд при первой загрузке. Вывод print() появится под полем; при ошибке в коде отобразится сообщение об ошибке.

Если задача использует ввод, сначала заполни поле входных данных. Например, для программы с двумя вызовами input() нужно указать две строки: первая пойдёт в первый input(), вторая — во второй.

Старт заданий

Переходим к интерактивам

Первое задание — на логику программы. Затем тебя ждёт серия самостоятельных задач на написание кода: арифметика, строки, условия, обработка ввода и составные проверки. Практики станет заметно больше, и почти все важные конструкции ты действительно напишешь руками.

Финальное напоминание

Критерии практики

В итоговой практике нужно загрузить файл .py с программой, в которой есть print(), переменная, условный оператор if и использование строк или чисел. Порог зачёта — 60 баллов из 100. После прохождения теста (80% и выше) станет доступна кнопка перехода к практике.

Сначала постарайся решить задачи сам. Подсказки нужны не для того, чтобы сразу списать ответ, а чтобы дойти до решения шаг за шагом. Чем больше кода ты напишешь самостоятельно на этом этапе, тем легче будет на следующих занятиях.

Задание 1

Порядок выполнения программы

Перетащи шаги в правильном порядке (сверху вниз):

Задание 2

Код: переменные и арифметика

Напиши программу, в которой есть переменные price = 120, count = 3 и discount = 40. Выведи двумя строками: полную стоимость заказа и стоимость со скидкой. Здесь важно не просто вывести готовые числа, а действительно использовать переменные и вычисления.

Ожидаемый вывод: сначала 360, затем 320.

        
Подсказка

Сначала удобно посчитать промежуточную переменную total, а потом уже вывести её и результат со скидкой.

Задание 3

Код: строки и срезы

Напиши код: создай text = " PyThOn " и word = "Программирование". Выведи три строки: очищенный и приведённый к нижнему регистру text, первые четыре символа word и последние три символа word.

Ожидаемый вывод: python, затем Прог, затем ние.

        
Задание 4

Код: input() и условный оператор

Напиши программу, которая считывает целое число и выводит: положительное, отрицательное или ноль. Это уже не пример на готовой переменной, а полноценная мини-программа с вводом и ветвлением.

В этом поле задаются входные данные для input(). Сейчас можно попробовать число -3, 0 или 5.

        
Задание 5

Код: приветствие с очисткой ввода

Напиши программу: считай имя и город через input(), очисти имя методом .strip() и выведи строку вида Привет, Анна! Твой город: Казань. Это задание специально объединяет строковые методы, ввод и f-строки.

Первая строка пойдёт в первый input(), вторая — во второй.

        
Задание 6

Код: проверка логина и пароля

Напиши программу, которая считывает логин и пароль. Если логин равен admin и пароль равен python123, выведи доступ разрешен, иначе выведи доступ запрещен. Это задание проверяет, понял ли ты, как использовать составное условие с and.

Попробуй сначала корректные данные, а затем неверный пароль, чтобы увидеть разницу в поведении программы.

        
Задание 7

Код: цена билета по возрасту

Считай возраст и выведи цену билета. Если возраст меньше 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-строка для подстановки переменной:

Практика

Итоговое задание: программа с вводом и условием

Что сделать:

Пример: запросить имя и возраст, затем вывести разные сообщения для несовершеннолетнего и взрослого. Ниже можно сначала набросать черновик и запустить его прямо в уроке, а потом загрузить готовый файл .py на проверку.


      

Загрузи файл .py