#python #function
Вопрос:
Приношу свои извинения, поскольку я очень новичок в Python и кодировании в целом, но я пытаюсь выполнить упражнение по созданию функций и форматированию в одном и том же. Здесь у меня есть функция, которую я написал для практики. Но я не могу заставить его работать правильно. Что я делаю не так с созданием этой функции.
Мой код:
def greeting(name):
name = input("What's your name: ")
return "Hi %s" % name
print(greeting())
Ошибка:
TypeError: greeting() missing 1 required positional argument: 'name'
Спасибо вам за вашу помощь. 🙂
Комментарии:
1. Вы определили свою функцию как требующую аргумента, но затем в своей функции вы перезаписываете эту переменную с помощью пользовательского ввода.
2. Я рекомендовал вернуться к вашим урокам и учебным пособиям о том, как определять функции Python. В частности, каков смысл или назначение кода внутри определения
(...)
функции. Вот один из документов Python: docs.python.org/3/tutorial/controlflow.html#defining-functions3. Спасибо @GinoMempin, я обязательно просмотрю эту документацию. 🙏🏽
Ответ №1:
Вам не нужно указывать имя в качестве параметра функции приветствия. Попробуйте это:
def greeting():
name = input("What's your name: ")
return "Hi %s" % name
print(greeting())
Комментарии:
1. Спасибо вам за вашу помощь!
Ответ №2:
Вы не хотите использовать name
в качестве аргумента, потому что вы создаете эту переменную внутри функции при вызове input()
def greeting():
name = input("What's your name: ")
return "Hi %s" % name
Вам также не нужна print()
функция, потому что ее возвращаемое значение (строка) выводится по умолчанию. Если вы сохранили возвращаемое значение greeting()
в объекте, вы можете затем распечатать этот объект
the_greeting = greeting()
print(the_greeting)