#python
#python
Вопрос:
Резюме: я только начал изучать python и пробовал программу угадывания нет.(Ai, как автоматизировать скучные вещи). Поэтому я ввел код со своей собственной логикой вместо того, чтобы просто копировать его, и это дает мне неожиданные результаты. Я использую Python IDE (www.python.org )
Что я пытаюсь сделать: угадайте номер. между 1-20 за 6 попыток.
Проблема:
Для всех догадок ниже номера «11» он напрямую дает мне ответ вместо того, чтобы позволить мне предпринять дальнейшие попытки. Проблема в том, что я ничего не упомянул о no. меньше 11 или около того.
Что я пробовал:
- В книге, которую я читаю, есть код для того же, и я попытался проверить его с помощью своего кода, и он тот же, за исключением переменных (я имею в виду, что логика написана правильно). Так что в идеале это должно сработать. и я запутываюсь в том, что вызывает проблему.
- Я пытался искать в сети различные решения кода, которые не выполняются должным образом для конкретного кода, и не нашел ничего, что могло бы мне помочь.
Код:
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