首页 > 解决方案 > 打印两个相邻的有换行符的字符串

问题描述

我目前正在尝试创建一个基于控制台的数字时钟,假设它是下午 12 点,我需要我的代码来输出:

    ██
    ██
    ██
    ██
    ██

和两个:

██████
    ██        
██████
██
██████

紧挨着,发生的事情是这样的:

    ██
    ██
    ██
    ██
    ██
██████
    ██        
██████
██
██████

我希望有一个人可以帮助我!谢谢!

标签: pythonpython-3.x

解决方案


您可以splitlines, 然后zip将结果列表放在一起并打印成对:

>>> for pair in zip(*map(str.splitlines, (one, two))): 
>>>     print(*pair) 
...
    ██ ██████
    ██     ██
    ██ ██████
    ██ ██
    ██ ██████

如果您想随着时间的推移更新这些值,那么使用 ,这将不会真正起作用,print因为您无法返回覆盖以前的行。相反,您可能想看看curses. 非常简单的例子,只需循环两位数:

import curses, time, itertools
times = itertools.cycle([(one, two), (two, one)])

s = curses.initscr()
while True:
    s.clear()
    for i, d in enumerate(next(times)):
        for k, l in enumerate(d.splitlines()):
            s.addstr(k, i*7, l)
    s.refresh()
    time.sleep(1)

推荐阅读