#python
#python
Вопрос:
У меня есть функция, которая, когда я запрашиваю ввод пользователя, работает нормально, но когда я пытаюсь вызвать функцию, она показывает мне сообщение: «Ошибка имени: имя не определено в Python»
Моя цель — создать формат bibformat, например, Джордж Р. Р. Мартин (1996). Игра престолов. Нью-Йорк: Bantam Spectra. Моя функция показана ниже.
def bibformat(author,title,city,publisher,year):
return author " (" str(year) "). " title ". " city ": " publisher "."
и часть, которая запрашивает ввод пользователя, показана ниже:
def bibformat_display():
author=input("Author:")
title=input("Title:")
city=input("City:")
publisher=input("Publisher:")
year=input("Year:")
print(bibformat(author,title,city,publisher,year))
Когда я пытаюсь запустить код, часть, запрашивающая ввод пользователя, работает нормально
bibformat_display()
Author: George R. R. Martin
Title: A Game of Thrones
City: New York City
Publisher: Bantam Spectra
Year: 1996
George R. R. Martin (1996). A Game of Thrones. New York City: Bantam Spectra.
Но когда я пытаюсь вызвать функцию, она показывает ошибку
bibformat(George R. R. Martin, A Game of Thrones, New York City, Bantam Spectra, 1996)
NameError: name 'sdfsa' is not defined
Я пытался изменить свою функцию, но она все еще не работает, может кто-нибудь мне помочь? Спасибо!
Комментарии:
1. Используйте правильные отступы в опубликованном коде
2.
sdfsa
не отображается в том, что вы опубликовали? Посмотрите на строку, указанную в ошибке3. Разве вы не нашли лучшего способа сделать это, использовать
f
строки дляreturn
и заключать имена в кавычки, напримерbibformat('George R. R. Martin', 'A Game of Thrones', 'New York City', 'Bantam Spectra', 1996)
Ответ №1:
Вы передаете текст без кавычек, поэтому Python ожидает переменную.
Решение
Поместите текст в кавычки и передайте его функции следующим образом:
bibformat('George R. R. Martin', 'A Game of Thrones', 'New York City', 'Bantam Spectra', 1996)