Как исправить ошибку вывода в Python?Он продолжает отображать «Нет» - PullRequest
0 голосов
/ 20 апреля 2019

Я написал код для игры «20 вопросов», который должен угадывать число, выбранное пользователем, от 1 до 100. Но он снова и снова отображает один и тот же результат, как показано ниже.Пожалуйста, помогите мне найти ошибку.

Код:

a=1
b=10
for i in range(a,101):
    y=input(print("Is your number b/w",a,"to",b,"including both ? Answer Yes or No"))                                              
    if(y==Yes):
        j=a
        for j in range(a,b+1):
            x=input(print("Is your no.",j,"?"))
            if(x==Yes):
                print("Your number is",j)
            else:
                j=j+1
    if(y==No):
        break
    a=a+10
    b=b+10

Вывод выглядит так

Ваш номер от 1 до 10, включая оба?Ответ Да или Нет

Нет

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019
input(print("Is your number b/w",a,"to",b,"including both ? Answer Yes or No"))

Должно быть:

input("Is your number b/w " + str(a) + " to " + str(b) + " including both ? Answer Yes or No")

input принимает строку в качестве параметра, который печатается. Вы передали print в качестве параметра.

Поскольку print ничего не возвращает, следовательно, вы получите вывод как None

Кроме того, если вы не определили Yes и No как переменные, они должны быть заключены в одинарные или двойные кавычки:

В любом случае (не рекомендуется):

Yes = 'Yes'
No = 'No'
....

Или так (рекомендуется):

if y=='Yes':
    ....

Вы должны внести изменения таким образом для всех ваших input и if заявлений.

0 голосов
/ 20 апреля 2019

Посмотрите на некоторые примеры онлайн того, как используется функция ввода и что она принимает в качестве параметра.

Значение None, которое вы видите, является возвращением оператора печати. ​​

...