Функции домашнее задание

#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-functions

3. Спасибо @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)