JavaRush /Курсы /Модуль 1: Python Core /Функции в Python

Функции в Python

Модуль 1: Python Core
4 уровень , 6 лекция
Открыта

7.1 Создание функций

В Python создание функций является фундаментальным аспектом программирования, позволяющим коду быть более модульным, повторно используемым и читаемым. Функции в Python определяются с помощью ключевого слова def, за которым следует имя функции и круглые скобки с параметрами.

Вы всегда можете думать о функции как о наборе команд, который объединили в группу и дали этой группе имя. Общий вид объявления функции имеет следующий вид:


def имя(параметры):
    команда1
    команда2
    командаN

Простейшая функция в Python может выглядеть так:


def greet():
    print("Hello, World!")

Вызов функции осуществляется путем написания её имени с круглыми скобками:


greet()  # Выведет: Hello, World!

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

7.2 Передача аргументов в функцию

Работать с функциями было бы не так интересно, если бы они всё время делали одно и то же — просто поименованный блок команд и всё. Вместо этого функциям сразу же придумали параметры — переменные, через которые в функцию можно передавать различные значения.

Переменные внутри функции называются параметрами функции. А значения, которые в них передаются при конкретном вызове, — аргументами функции. Параметры функции просто получают значения аргументов.


def greet(name):
    print("Hello,", name)
        
greet("Alice")  # Выведет: Hello, Alice!

Пример функции с двумя аргументами:


def print_sum(a, b):
    print(f"Сумма {a} и {b} равна {a + b}")
        
print_sum(10, 15)  # Выведет: Сумма 10 и 15 равна 25

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


def print_sum(a, b):
    print(f"Сумма {a} и {b} равна {a + b}")
        
print_sum(10*10-123, 15//2)  # Выведет: Сумма -23 и 7 равна -16

Полезно! Для любителей C/C++ — все переменные в Python — это ссылки с точки зрения C++. Параметры функции тоже. При присваивании значение никогда не копируется и не дублируется — всегда присваивается только ссылка.

7.3 Функция — это объект

В Python функции являются объектами первого класса, что означает, что они могут быть использованы как любые другие объекты. Это дает разработчикам мощный инструментарий для создания гибких программных решений.

Функции как объекты

Как объекты первого класса, функции в Python могут быть:

  • Присвоены переменной
  • Переданы как аргументы другим функциям
  • Возвращены из других функций
  • Включены в структуры данных, такие как списки, словари

Примеры:


def shout(text):
    return text.upper()
        
yell = shout
        
def greet(func):
    greeting = func("Hello")  # вызываем функцию
    print(greeting)
        
greet(shout)

В будущем мы ещё не раз коснёмся этой темы, а пока запомните — всё в Python является объектом. Функции, классы, ошибки, списки, модули — всё.

2
Задача
Модуль 1: Python Core, 4 уровень, 6 лекция
Недоступна
Случайная функция
Случайная функция
2
Задача
Модуль 1: Python Core, 4 уровень, 6 лекция
Недоступна
Случайный аргумент
Случайный аргумент
Комментарии (17)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Curioso Уровень 10
25 июня 2025
import random def print_random(a,b,c): text = (random.choice([a,b,c])) print (text) Вот правильный ответ!
Vladislav Уровень 25
30 декабря 2025
лишние внешние скобочки для (random.choice([a,b,c])) так лучше: text = random.choice([a,b,c])
Slevin Уровень 64
23 июня 2025
первая задача не засчитала вывод вида: print(generate_random_number()) хотя код рабочий
Peter Уровень 2
15 мая 2025
2 строки кода без .choice на базе знаний того что давали.
Михаил Грехов Уровень 4
10 марта 2025
import random def print_random(a,b,c): nums = [a,b,c] num = random.choice(nums) print(num) print_random(1,2,3) плагин отвечает что не верно решение все тоже самое, только функция в 1 строчку import random def print_random(a, b, c): print(random.choice([a, b, c])) print_random(1, 2, 3) ну расписано 3 строчками, почему-то не верно Т_Т
Александр Уровень 14
2 марта 2025
Забавно... мой код отличался ничем... вообще ничем не отличался, но программа валидатор решил, что при проверке нужно выдать "возникла непредвиденная ошибка". интересно... готовое решение(такое же) прошло проверку без проблем... к слову, у меня отсутствовали 2 пустые строки: после импорта и перед вызовом функции.
Bigcrash Уровень 9
22 апреля 2025
Нарушил pep8
Andrey Kapitanov Уровень 9
9 февраля 2025
Я может упустил, но как будто до этого ничего не рассказывали о random.choice. И как до этого додумать самому?
brainiac Уровень 17
10 февраля 2025
Ну как-то же додумал) Если не можешь решить задачу на текущем уровне и с помощью той информации которую ты прошел, иди дальше если материя позволяет, либо же в моменте гугли и ищи решение.
Optimus Уровень 7
11 февраля 2025
В современном мире нужно уметь гуглить все, это не в защиту авторов, а для саморазвития
Николай Уровень 17
12 февраля 2025
Согласен, лекции неудачные. Там в этом модуле random из 20 функций, самых основных всего пяток, почему нельзя было кратко перечислить их? Халтура.
Peter Уровень 2
15 мая 2025
Можно запросто решить без choice.2 строки кода на базе того что давали
Bravel Уровень 9 Expert
14 августа 2025
вот вариант без choice import random def print_random(a,b,c): choice = random.randint(1, 3) if choice == 1: print(a) if choice == 2: print(b) if choice == 3: print(c)
Vladislav Уровень 25
30 декабря 2025
топ
Anonymous #3527253 Уровень 21
1 декабря 2024
описание функций, дано для тех кто знает C/C++ или для новичков? Что такое "объекты первого класса"? Где в приведенном примере, хотя бы результат того. что будет в результате его работы (по аналогии как это было сделано выше)? Зачем присваивать функцию переменной, если в примере она не используется? оригинал:

def shout(text):
    return text.upper()
    
yell = shout

def greet(func): 
    greeting = func("Hello")  # вызываем функцию
    print(greeting)
    
greet(shout)
как по логике должно было бы быть:

def shout(text):
    return text.upper()
    
yell = shout

def greet(func): 
    greeting = func("Hello")  # вызываем функцию
    print(greeting)
    
greet(yell)  # используем переменную как ссылку на функцию, результат: HELLO
Sergey O. Уровень 64
5 февраля 2025
Что такое "объекты первого класса"? "объект" и "класс" это термины ООП - пока только ссылку на них тут оставили. т.к. концепция функции проще начали с неё, но т.к. они связаны, то упомянули про эту связь. Зачем присваивать функцию переменной? затем, чтоб показать как функция присваивается переменной. например, в этом месте рядом с функцией могли быть скобки или какое-то специальное ключевое слово и т.п. как по логике должно было бы быть по какой логике? например, логика: 4 и 10 строки - независимые примеры первых 2х пунктов из списка "функции могут". прикольно, что ты пытаешься учить тех, у кого учишься.
Kirill Dubovoy Уровень 45
11 июля 2024
в задаче "Случайный аргумент" при вызове функции не забудьте передать аргументы в нее, иначе задача не засчитывается.