【Python】控制台输出打印机效果

前言:这个效果其实不是我刻意去研究的,起因在于最近使用ChatGPT与一款国产的AI,发现国产的AI没有打印机输出的效果(这种效果自我感觉是一个比较好的点),无意中发现python可以做。

话不多说,上代码!

控制台打印机


import time

def type_out(text):
    for char in text:
        print(char, end='', flush=True)
        time.sleep(0.5) # 打印效果延迟


type_out("Hello, World!")

这段代码使用了一个for循环遍历每个字符输出到控制台,同时使用flush=True参数强制刷新输出缓冲区,从而实现逐个输出的效果。为了使输出效果更加逼真,函数还使用time.sleep()函数添加延迟。

彩色打印机


import time

def type_out(text):
    colors = {
    
    'red': '\033[91m', 'green': '\033[92m', 'yellow': '\033[93m', 'blue': '\033[94m'}
    end_color = '\033[0m'
    text_iter = iter(text)
    for char in text_iter:
        if char == '[': # 遇到'['时开始设置颜色
            color = ''
            while True:
                char = next(text_iter)
                if char == ']': # 遇到']'时停止设置颜色
                    break
                color += char
            print(colors.get(color.lower(), ''), end='', flush=True)
        elif char == ']':
            print(end_color, end='', flush=True)
        else:
            print(char, end='', flush=True)
            time.sleep(0.2)


type_out("Hello, [red]World![yellow] This is a [blue]test![end]")

打印彩色与上面的相比在于定义颜色。首先定义了基本颜色符号和值。接着使用iter函数将输入文本转化为一个可迭代对象text_iter,然后在遍历时使用next函数获取下一个字符。同时,在输出颜色代码时,使用colors.get(color.lower(), '')来获取颜色代码对应的颜色字符串,如果颜色代码不存在则返回一个空字符串,避免出现未知颜色代码导致的错误。

猜你喜欢

转载自blog.csdn.net/m0_56170277/article/details/129761459