@Sizeable

Как закончить работу цикла?

Здравствуйте!

Изучаю Python второй день, решил тут справиться с такой задачкой: пользователь вводит число от 1 до 100, а компьютер методом перебора пытается "угадать" введенное пользователем число. Программа, вроде как, работает. Для перестраховки сделал проверку отгаданного компьютером числа: оно должно совпадать с введенным пользователем, плюс добавил возможность проследить, на какой именно итерации компьютер "отгадал" число.

Вот код:

import random
user = int(input("Введите число от 1 до 100: "))
pc = 0
tries = 0

while (pc != user):
    print("Итерация №", tries)
    pc = random.randint(1, 100)
    tries += 1
print("Компьютер победил на следующей итерации: ", tries)
print("Проверка результата компьютера.", "Вы ввели: ", user, "Компьютер нашел: ", pc)
if (tries >= 101):
    print("Компьютер проиграл")


Вопрос мой в следующем: как прекратить работу цикла и вывести "Компьютер проиграл" в том случае, если он истратил 100 попыток поиска заданного числа?

Пытался что-то намудрить с break и exit(), но ничего не выходит. В лучшем случае цикл за счет break прерывается, однако вместе с "Компьютер проиграл" выводится и "Компьютер победил".
  • Вопрос задан
  • 249 просмотров
Решения вопроса 2
longclaps
@longclaps
Для второго дня отменный говнокод.
import random

user = int(input("Введите число от 1 до 100: "))
pc = 0
tries = 0
count = 0
while pc != user:
    count += 1
    if count == 100:
        print("Компьютер проиграл")
        break
    print("Итерация №", tries)
    pc = random.randint(1, 100)
    tries += 1
else:
    print("Компьютер победил на следующей итерации: ", tries)
    print("Проверка результата компьютера.", "Вы ввели: ", user, "Компьютер нашел: ", pc)
Ответ написан
Astrohas
@Astrohas
Python/Django Developer
import random
user = int(input("Введите число от 1 до 100: "))
pc = 0
tries = 0

won = False

while not winned:
    print("Итерация №", tries)
    pc = random.randint(1, 100)
    tries += 1
    if tries == 101:
        break
    won = pc == user
if won:
    print("Компьютер победил на следующей итерации: ", tries)
    print("Проверка результата компьютера.", "Вы ввели: ", user, "Компьютер нашел: ", pc)
else:
    print('Компютер не нашел')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nurakhov
import random
number = 5 #int(input("Введите число от 1 до 100: "))

x = 1
y = 100
guess = random.randint (x, y)
tries = 1

if number == guess:
    print('С первой попытки!')
else:
    while guess != number:
        if number > guess:
            print("Загаданное число больше: ", guess)
            x = guess + 1
            guess = random.randint(x, y)
            tries += 1
            if tries > 100:
                print('Проиграл!')
                break
        elif number < guess:
            print("Загаданное число меньше: ", guess)
            y = guess - 1
            guess = random.randint(x, y)
            tries += 1
            if tries > 100:
                print('Проиграл!')
                break
    print ('Загадано число', number)
    print ('В яблочко, с', tries, 'попытки')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы