Кодовый блок
if my_num < 1 or my_num > 10:
raise ValueError()
if comp > my_num:
print("Computer guessed", comp,"to High")
comp = random.randint(1,10)
elif comp < my_num:
print("Computer guessed", comp,"to Low")
comp = random.randint(1,10)
print("Computer the right number!" , comp)
print("Computer guessed the right number in", counter, "attempts!")
break
кажется причиной вашей проблемы (хотя это не совсем то, что вы описываете).Что бы ни случилось, всегда будет сказано, что компьютер набрал правильный номер.Вы должны добавить еще что-то вроде этого:
if my_num < 1 or my_num > 10:
raise ValueError()
if comp > my_num:
print("Computer guessed", comp,"to High")
comp = random.randint(1,10)
elif comp < my_num:
print("Computer guessed", comp,"to Low")
comp = random.randint(1,10)
else:
print("Computer the right number!" , comp)
print("Computer guessed the right number in", counter, "attempts!")
break
Кроме того, начало блока кода также нуждается в некотором исправлении.Код попросит вас ввести новый номер для каждого цикла и , счетчик должен обновляться каждый цикл.Если вы реализуете это, начало кода будет выглядеть примерно так:
if option == 2:
import random
print("Computer guess my number")
print()
my_num = input("Enter a number betrween 1 and 10 for the computer to guess: ")
my_num = int(my_num)
counter = 1
while True:
try:
counter += 1
print()
comp = random.randint(1,10)
Это также означает следующее:
if comp > my_num:
print("Computer guessed", comp,"to High")
comp = random.randint(1,10)
elif comp < my_num:
print("Computer guessed", comp,"to Low")
comp = random.randint(1,10)
Может быть изменено на:
if comp > my_num:
print("Computer guessed", comp,"to High")
elif comp < my_num:
print("Computer guessed", comp,"to Low")
Поскольку компьютер все равно будет делать новое предположение.
К вашему сведению, я рекомендую выполнять все операции импорта в верхней части файла, а не в середине кода.
Кроме того, он «слишком высокий / низкий», а не «высокий / низкий»;)