簡體   English   中英

有什么辦法可以進一步縮小此代碼?

[英]Is there any way to minify this code further?

在這里,我有一個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!")

看起來還可以 您實際上並不能使它更短,但是使用處理用戶輸入的get_number函數可以使其可讀性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!')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM