有什么办法可以进一步缩小此代码?

时间:2018-10-27 21:18:04

标签: python python-3.x minify

在这里,我有一个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 :(得分:3)

看起来不错。您实际上并不能使它变得更短,但是可以使用get_number函数来使用户输入更加可读。另外,除了使用exit,还可以break循环。

一旦Assignment Expressions被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!')