Урок 03. Запись вспомогательных алгоритмов на Python

Определять и вызывать функцию с параметрами, различать параметр и аргумент и возвращать результат через return.

Понадобятся тетрадь и ручка; для программ — компьютер с Python и IDLE. Если компьютера нет, код можно сначала разобрать на бумаге.

Все уроки · Перейти к заданиям

Материалы к уроку

1. Функция без параметров

Функция без параметров каждый раз выполняет одно и то же действие.

def separator():
    print("-----")
 
separator()
separator()

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

2. Параметр и аргумент

Параметр — имя данных, которые функция ожидает при определении.

Аргумент — конкретное значение, которое передают при вызове.

def greet(name):
    print("Привет,", name)
 
greet("Анна")
greet("Илья")

Здесь:

  • name — параметр;
  • "Анна" и "Илья" — аргументы;
  • одна функция работает с разными значениями.

Ожидаемый вывод:

Привет, Анна
Привет, Илья

3. Возвращаемое значение

Иногда функция должна не печатать ответ, а передать его обратно в основную программу. Для этого нужен return.

def square(number):
    result = number * number
    return result
 
answer = square(5)
print(answer)

Смысл строк:

  1. square(5) передаёт число 5 в параметр number.
  2. Функция вычисляет 5 * 5.
  3. return result возвращает значение 25 в место вызова.
  4. Значение записывается в answer и затем печатается.

print и return — не одно и то же

print(...) показывает значение на экране. return ... возвращает значение из функции, чтобы основная программа могла сохранить его или использовать в новом вычислении.

Разобранный пример

Задача:

Написать функцию, которая получает длину и ширину прямоугольника и возвращает его площадь.

Алгоритм словами

  1. Получить длину и ширину.
  2. Умножить длину на ширину.
  3. Вернуть площадь в основную программу.
  4. Вывести полученный результат.

Программа

Создай файл lesson03.py.

def rectangle_area(length, width):
    area = length * width
    return area
 
length = int(input("Введите длину: "))
width = int(input("Введите ширину: "))
 
answer = rectangle_area(length, width)
print("Площадь:", answer)

Трассировка для длины 4 и ширины 3

ШагВыполняемая строкаlengthwidthareaanswer
1ввод длины4———
2ввод ширины43——
3вызов rectangle_area(4, 3)43——
4area = length * width4312—
5return area4312—
6результат записан в answer43—12
7print("Площадь:", answer)43—12

Ожидаемый вывод:

Введите длину: 4
Введите ширину: 3
Площадь: 12

Наглядная схема

flowchart LR
    A["Аргументы: 4 и 3"] --> B["rectangle_area(4, 3)"]
    B --> C["Параметры length и width"]
    C --> D["Вычисление 4 · 3"]
    D --> E["return 12"]
    E --> F["Основная программа получает 12"]
    classDef result fill:#d3f9d8,stroke:#2b8a3e,color:#212529;
    class E,F result;

Тренировка по шагам

Работай сверху вниз. Сначала запиши собственный ответ, затем нажми на свёрнутый блок «Правильный ответ» непосредственно под заданием. Исправление пиши ниже своей первой попытки, не стирая её.

Шаг 1. Параметр и аргументы

В программе назови параметр, два аргумента и результаты вызовов.

def double(number):
    return number * 2
 
print(double(6))
print(double(10))

Ответ ученика

Шаг 2. Трассировка функции

Запиши значения после выполнения.

def add(a, b):
    result = a + b
    return result
 
x = add(2, 5)

Ответ ученика

Шаг 3. Результат внутри выражения

Что выведет программа и почему?

def multiply(a, b):
    return a * b
 
print(multiply(3, 4) + 1)

Ответ ученика

Шаг 4. Исправь две ошибки

Исправь программу.

def cube(number)
return number * number * number
 
print(cube(3))

Ответ ученика

Шаг 5. Напиши функцию

Напиши функцию perimeter(a, b), которая возвращает периметр прямоугольника. Вызови её для сторон 5 и 2.

Ответ ученика

Шаг 6. Сравни print и return

Функция должна вернуть квадрат числа, чтобы затем прибавить 1. Что выбрать внутри функции: print(number * number) или return number * number? Почему?

Ответ ученика

Шаг 7. Итог урока

Закончи фразу: «Параметр — это …, аргумент — это …, а return …». Затем напиши функцию triple(number) и проверь её на числе 7.

Ответ ученика

Вопросы ученика

Предыдущий урок · Следующий урок