Линейные алгоритмы: когда программа идёт по прямой
Сейчас мы разберёмся, как писать программы, которые выполняют команды одну за другой — как рецепт любимого блюда или инструкция по прохождению уровня в игре. Это называется линейный алгоритм. Представь, что ты учишь компьютер делать что-то полезное, и он слушается каждой твоей команды строго по порядку.
Что такое линейный алгоритм?
Давай представим, что ты запускаешь любимую игру. Что происходит? Компьютер по порядку: загружает файлы → проверяет подключение → запускает главное меню. Одно за другим, без перепрыгиваний.
💡 Определение
Линейный алгоритм — это последовательность команд, которые выполняются строго одна за другой, от начала до конца. Никаких развилок, никаких повторений — просто прямая дорога от старта до финиша.
🤔 Как это работает в программе?
В Python (и в любом другом языке программирования) компьютер читает твой код сверху вниз, строчка за строчкой. Написал команды — они выполнятся именно в том порядке, в котором ты их расположил.
Структура линейного алгоритма: начало → действия → конец
Основные команды Python для линейных алгоритмов
Чтобы писать программы, нужно знать базовые команды. Давай разберём самые важные!
📢 Вывод информации — print()
Это как отправить сообщение в чат. Программа показывает текст на экране.
print("Привет, мир!")
print("Добро пожаловать в программирование")
Что произойдёт? На экране появятся две строки текста — именно то, что ты написал в кавычках.
⌨️ Ввод данных — input()
Это как когда игра спрашивает: "Введи своё имя". Программа ждёт, пока ты что-то напишешь.
name = input("Как тебя зовут? ")
print("Приятно познакомиться,", name)
Обрати внимание: мы сохранили то, что ввёл пользователь, в переменную name. Переменная — это такая коробочка, в которой хранится информация.
Переменные — коробочки для данных
Представь, что переменная — это именованная коробка. Ты можешь положить туда число, текст или что-то ещё, а потом использовать это в программе.
age = 14
city = "Москва"
height = 1.65
Переменные — это именованные "коробочки" для хранения данных
Типы данных в Python
Компьютер различает разные виды информации. Давай разберёмся, какие бывают типы данных.
| Тип данных | Название | Что хранит | Пример |
|---|---|---|---|
int |
Целое число | Числа без дробной части | 42, -7, 1000 |
float |
Вещественное число | Числа с дробной частью | 3.14, -0.5, 2.0 |
str |
Строка | Текст в кавычках | "Привет", "Python" |
bool |
Логический | Истина или ложь | True, False |
⚠️ Почему это важно?
Если ты спросишь у пользователя его возраст через input(), Python получит строку, даже если человек ввёл число! Чтобы работать с числами, нужно преобразовать строку:
age = input("Сколько тебе лет? ") # это строка!
age = int(age) # теперь это целое число
print("Через 5 лет тебе будет", age + 5)
Арифметические операции — математика в коде
Python отлично умеет считать! Вот основные операции:
| Операция | Символ | Пример | Результат |
|---|---|---|---|
| Сложение | + |
5 + 3 |
8 |
| Вычитание | - |
10 - 4 |
6 |
| Умножение | * |
7 * 2 |
14 |
| Деление | / |
15 / 3 |
5.0 |
| Целочисленное деление | // |
17 // 5 |
3 |
| Остаток от деления | % |
17 % 5 |
2 |
| Возведение в степень | ** |
2 ** 3 |
8 |
Арифметические операции — основа математических вычислений в программе
📐 Пример: Калькулятор площади комнаты
# Программа вычисляет площадь прямоугольной комнаты
length = float(input("Введи длину комнаты (в метрах): "))
width = float(input("Введи ширину комнаты (в метрах): "))
area = length * width
print("Площадь комнаты:", area, "квадратных метров")
Что здесь происходит?
- Спрашиваем длину и ширину
- Преобразуем ввод в вещественные числа (
float) - Вычисляем площадь (длина × ширина)
- Выводим результат
Работа со строками
Строки — это не только простой текст. С ними можно делать много интересного!
➕ Склеивание строк (конкатенация)
Можно соединять строки с помощью +:
first_name = "Иван"
last_name = "Петров"
full_name = first_name + " " + last_name
print("Полное имя:", full_name)
# Полное имя: Иван Петров
✖️ Умножение строк
Да-да, строки можно "умножать"!
laugh = "ха" * 5
print(laugh)
# хахахахаха
🔧 Полезные функции для строк
| Функция | Что делает | Пример |
|---|---|---|
len(s) |
Длина строки | len("Привет") → 6 |
s.upper() |
Все буквы заглавные | "привет".upper() → "ПРИВЕТ" |
s.lower() |
Все буквы строчные | "ПРИВЕТ".lower() → "привет" |
s[i] |
Символ на позиции i | "Python"[0] → "P" |
🔢 Пример: Работа с кодами символов
# Программа показывает код буквы и соседние буквы
letter = input("Введи букву: ")
code = ord(letter) # получаем код символа
# Формируем строку из трёх букв: предыдущая, текущая, следующая
result = chr(code - 1) + letter + chr(code + 1)
print("Код буквы", letter, "равен", code)
print("Строка из трёх букв:", result)
Что такое ord() и chr()?
ord(symbol)— возвращает числовой код символаchr(code)— возвращает символ по его коду
Практические примеры программ
Давай напишем несколько реальных программ!
💱 Конвертер валют
# Программа конвертирует рубли в доллары
print("=== Конвертер валют ===")
rubles = float(input("Введи сумму в рублях: "))
rate = 90.5 # курс доллара (примерный)
dollars = rubles / rate
print(f"{rubles} рублей = {dollars:.2f} долларов")
Обрати внимание: .2f в f-строке означает "два знака после запятой".
Программа может конвертировать валюты, выполняя простые арифметические операции
🎮 Создание никнейма для игры
# Программа создаёт игровой никнейм
print("=== Генератор никнеймов ===")
name = input("Твоё имя: ")
fav_number = input("Любимое число: ")
fav_animal = input("Любимое животное: ")
nickname = name[:3].upper() + "_" + fav_animal + fav_number
print("Твой крутой никнейм:", nickname)
Что такое name[:3]? Это срез строки — берём первые 3 символа.
⚖️ Вычисление ИМТ (индекса массы тела)
# Программа вычисляет индекс массы тела
print("=== Калькулятор ИМТ ===")
weight = float(input("Твой вес (кг): "))
height = float(input("Твой рост (м): "))
imt = weight / (height ** 2)
print(f"Твой ИМТ: {imt:.1f}")
💌 Форматирование текста
# Программа создаёт красивое приглашение
print("=== Генератор приглашений ===")
guest_name = input("Имя гостя: ")
event = input("Название мероприятия: ")
date = input("Дата (например, 15 марта): ")
invitation = f"""
╔════════════════════════════════╗
║ ПРИГЛАШЕНИЕ ║
╠════════════════════════════════╣
║ ║
║ Дорогой(ая) {"{guest_name}"}! ║
║ ║
║ Приглашаем тебя на: ║
║ {"{event}"} ║
║ ║
║ Дата: {"{date}"} ║
║ ║
╚════════════════════════════════╝
"""
print(invitation)
Линейные программы решают реальные задачи: от конвертации валют до создания приглашений
Распространённые ошибки и как их избежать
Давайте разберём типичные ошибки начинающих программистов и научимся их избегать.
❌ Ошибка 1: Забыл преобразовать тип данных
# ❌ НЕПРАВИЛЬНО
age = input("Возраст: ")
next_year = age + 1 # Ошибка! age — это строка
# ✅ ПРАВИЛЬНО
age = int(input("Возраст: "))
next_year = age + 1
❌ Ошибка 2: Деление на ноль
# ❌ НЕПРАВИЛЬНО
result = 10 / 0 # Программа упадёт с ошибкой!
# ✅ ПРАВИЛЬНО
divisor = float(input("Делитель: "))
if divisor != 0:
result = 10 / divisor
print("Результат:", result)
else:
print("Нельзя делить на ноль!")
❌ Ошибка 3: Неправильные кавычки
# ❌ НЕПРАВИЛЬНО
name = 'Иван's code' # Кавычка внутри строки сломает код
# ✅ ПРАВИЛЬНО
name = "Иван's code" # Используй разные кавычки
# или
name = 'Иван\'s code' # Экранируй символ с помощью \
📌 Самое главное
Давайте подведём итоги того, что мы узнали:
print() — вывод информации, input() — получение данных, переменные — хранилища для данных.
int (целые числа), float (дробные числа), str (строки), bool (логические значения).
+, -, *, /, //, %, ** — с их помощью программы выполняют вычисления.
input() возвращает строку, используй int() или float() для работы с числами.
🎯 Проверь себя
Давай проверим, насколько хорошо ты разобрался в теме! Попробуй решить эти задачки:
Задача 1: Обмен значениями
Напиши программу, которая запрашивает два числа a и b, а затем меняет их местами и выводит результат. Как ты думаешь, понадобится ли третья переменная?
Задача 2: Секунды в часы и минуты
Пользователь вводит количество секунд. Программа должна перевести их в формат "X часов Y минут Z секунд".
Подсказка: используй операции // и %.
Задача 3: Генератор паролей
Создай программу, которая по имени пользователя, году рождения и любимому цвету генерирует простой пароль.
Например: первые 3 буквы имени + год задом наперёд + первая буква цвета. Придумай свой вариант!
Задача 4: Стоимость покупки
Пользователь вводит цену товара и количество. Программа вычисляет итоговую стоимость и применяет скидку 10%, если сумма больше 1000 рублей. Сколько нужно заплатить?
Задача 5: Создай свой пример!
Придумай собственную задачу с линейным алгоритмом, которая решала бы какую-то твою жизненную проблему.
Может, калькулятор времени на дорогу в школу? Или счётчик сэкономленных карманных денег? Объясни идею другу!
Вопрос 6: Что делает функция input()?
Объясни своими словами, как работает функция input() и какой тип данных она возвращает.
Вопрос 7: В чём разница между / и //?
Чем отличается обычное деление (/) от целочисленного деления (//)?
Проверь: что вернёт 17 / 5 и 17 // 5?
Вопрос 8: Что такое переменная?
Объясни, что такое переменная в программировании. Приведи пример из жизни.
Вопрос 9: Для чего нужны ord() и chr()?
Расскажи, что делают функции ord() и chr(). Где их можно применить?
Вопрос 10: Почему важно преобразование типов?
Почему нельзя просто написать age = input("Возраст: ") + 1?
Что произойдёт и как это исправить?
💡 Практические задания
Попробуй применить полученные знания на практике!
📝 Задание 1: Визитная карточка
Напиши программу, которая запрашивает у пользователя имя, возраст, город и хобби, а затем выводит красиво оформленную визитную карточку.
Подсказка: используй f-строки для форматирования!
🧮 Задание 2: Калькулятор времени
Создай программу, которая переводит минуты в часы и минуты.
Пример: ввод 125 минут → вывод "2 часа 5 минут"
💰 Задание 3: Накопления
Программа спрашивает, сколько денег ты откладываешь в неделю, и вычисляет, сколько накопится за месяц, за полгода и за год.
🎂 Задание 4: Вычисление возраста
Пользователь вводит год своего рождения. Программа вычисляет и выводит:
- Сколько лет сейчас
- Сколько будет через 10 лет
- В каком году исполнится 18 лет
📏 Задание 5: Конвертер единиц
Напиши программу, которая переводит сантиметры в метры и километры.
Пример: 15000 см = 150 м = 0.15 км
🎨 Задание 6: ASCII-арт
Создай программу, которая запрашивает имя пользователя и выводит его в рамке из символов.
*************
* АЛЕКСАНДР *
*************