第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用Python替換控制臺(tái)輸出

用Python替換控制臺(tái)輸出

慕田峪4524236 2019-11-25 20:16:01
用Python替換控制臺(tái)輸出我想知道如何在Python中創(chuàng)建一個(gè)漂亮的控制臺(tái)計(jì)數(shù)器,就像在某些C / C ++程序中一樣。我有一個(gè)循環(huán)做事,當(dāng)前的輸出是這樣的:Doing thing 0Doing thing 1Doing thing 2...什么是最簡單的就是讓最后一行更新;X things done.我在許多控制臺(tái)程序中看到過這種情況,我想知道是否/如何在Python中執(zhí)行此操作。
查看完整描述

3 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

一個(gè)簡單的解決方案就是"\r"在字符串之前寫入而不添加換行符; 如果字符串永遠(yuǎn)不會(huì)變短,這就足夠了......

sys.stdout.write("\rDoing thing %i" % i)sys.stdout.flush()

進(jìn)度條稍微復(fù)雜一點(diǎn)......這是我正在使用的東西:

def startProgress(title):
    global progress_x
    sys.stdout.write(title + ": [" + "-"*40 + "]" + chr(8)*41)
    sys.stdout.flush()
    progress_x = 0def progress(x):
    global progress_x
    x = int(x * 40 // 100)
    sys.stdout.write("#" * (x - progress_x))
    sys.stdout.flush()
    progress_x = xdef endProgress():
    sys.stdout.write("#" * (40 - progress_x) + "]\n")
    sys.stdout.flush()

您調(diào)用startProgress傳遞操作的描述,然后progress(x)在哪里x是百分比,最后endProgress()



查看完整回答
反對 回復(fù) 2019-11-26
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

更優(yōu)雅的解決方案可能是:

def progressBar(value, endvalue, bar_length=20):

        percent = float(value) / endvalue
        arrow = '-' * int(round(percent * bar_length)-1) + '>'
        spaces = ' ' * (bar_length - len(arrow))

        sys.stdout.write("\rPercent: [{0}] {1}%".format(arrow + spaces, int(round(percent * 100))))
        sys.stdout.flush()

用value和endvalue調(diào)用這個(gè)函數(shù),結(jié)果應(yīng)該是

Percent: [------------->      ] 69%



查看完整回答
反對 回復(fù) 2019-11-26
?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

另一個(gè)答案可能更好,但這就是我在做的事情。首先,我創(chuàng)建了一個(gè)名為progress的函數(shù),用于打印退格字符:

def progress(x):
    out = '%s things done' % x  # The output
    bs = '\b' * 1000            # The backspace
    print bs,
    print out,

然后我在主函數(shù)的循環(huán)中調(diào)用它,如下所示:

def main():
    for x in range(20):
        progress(x)
    return

這當(dāng)然會(huì)抹掉整條線,但是你可以把它搞得一團(tuán)糟去做你想要的。我最終使用這種方法制作了一個(gè)進(jìn)度條。




查看完整回答
反對 回復(fù) 2019-11-26
  • 3 回答
  • 0 關(guān)注
  • 414 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)