【问题标题】:Python printing only when variable changesPython仅在变量更改时打印
【发布时间】:2018-02-28 22:27:15
【问题描述】:

我正在做一个涉及命令行界面的小项目。我希望能够像命令行一样打印一行字符。我可以得到尺寸

width, height = get_terminal_size()

如果我想打印一个与终端宽度一样长的块字符,我可以使用以下方法:

import os
block = unichr(0x2588)
while True:
    os.system('cls')
    print block*width

但是,这看起来很不稳定,因为它每次都在绘制和重新绘制行。我试图找到一种仅在宽度发生变化时才绘制它的方法,但我正在努力这样做。任何帮助将不胜感激。

【问题讨论】:

  • 通常你的循环看起来像:while 1 { cls;打印富;冲洗输出;睡觉 1}。这应该足以解决您看到的问题。
  • @Claris 我不确定你的意思
  • 您需要一份睡眠声明。此外,作为 cls 的替代方法,您可以执行以下操作: print "\rfoo",
  • @Claris 你需要from __future__ import braces

标签: python printing interface command-line-interface


【解决方案1】:

只检查宽度是否改变。

while True:
    os.system('cls')
    if width!=last_width:
        print block*width
        last_width = width

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    相关资源
    最近更新 更多