Есть ли способ еще больше минимизировать этот код? - PullRequest
0 голосов
/ 28 октября 2018

Здесь у меня есть блок скрипта Python.Это простая игра в догадки.Мне было интересно, как далеко я могу свести это?Есть ли еще какие-нибудь хитрости, которые я могу использовать для удаления постороннего кода, кроме импорта модулей?

from random import randint
n = randint(1,20)
print("I'm thinking of a number 1-20. Keep guessing until you get it!")
while True:
    try:
        g = int(input(""))
    except(ValueError):
        print("INPUT MUST BE AN INTEGER!")
    else:
        if g == n:
            print("YOU WIN!")
            exit()
        if g > n:
            print("Too high!")
        else:
            print("Too low!")

1 Ответ

0 голосов
/ 28 октября 2018

выглядит хорошо. Вы не можете сделать его намного короче, но немного более читабельным с помощью функции get_number, которая обрабатывает ввод данных пользователем. Кроме того, вместо использования exit вы можете просто break свой цикл.

Как только Выражения назначения попадут в Python 3.8, вы даже сможете избавиться от этого break:

from random import randint

def get_number():
    'ask for an integer until user provides an integer'
    while True:
        try:
            g = int(input('enter integer: '))
            return g
        except ValueError:
            print('INPUT MUST BE AN INTEGER!')

secret = random.randint(1, 20)
while (g := get_number()) != secret:
    if g > n:
        print('too high!')
    else:
        print('too low!')

print('YOU WIN!')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...