前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3学习笔记 | 十三、Python的语句与语法-打印

Python3学习笔记 | 十三、Python的语句与语法-打印

作者头像
TeamsSix
发布2019-09-24 17:12:54
6210
发布2019-09-24 17:12:54
举报

一、打印简介

在Python里,打印语句是与文件类型操作相似。在文件操作里,是使用write 方法向打开的文件写入内容。打印操作是往系统的标准输出(stdout)流来实现显示在终端上。 标准输出流:通常叫stdout,是发送一个程序的文本输出的默认的地方。与标准输入流和错误流,是在脚本启动时所创建的3种数据连接流中的一种。 打印操作在Python3.x和Python2.x里有很大区别: Python3.x: 打印是内置函数,用关键字参数来表示特定模式。 print不是保留字段,可以重新赋值。 Python2.x: 打印是语句,拥有自己的特定语句。 print是保留字段,不能重新赋值

二、Python3.x的print函数

从Python3.0开始print变成了函数,但返回值为None。print函数的格式如下: print([object,…][, sep=’ ‘][, end=’\’][, file=sys.stdout]) 在这里,object是要打印的内容。object可以是任意对象。默认是没有。 sep是两个object之间隔开的字符。默认是一个空格。end是结尾,默认为换行。file为输出目标,默认为标准输出流。 下面我们给a,b,c分别赋值数字,字符串,列表后使用如下函数来看结果:

代码语言:javascript
复制
>>> a=15
>>> b='Dora'
>>> c=[1,2,3,4,5]
>>> print(a,b,c,sep='')
153Dora[1, 2, 3, 4, 5]
>>> print(a,b,c,sep=',')
153,Dora,[1, 2, 3, 4, 5]
>>> print(a,b,c,end='')
153 Dora [1, 2, 3, 4, 5]
>>> print(a,b,c,end='');print(a,b,c)
153 Dora [1, 2, 3, 4, 5]153 Dora [1, 2, 3, 4, 5]
>>> print(a,b,c,end='...\n')
153 Dora [1, 2, 3, 4, 5]...
>>> print(open(r'C:\Test/test.txt'))
<_io.TextIOWrapper name='C:\\Test/test.txt' mode='r' encoding='cp936'>

三、打印流重定向

打印流,最终使用的是制定对象的write方法来实现。

代码语言:javascript
复制
print(X, Y)

这个语句等同于:

代码语言:javascript
复制
sys.stdout.write(str(X) + ' ' + str(Y) + '\n')

stdout也可以如下运用:

代码语言:javascript
复制
import sys
sys.stdout = open('log.txt','a')

这样的话,只要使用print, 整个输出会重定向到log.txt。 但如上方法会永久的更改sys.stdout的值。这样之后就不能输出到shell终端了。 所以得如下操作:

代码语言:javascript
复制
tmp_stdout = sys.stdout
sys.stdout = open('log.txt', 'a')
....
sys.stdout = tmp_stdout

或者如下使用:

代码语言:javascript
复制
log = open('log.txt', 'a')
print(x, y, file = log)
print(x, y)

具体实现:

代码语言:javascript
复制
>>> import sys
>>> log = open('/tmp/log.txt', 'a')
>>> x = 'This is first line\n'
>>> y = 'This is second line\n'
>>> print(x, y, file = log)
$ cat /tmp/log.txt
This is first line
This is second line

四、版本独立的打印

print在Python2.x里也可以使用Python3.x的print函数。

代码语言:javascript
复制
>>> from __future__ import print_function

这样就能在Python2.x里的所有的print编程方法,而不是语句,之后print也不是保留字段了。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、打印简介
  • 二、Python3.x的print函数
  • 三、打印流重定向
  • 四、版本独立的打印
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档