Как обработать ValueError? - PullRequest
       7

Как обработать ValueError?

1 голос
/ 08 апреля 2020

Итак, вот небольшая игра в угадывание, в которой у вас есть 9 попыток угадать число от 0 до 100. Однако, если пользователь вводит строковое значение, он получает ValueError. Как мне справиться с ValueError?

for Guesses in range(9):
        print('Take a guess.')

        Guess = int(input())

        if Guess < 0:
            print('Please enter a positive number')
        elif Guess > 100:
            print('The number is only between 0 and 100')
        elif Guess < Number:
            print('Higher...')
        elif Guess > Number:
            print('Lower...')           
        else:
            print('Spot on!')
            break # Guess was correct

1 Ответ

1 голос
/ 08 апреля 2020

Используйте try и except. Попробуйте это:

for Guesses in range(9):
        print('Take a guess.')
        while True:
            try:
                Guess = int(input())
                break
            except ValueError:
                print("Try again. That is not a number")

        if Guess < 0:
            print('Please enter a positive number')
        elif Guess > 100:
            print('The number is only between 0 and 100')
        elif Guess < Number:
            print('Higher...')
        elif Guess > Number:
            print('Lower...')           
        else:
            print('Spot on!')
            break # Guess was correct

Небольшое улучшение:

for Guesses in range(9):
        print('Take a guess.')
        while True:
            try:
                Guess = int(input())
                if (0 > Guess):
                    print('Please enter a positive number')
                elif (100 < Guess):
                    print('The number is only between 0 and 100')
                else:
                    break
            except ValueError:
                print("Try again. That is not a number")
        elif Guess < Number:
            print('Higher...')
        elif Guess > Number:
            print('Lower...')           
        else:
            print('Spot on!')
            break # Guess was correct

Кроме того, рекомендуется, чтобы имена переменных не были в верхнем регистре.

...