Python中的print
Python 3.X的print
在Python 3.X中,print是一个内置函数,完整的声明形式如下:
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout][, flush=False])
sep
sep表示打印对象之间的分隔符,默认使用单个空格
>>>print(1, 2, sep='$') 1$2
end
end表示在打印的字符串末尾添加的字符串,默认是换行符
file
任何具有write(String)方法的对象都能成为file的值,默认是sys.stdout,即标准输出,file可以用来在print的时候临时进行重定向
flush
表示print是把内容立即输出,还是缓存一段在输出,默认是False,在这种情况下,是立即输出,还是缓存,主要取决于file的值,而如果是True,那么不管file是何种类型,都强制立即输出
Python 2.X中的print
在Python 2.X中,print是一个语句(statement):
>>>print x, y # print(x, y) Python 3.X的对应形式 >>>print x, y, # print(x, y, end='') Python 3.X的形式,不输出结尾换行符 >>>print >>afile, x, y # print(x, y, file=afile) Python 3.X的形式,重定向到afile
兼容Python 2.X和Python 3.X
1 使用2to3脚本将Python 2.X的形式转换成Python 3.X,使用3to2的脚本将Python 3.X转换成Python 2.X
2 import from __future__,在Python 2.X脚本的第一行加入如下代码:
from __future__ import print_function
那么,Python 2.X的脚本中也可以使用Python 3.X的print函数,对于__future__,需要注意两点:
1) 在Python 3.X的脚本中,__future__没有影响
2) __future__只对当前脚本起作用,没有传递性
3 在使用Python 2.X的print时,也加入括号,伪装成Python 3.X的调用:
# Python 2.X 的形式 # 但是打印出来的结果是tuple # 并且tuple中每一个元素都有单引号 # 因此,虽然能够伪装,但是打印结果和Python 3.X不一样 >>>print('a', 'b', 'c') ('a', 'b', 'c') # Python 3.X的形式 >>>print('a', 'b', 'c') a, b, c
Python 2.X中的print语法之所以可以加括号,是因为括号可以加到任何表达式上,加上括号之后,print的参数就是一个tuple了,这也是为什么伪装的print打印结果和Python 3.X不一样。要解决这个问题,可以使用格式化字符串的方法将多个参数格式化为一个,打印形式就统一了:
# Pyhon 2.X # 转化成一个参数的好处,还可以消除上面伪装打印时,元素上的单引号 # 上面例子中,伪装打印元素上之所以有单引号,是在Python中,顶层对象 # 使用str函数转换成字符串,而嵌套对象使用repr转换成字符串 >>>print('%s %s %s' %('a', 'b', 'c')) a b c # Python 3.X >>>print('a', 'b', 'c') a b c
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了