zoukankan      html  css  js  c++  java
  • print('Hello World!')的新玩法

    相信很多同学入门Python的第一行代码都是print('Hello World!')
    print是初学者最先接触的Python函数,但是很多人可能到现在也不完全清楚它的用法。

    print(*objects, sep=’ ‘, end=’
    ’, file=sys.stdout, flush=False)
    

    参数:
    objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
    sep – 用来间隔多个对象,默认值是一个空格。
    end – 用来设定以什么结尾。默认值是换行符 ,我们可以换成其他字符串。
    file – 要写入的文件对象。
    flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

    除了常用的objects参数,剩下几个参数大家应该比较陌生吧?下面咱们看看这几个参数可以玩出什么花样?

    默认情况下,print 函数会将内容打印输出到标准输出流(即 sys.stdout),可以通过 file 参数自定义输出流。

    with open('data.txt', 'w') as f:
        print('Hello World!', file=f)
    

    然后工作目录下就会保存一份txt文件

    注意,print输出的其实有两行,第二行为空。这是因为当我们在 Python 中打印对象调用 print(obj) 时候,事实上是调用了sys.stdout.write(obj+' '),print 将需要的内容打印到控制台,然后追加了一个换行符。

    import sys
    sys.stdout.write('Hello World!'+'
    ')
    print('Hello World!')
    ## 上面两行是等价的
    

    如果不想让print自动换行,怎么办呢?只需要指定end参数为空即可

    print('Hello World!',end='')
    

    flush这个参数就更有意思了,print() 函数会把内容放到内存中,不一定及时刷新显示到屏幕中。 使用flush=True之后,会在print结束之后,不管你有没有达到条件,立即将内存中的东西显示到屏幕上,清空缓存。
    这样就可以实现一些装逼效果满分的操作了

    比如动态Loading效果:

    import time
    print("Loading",end = '')
    for i in range(10):
        print(".",end = '',flush = True,)
        time.sleep(0.2)
    print('
    ',"Hello World!")
    

    再比如打字机效果

    import time
    def printer(text, delay=0.3):
        for ch in text:
            print(ch, end='', flush=True)
            time.sleep(delay)
    
    printer('Hello World!')
    

    同学们学废了吗?给了三连可好?

  • 相关阅读:
    Redis存储对象(序列化和反序列化)
    JAVA中关于set()和get()方法的理解以及使用
    5W1H分析法
    Spring AOP的理解(通俗易懂)。
    Notepad++ 使用步骤,熟练掌握notepad++的使用技巧,无疑会大大提升专业技能。以及快捷键操作
    Int,String,Integer,double之间的类型的相互转换
    Ajax局部刷新和全局刷新的区别
    GET和POST都是什么时候用?
    ajax为什么需要json格式响应数据?
    final fially finalize区别
  • 原文地址:https://www.cnblogs.com/jpld/p/14125317.html
Copyright © 2011-2022 走看看