前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你真的懂print('Hello World!')?我不信

你真的懂print('Hello World!')?我不信

作者头像
统计学家
发布2020-12-09 16:40:11
8160
发布2020-12-09 16:40:11
举报
文章被收录于专栏:机器学习与统计学

↑↑↑点击上方蓝字,回复资料,10个G的惊喜

代码语言:javascript
复制
pip 的高阶玩法

相信很多同学入门Python的第一行代码都是print('Hello World!')

print是初学者最先接触的Python函数,但是很多同学可能到现在也不完全清楚它的用法。

代码语言:javascript
复制
print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

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

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

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

代码语言:javascript
复制
with open('data.txt', 'w') as f:
    print('Hello World!', file=f)

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

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

代码语言:javascript
复制
import sys
sys.stdout.write('Hello World!'+'\n')
print('Hello World!')
## 上面两行是等价的

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

代码语言:javascript
复制
print('Hello World!',end='')

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

比如动态Loading效果:

代码语言:javascript
复制
import time
print("Loading",end = '')
for i in range(10):
    print(".",end = '',flush = True,)
    time.sleep(0.2)
print('\n',"Hello World!")

再比如打字机效果

代码语言:javascript
复制
import time
def printer(text, delay=0.3):
    for ch in text:
        print(ch, end='', flush=True)
        time.sleep(delay)

printer('Hello World!')
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档