Python

Программа не определяет количество использованных попыток. Почему?

Делаю игру угадай число - не хочет заканчивать игру на 10 попытках (не выключает переменную flag). Не видит их количество вообще - даже не отправляет что оно увидело что попытки были использовнны. Помогите, пожалуйста ;-;
 # Игра Угадай Число 
import random

num = random.randint(1, 50)
guesses = 0
flag = True

while flag == True:
choice = int(input("Угадайте число (от 1 до 50) : "))
if (choice == num):
flag == False
aftergamechoice = input(f"Верно! Вы угадали число за {guesses} попыток. Хотите попробовать ещё раз? (y/n): ")
if (aftergamechoice == "y"):
flag == True
guesses = 0
elif (aftergamechoice == "n"):
print("Пока!")
elif (choice > num):
print(f"Не верно! Ваше число больше загаданного. Попыток использовано : {guesses}.")
guesses += 1
elif (choice < num):
print(f"Не верно! Ваше число меньше загаданного. Попыток использовано : {guesses}.")
guesses += 1

if (guesses == 10):
print("10 попыток")
flag == False
aftergamechoice = input("Вы проиграли, использовав все попытки. Хотите попробовать ещё? (y/n): ")
if (aftergamechoice == "y"):
flag = True
guesses = 0
elif (aftergamechoice == "n"):
print("Пока!")
SM
Sasha Motorkin
98
Потому что нет условия выхода из цикла по количеству попыток, он выполняется до тех пор пока не введёте правильное число.
Вот это надо в тело цикла вставить:
if (guesses == 10):
print("10 попыток")
flag == False
Александр Аничкин
Александр Аничкин
801
Лучший ответ
Sasha Motorkin Спасибо огромное!
Ошибка заключается в использовании оператора сравнения '==' вместо оператора присваивания '=' при изменении значения переменной flag внутри цикла while. В связи с этим, значение переменной flag не изменяется, и цикл продолжается бесконечно.

Исправленный код должен выглядеть следующим образом:

```
import random

num = random.randint(1, 50)
guesses = 0
flag = True

while flag:
choice = int(input("Угадайте число (от 1 до 50): "))
if choice == num:
flag = False
aftergamechoice = input(f"Верно! Вы угадали число за {guesses} попыток. Хотите попробовать еще раз? (y/n): ")
if aftergamechoice == "y":
flag = True
guesses = 0
elif aftergamechoice == "n":
print("Пока!")
elif choice > num:
print(f"Не верно! Ваше число больше загаданного. Попыток использовано: {guesses}.")
guesses += 1
elif choice < num:
print(f"Не верно! Ваше число меньше загаданного. Попыток использовано: {guesses}.")
guesses += 1
if guesses == 10:
print("10 попыток")
flag = False
aftergamechoice = input("Вы проиграли, использовав все попытки. Хотите попробовать еще? (y/n): ")
if aftergamechoice == "y":
flag = True
guesses = 0
elif aftergamechoice == "n":
print("Пока!")
```

Также был исправлен вывод сообщений о количестве использованных попыток для случаев, когда игрок угадал число или проиграл, в соответствии с логикой игры.
Федя Капканов
Федя Капканов
14 368