Для всех догадок ниже 11 он показывает мне ответ вместо того, чтобы позволить мне попробовать дальше? (Python, угадайте число)

#python

#python

Вопрос:

Резюме: я только начал изучать python и пробовал программу угадывания нет.(Ai, как автоматизировать скучные вещи). Поэтому я ввел код со своей собственной логикой вместо того, чтобы просто копировать его, и это дает мне неожиданные результаты. Я использую Python IDE (www.python.org )

Что я пытаюсь сделать: угадайте номер. между 1-20 за 6 попыток.

Проблема:
Для всех догадок ниже номера «11» он напрямую дает мне ответ вместо того, чтобы позволить мне предпринять дальнейшие попытки. Проблема в том, что я ничего не упомянул о no. меньше 11 или около того.

Что я пробовал:

  1. В книге, которую я читаю, есть код для того же, и я попытался проверить его с помощью своего кода, и он тот же, за исключением переменных (я имею в виду, что логика написана правильно). Так что в идеале это должно сработать. и я запутываюсь в том, что вызывает проблему.
  2. Я пытался искать в сети различные решения кода, которые не выполняются должным образом для конкретного кода, и не нашел ничего, что могло бы мне помочь.

Код:

 import random
print('I have selected a random no. from 1-20')
print('You have 6 tries to guess the no.')
X=random.randint(1, 20)
for i in range(1,7):
    print('Enter your no.')
    A=int(input())
    if A>X:
        print('The no is smaller than you chose')
    elif A>X:
        print('The no is larger than you chose')
    else:
        break
if A==X:
    print ('Yes, you guessed the right no. in' '' str(i) 'tries')
else:
    print ('No, my no. was' ' ' str(X))
 

Комментарии:

1. Внимательно посмотрите на условие elif и сравните это условие с тем, что указано в if .

Ответ №1:

У вас есть A>X как if в первой, так и в первой elif ветке. Условие для elif должно быть A<X :

 if A>X:
    print('The no is smaller than you chose')
elif A<X: # Here!
    print('The no is larger than you chose')
else:
    break