Пока условно л oop в Python - PullRequest
       6

Пока условно л oop в Python

0 голосов
/ 19 февраля 2020

Я пишу простую функцию рекомендации книг в Python, которая принимает ответ и рекомендует книгу под названием «Undoctored». В приведенном ниже коде, когда входное значение равно «Нет», l oop по-прежнему дает мне последний ответ «Интересное чтение». Что не так с моим while l oop?

def recommend_book():
    current_book = input("What book are you reading currently? ")
    while input != "Undoctored":
      if input == "None":
        return("Go pick up a book!")
      else:    
        return(f'"{current_book}" is an interesting read. I also recommend "Undoctored" by Dr. William Davis.')

Я также попытался добавить «break» после первого оператора if, и это все еще не сработало.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Как уже говорили другие, вы вызываете input, но вам нужно вызвать current_book. Попробуйте этот код:

def recommend_book():
    current_book = input("What book are you reading currently? ")
    while current_book != "Undoctored":
      if current_book == "None":
        return(print("Go pick up a book!"))
      else:    
        return(print(f'"{current_book}" is an interesting read. I also recommend "Undoctored" by Dr. William Davis.'))
0 голосов
/ 19 февраля 2020

Отслеживайте переменные, которые вы используете!

current_book = input("What book are you reading currently?")

Эта строка кода устанавливает переменную с именем current_book, и значение этой переменной будет любым пользователем входы.

Тем не менее, ваши следующие строки кода:

while input != "Undoctored":
      if input == "None":
...

В частности, while input != "Undoctored": не проверяет, что переменная current_book, она проверяет, что переменная input есть. Поскольку input является стандартной функцией, она, конечно, не равна «Нет». :)

...