WedX - журнал о программировании и компьютерных науках

Игра «Угадай число» Python (цикл while)

Я пытаюсь создать игру, которая попросит пользователя сделать предположение, и если предположение меньше, чем случайно сгенерированное целое число, то оно напечатает ("Слишком мало! Попробуйте еще раз", если предположение выше, чем предположение затем он напечатает («Слишком много! Попробуйте еще раз»), и если предположение равно случайному целому числу, он спросит пользователя, хочет ли он сыграть еще раз. Вот где у меня возникли проблемы с тем, как я могу вернуть код обратно, чтобы воссоздать случайное целое число и запустить цикл, если введено «y»?

import random
def main():
    again='y'
    count=0

while again=='y':
    print('I have a number between 1 to 1000.')
    print('Can you guess my number?')
    print('Please type your first guess') 
    
    number=random.randint(1, 1000)
    print(number)

    guess=int(input(''))
   
    while guess !='':
        if  guess>number:
            print('Too high, try again!')
            count+=1
            print('count:',count)
            guess=int(input(''))
            
            
        elif guess<number:
            print('Too low, try again!')
            count+=1
            print('count:',count)
            guess=int(input(''))

            
        elif guess==number:
            print('Excellent!! You guessed the number!!!!')
            print('Would you like to try again? (y or n)')
            count+=1
            print('count:',count)
            again=str(input(''))
        
        else:
            print('You entered an invalid value')

 main()
25.01.2021

Ответы:


1

Вы можете сделать это, просто добавив одну строку с вашим кодом, используйте break во внутреннем цикле while, в этой части ниже он разорвет внутренний цикл, если пользователь точно угадал число с получением нового ввода again, затем, если again = 'y' он снова запустит внешний цикл и снова сгенерирует random, иначе игра закончится.

elif guess==number:
    print('Excellent!! You guessed the number!!!!')
    print('Would you like to try again? (y or n)')
    count+=1
    print('count:',count)
    again=str(input(''))
    break # added this `break`, it will break the inner loop
25.01.2021

2

Поскольку вы находитесь в двух петлях, вы должны разорвать самую глубокую. Вот два способа для вашей ситуации.

Каждое обновление предполагает: '':

        elif guess==number:
            print('Excellent!! You guessed the number!!!!')
            print('Would you like to try again? (y or n)')
            count+=1
            print('count:',count)
            again=str(input(''))
            guess=''

Или добавьте перерыв после ввода снова:

        elif guess==number:
            print('Excellent!! You guessed the number!!!!')
            print('Would you like to try again? (y or n)')
            count+=1
            print('count:',count)
            again=str(input(''))
            break
25.01.2021
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]