Python

Как запустить функцию в Python: вызов, аргументы и типичные ошибки новичков

Чтобы запустить функцию в Python, нужно вызвать ее: написать имя функции и круглые скобки.

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


Чтобы запустить функцию в Python, нужно вызвать ее: написать имя функции и круглые скобки

def say_hello():
    print("Привет")

say_hello()

Если написать только def, функция будет создана, но код внутри нее не выполнится. Python выполняет тело функции только тогда, когда вы ее вызываете

Самый простой пример

def greet():
    print("Здравствуйте")

print("До вызова")
greet()
print("После вызова")

Вывод

До вызова
Здравствуйте
После вызова

Строка greet() — это и есть запуск функции

Почему функция не запускается сама

Когда Python видит def, он запоминает функцию под именем, но не выполняет ее тело

def greet():
    print("Привет")

Этот код только создал функцию. Чтобы она сработала, нужно добавить вызов

greet()

Это удобно: функцию можно определить один раз, а запускать сколько угодно раз

greet()
greet()
greet()

Как запустить функцию с аргументом

Если функция принимает параметр, значение передают внутрь скобок

def greet(name):
    print(f"Привет, {name}")

greet("Динар")

Вывод

Привет, Динар

name — параметр функции

"Динар" — аргумент, который мы передали при вызове

Как запустить функцию с несколькими аргументами

def add(a, b):
    print(a + b)

add(10, 15)

Вывод

25

Количество аргументов должно совпадать с параметрами, если у параметров нет значений по умолчанию

Ошибка

def add(a, b):
    print(a + b)

add(10)

Python скажет, что не хватает аргумента b

Как вернуть результат из функции

Если функция должна не просто печатать, а отдавать значение, используйте return

def add(a, b):
    return a + b

result = add(10, 15)
print(result)

Вывод

25

return возвращает значение туда, где функция была вызвана

Это лучше, чем всегда печатать внутри функции, потому что результат можно использовать дальше

total = add(10, 15)
print(total * 2)

Как вызвать функцию после input()

def greet(name):
    return f"Привет, {name}"

user_name = input("Как вас зовут? ")
message = greet(user_name)
print(message)

Здесь input() получает имя, потом это имя передается в функцию greet()

Как запустить функцию из другого файла

Структура проекта

project/
  helpers.py
  main.py

Файл helpers.py

def greet(name):
    return f"Привет, {name}"

Файл main.py

from helpers import greet

print(greet("Динар"))

Запуск

python main.py

Важно: запускайте main.py, а не helpers.py, если главный сценарий находится в main.py

Что значит if __name__ == «__main__»

В учебных проектах часто пишут так

def main():
    print("Программа запущена")

if __name__ == "__main__":
    main()

Смысл: функция main() запустится только тогда, когда файл запустили напрямую

Это удобно, если файл можно и запускать как программу, и импортировать из других файлов

Для новичка пока достаточно запомнить: вызов main() внутри этого блока запускает основную функцию программы

Частые ошибки

Забыл круглые скобки

def greet():
    print("Привет")

greet

Так функция не запустится. Вы просто сослались на объект функции

Нужно

greet()

Вызвал функцию до объявления

greet()

def greet():
    print("Привет")

Python выполняет файл сверху вниз. На момент greet() функция еще не создана

Правильно

def greet():
    print("Привет")

greet()

Функция возвращает None

Если в функции нет return, она возвращает None

def add(a, b):
    print(a + b)

result = add(2, 3)
print(result)

Вывод

5
None

Если нужен результат, пишите return

def add(a, b):
    return a + b

Перепутал print и return

print() показывает значение в консоли

return возвращает значение из функции

Для расчетов чаще нужен return, для вывода пользователю — print()

Мини-задача

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

def apply_discount(price, discount_percent):
    discount = price * discount_percent / 100
    return price - discount

final_price = apply_discount(1000, 15)
print(final_price)

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

850.0

Потом попробуйте получить данные через input()

def apply_discount(price, discount_percent):
    discount = price * discount_percent / 100
    return price - discount

price = float(input("Цена: "))
discount = float(input("Скидка в процентах: "))

print(apply_discount(price, discount))

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x