Определение описывает действие
Ключевое слово def создаёт функцию и связывает её с именем. После списка параметров ставится двоеточие, тело записывается с отступом. Отступ имеет синтаксический смысл: он показывает, какие инструкции принадлежат функции.
Задание источника
Реализуйте say_hello(), которая выводит Hello, World!:
def say_hello():
print("Hello, World!")
Это полное определение функции без вызова. Само выполнение строки def ещё не печатает приветствие.
Как проверить самостоятельно
После определения отдельно выполните:
say_hello()
Теперь тело будет выполнено, и появится строка приветствия. Повторный вызов напечатает её ещё раз. На исходной платформе функцию вызывает проверяющий код; на этой странице встроенного запуска тестов нет.
Код вне тела
def say_hi():
print("Hi!")
print("Program continues")
Последняя инструкция не имеет отступа и не относится к say_hi. При выполнении файла она напечатает свой текст независимо от вызова функции. Нельзя полагаться только на визуальную близость строк — принадлежность задают отступы.
Печать и результат функции
В say_hello нет return с явным значением, поэтому после завершения она возвращает None. Вызов print(say_hello()) сначала напечатает приветствие из тела, затем None внешним print. Для задания нужен обычный вызов say_hello(), без дополнительной печати её возвращаемого значения.
Имена собственных функций выбираются по тем же правилам, что и другие идентификаторы. Для читаемости здесь используются строчные буквы с подчёркиваниями и четыре пробела для отступа.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Определение сохранено; самостоятельная проверка отделена.