zoukankan      html  css  js  c++  java
  • Python 必杀技:用 print() 函数实现的三个特效(转)

    print() 应该是初学者最先接触到的第一个 Python 函数,因为几乎所有的启蒙课程都是从 print(‘Hello world’) 开始的。事实上, print() 也是程序员使用频率最高的函数之一,同时也是很多程序员喜欢的代码调试利器。但是关于 print() 函数,你真的了解吗?

    1. 打字机效果
    不了解 print() 的 flush 参数,很难实现下图所示的打字机效果:
    print() 像个调皮的小朋友,你让他帮你打印,他一定会做,但未必是立即去做,也许会攒够了多个打印任务才执行一次。设置 flush=True,可以让这位小朋友立刻去执行命令。

    # -*- coding: utf-8 -*-
    
    import time
    
    def printer(text, delay=0.2):
        """打字机效果"""
        
        for ch in text:
            print(ch, end='', flush=True)
            time.sleep(delay)
    
    printer('玄铁重剑,是金庸小说笔下第一神剑,持之则无敌于天下。')
    ————————————————
    版权声明:本文为CSDN博主「天元浪子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/xufive/article/details/103800753


    2. 旋转式进度指示
    Linux 系统文本界面下,最常用的进度指示是用横竖斜杠构成的旋转图案。

    Python也可以轻松实现这个效果,秘诀就在于 ‘’ 字符。 ‘’ 相当于键盘上的退格键,可以让我们把刚刚打印过的最后一个字符擦掉重新打印。这个效果,同样需要设置参数 flush 为真。

    # -*- coding: utf-8 -*-

    import time

    def waiting(cycle=20, delay=0.1):
    """旋转式进度指示"""
    for i in range(cycle):
    for ch in ['-', '\', '|', '/']:
    print('%s'%ch, end='', flush=True)
    time.sleep(delay)

    waiting()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    反转字符顺序,就可以改变旋转方向。将第一个字符 ‘-’ 改成 '-- ',还可以实现这样的效果:


    3. 覆盖式打印效果
    ‘’ 的作用是回退一个字符,’ ’ 则可以退回到行首。借助于 ‘ ’,可以实现整行覆盖式的打印效果:

    需要注意的是,整行覆盖的话,新的字符串长度不能小于原字符串长度,否则会留下前一次的打印内容。这个效果,同样需要设置参数 flush 为真。

    # -*- coding: utf-8 -*-

    import time

    def cover(cycle=100, delay=0.2):
    """覆盖式打印效果"""

    for i in range(cycle):
    s = ' %d'%i
    print(s.ljust(3), end='', flush=True)
    time.sleep(delay)

    cover()
    ————————————————
    版权声明:本文为CSDN博主「天元浪子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/xufive/article/details/103800753

  • 相关阅读:
    2018 ACM 网络选拔赛 徐州赛区
    2018 ACM 网络选拔赛 焦作赛区
    2018 ACM 网络选拔赛 沈阳赛区
    poj 2289 网络流 and 二分查找
    poj 2446 二分图最大匹配
    poj 1469 二分图最大匹配
    poj 3249 拓扑排序 and 动态规划
    poj 3687 拓扑排序
    poj 2585 拓扑排序
    poj 1094 拓扑排序
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12276174.html
Copyright © 2011-2022 走看看