Jack the Christian Ответов: 2

Как добавить цикл while true внутри цикла while?


Я делаю игру в угадайку чисел на Python для школьного проекта и столкнулся с двумя проблемами, которые не могу найти решения. У меня есть два вопроса, но я решил опубликовать их как один вопрос, чтобы не спамить код проекта.

Как добавить цикл while true внутри цикла while?
Я нашел ловкий трюк, когда вы можете попросить игру продолжать запрашивать число вместо того, чтобы заканчивать весь код, когда кто-то случайно вставляет букву.

Что я уже пробовал:

I'm making a number guessing game on Python for a school project and have come upon two problems that I cannot find a solution to. I have two questions but decided to post as one question in order to not spam code project.

How do I add a while true loop inside a while loop?
I found a neat trick where you can ask the game to keep asking for a number instead of ending the whole code when someone accidentally inserts a letter.

2 Ответов

Рейтинг:
16

Richard MacCutchan

Существует ряд проблем с вашим кодом, которые необходимо устранить. Во-первых, вам не нужно def main(): в начале. В отличие от компилируемых языков программирования, в Python просто начинается с начала. Я также добавил некоторые операторы печати, чтобы вы могли видеть прогресс, который полезен для отладки, и удалил дубликаты битов, таким образом:

import random

hidden = random.randint(1,100)  
print("hidden: ", hidden)

GuessesTaken = 0
while GuessesTaken < 6:
    GuessesTaken = GuessesTaken + 1;
    GuessesLeft = 6 - GuessesTaken;

    while True:
        try:
            guess = int(input("Guess which number I am thinking of: "))
        except ValueError:
            guess = print("That's not a number, guess a NUMBER!")
            continue
        else:
            break

    print("hidden:", hidden, "guess:", guess)
    if guess < hidden:
        print("Your guess is too low, you have ", GuessesLeft, " guesses left")
        if GuessesLeft==0:
            break
        else:
            continue

    elif guess > hidden:
        print("Your guess is too high, you have ", GuessesLeft, " guesses left")
        if GuessesLeft==0:
            break
        else:
            continue

    elif guess==hidden:
        print("Well done! That is the correct number")
        break


Рейтинг:
11

Jack the Christian

while True:
    try:
        guess = int(input("Guess which number I am thinking of: "))
    except ValueError:
        guess = print("That's not a number, guess a NUMBER!")
        continue
    else:
        break

print("hidden:", hidden, "guess:", guess)
if guess < hidden:
    print("Your guess is too low, you have ", GuessesLeft, " guesses left")
    if GuessesLeft==0:
        break
    else:
        continue