Я изучаю Python и пытаюсь написать простую программу для книжного магазина, используя функции и пользовательский ввод. Он принимает параметры (книга, цена) и печатает "заказ:" выбор вашей книги "стоит" x доллар "" , но я не могу заставить его работать. Не могли бы вы проверить мой код и помочь мне?

def book_store(book,price):
    book_choice = input("Enter books title: ")
    book_price = input ("Enter books price: ")

    return "Title: " + book_choice + ", costs " + book_price

print (book_store(book_choice, book_price))

NameError Traceback (последний вызов был последним) в () 10 11 ---> 12 print (book_store (book_choice, book_price))

NameError: имя 'book_choice' не определено

2
user9126689 25 Фев 2018 в 22:12

4 ответа

Лучший ответ

Ваш код сейчас избыточен, он может быть:

def book_store():

    book_choice = input("Enter books title: ")
    book_price = input("Enter books price: ")

    return "Title: " + book_choice + ", costs " + book_price

print(book_store())

ИЛИ ЖЕ:

def book_store(book, price):

    return "Title: " + book + ", costs " + price


book_choice = input("Enter books title: ")
book_price = input("Enter books price: ")

print (book_store(book_choice, book_price))

Обе версии работают.

Также убедитесь, что вы используете Python 3, иначе input не возвращает строку.

0
A.Wenn 25 Фев 2018 в 19:23

Вы передаете два параметра, которые не используются, и не инициализируете их в любом случае. Они лишние. Следующие работы:

def book_store():
    book_choice = input("Enter books title: ")
    book_price = input ("Enter books price: ")

    return "Title: " + book_choice + ", costs " + book_price


print (book_store())

Дает :

Enter books title: Good Python
Enter books price: 2.30
Title: Good Python, costs 2.30
3
cdarke 25 Фев 2018 в 19:21

Вы получаете ошибку, что book_choice не определен. Это потому, что вы определяете book_choice внутри функции, а не вне ее. Теперь, как у вас есть, ваша функция должна принимать нулевые аргументы. Но если вы хотите передать ему аргументы book_choice и book_price, вы должны определить эти переменные вне функции.

0
adamkgray 25 Фев 2018 в 19:23
def book_store(book,price):


        book_choice = input("Enter books title: ")
        book_price = input ("Enter books price: ")

        return "Title: " + book_choice + ", costs " + book_price


print (book_store(book_choice, book_price))

Ожидается, что book_choice и book_price будут чем-то здесь, может быть, переменными, которые не были определены. Вы передаете эти переменные в функцию book_store. Это было об ошибке, пока не ясно, чего вы хотите достичь.

Может быть, вы можете просто. используйте этот принт.

print(book_store())
-1
arundeepak 25 Фев 2018 в 19:22