Python
Function_name в Python: как ввести имя через input() и передать его в функцию
Если вы увидели в учебном примере function_name, важно понять одну вещь: это не специальная команда Python. Обычно так обозначают «имя вашей функции»
То есть вместо function_name нужно написать нормальное имя, которое описывает действие функции
Например:
def greet_user(name):
return f"Привет, {name}!"
Здесь greet_user — это имя функции, а name — параметр, куда мы передадим имя пользователя
Как ввести имя в Python
Для ввода текста с клавиатуры используют input()
name = input("Введите имя: ")
print(name)
Когда программа дойдет до input(), она остановится и будет ждать, пока пользователь введет текст в терминале
Если пользователь введет Динар, переменная name получит строку Динар
Полный пример с функцией
Создайте файл hello_name.py
def greet_user(name):
return f"Привет, {name}!"
user_name = input("Введите имя: ")
message = greet_user(user_name)
print(message)
Запустите файл
Windows:
py hello_name.py
python3 hello_name.py
В консоли появится приглашение:
Введите имя:
Введите свое имя и нажмите Enter
Пример:
Введите имя: Динар
Привет, Динар!
Что здесь происходит
Функция создается строкой def greet_user(name):
greet_user — имя функции
name — параметр функции
input("Введите имя: ") показывает вопрос и ждет ввод пользователя
user_name хранит введенное имя
greet_user(user_name) вызывает функцию и передает туда введенное имя
print(message) выводит готовое сообщение в консоль
Почему function_name вызывает путаницу
В учебниках иногда пишут абстрактный шаблон:
def function_name(parameter):
return parameter
Такой код технически может работать, но для новичка он выглядит так, будто function_name — особое слово
На самом деле имя функции выбираете вы
def say_hello(name):
return f"Привет, {name}!"
def make_greeting(name):
return f"Здравствуйте, {name}"
Главное, чтобы имя функции было понятным и чтобы вы вызывали именно его
Неправильный и правильный вариант
Неправильно, если вы вызываете функцию, которую не создавали
def greet_user(name):
return f"Привет, {name}!"
user_name = input("Введите имя: ")
print(function_name(user_name))
Python выдаст ошибку:
NameError: name 'function_name' is not defined
Правильно:
def greet_user(name):
return f"Привет, {name}!"
user_name = input("Введите имя: ")
print(greet_user(user_name))
Если функция называется greet_user, вызывать нужно greet_user, а не function_name
input() всегда возвращает строку
Даже если пользователь введет число, input() вернет текст
age = input("Введите возраст: ")
print(type(age))
Если ввести 25, результат будет:
<class 'str'>
Для имени это нормально, потому что имя и должно быть строкой
Для числа нужна конвертация:
age = int(input("Введите возраст: "))
Проверка пустого имени
Пользователь может просто нажать Enter. Добавим проверку
def greet_user(name):
if name == "":
return "Вы не ввели имя"
return f"Привет, {name}!"
user_name = input("Введите имя: ").strip()
message = greet_user(user_name)
print(message)
Метод .strip() убирает лишние пробелы в начале и конце строки
Частые ошибки
NameError: function_name is not defined
Вы вызвали function_name, но такой функции в коде нет. Замените function_name на настоящее имя вашей функции
IndentationError
Внутри функции строки должны быть с отступом
def greet_user(name):
return f"Привет, {name}!"
Программа ничего не делает
Возможно, она ждет ввод после input(). Посмотрите на терминал и введите имя, затем нажмите Enter
Функция печатает None
Если внутри функции нет return, она вернет None. Если хотите сохранить сообщение в переменную, используйте return
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Как задать, чему равно a в Python: переменные, input и первые вычисления
- Как закончить функцию в Python: отступ, return, pass и выход из программы
- Как запустить функцию в Python: вызов, аргументы и типичные ошибки новичков
- Какой тип данных возвращает input() в Python: строка, числа и преобразование