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

Python中的print的更多相关文章

  1. 在python中使用print()时,raw write()返回无效的长度:OSError: raw write() returned invalid length 254 (should have been between 0 and 127)

    写出一个不是code的bug,很烦恼,解决了挺长时间,都翻到外文来看,不过还是解决了,只尝试了一种简单可观的方法,希望对大家有用 我正在使用Django与Keras(tensorflow)来训练一个模 ...

  2. Python中的print、input函数以及Python中交换两个变量解析

    一.Python中的值交换操作 首先明确一点点,Python中的一切都是面向对象的,可以理解为Python的中一切都是对象. 我们知道Java也是面向对象的语言,但是在Java中定义一个值变量如下: ...

  3. 浅析 python中的 print 和 input 的底层区别!!!

    近期的项目中 涉及到相关知识 就来总结一下 ! 先看源码: def print(self, *args, sep=' ', end='\n', file=None): # known special ...

  4. python中的print()、str()和repr()的区别

    print()函数,我们可以看出,在Python IDLE中直接输入的字符串都是有类型的,而print打印后的字符串相当于一串文字,把字符串的引号也省略了,没有类型 print()函数,生成可读性更好 ...

  5. python中,print函数的sep和end参数

    print函数是我们经常使用的,但是它的sep和end参数或许对很多python使用者相对陌生,他们可以让我们的打印更具有个性化. 先来看下官方解释, sep:分割值与值,默认是一个空格 end:附件 ...

  6. python 中的 print 函数与 list函数

    print()  函数: 传入单个参数时默认回车换行,关键词 end 可以用来避免输出后的回车(换行), 或者以一个不同的字符串结束输出. >>> a, b = 0, 1 >& ...

  7. python中的print函数

    python3.x中将print由一个声明转变成了一个函数. 官方说法: Converts the print statement to the print() function. print(*ob ...

  8. Python中使用print打印进度条

    import time for i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印多少个'*' per_str = '\r%s%% : % ...

  9. python中print()函数的“,”与java中System.out.print()函数中的“+”

    python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出 ...

随机推荐

  1. POJ 3528--Ultimate Weapon(三维凸包)

    Ultimate Weapon Time Limit: 2000MS   Memory Limit: 131072K Total Submissions: 2430   Accepted: 1173 ...

  2. Linux中文件I/O函数

    一.lseek函数 每个打开文件都有一个与其相关联的“当前文件偏移量”.它通常是一个非负整数,用以度量从文件开始处 计算的字节数.通常,读.写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数 ...

  3. C++分享笔记:扑克牌的洗牌发牌游戏设计

    笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏.具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌.然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等. ...

  4. 【补】英语对IT工作者的重要性

    浅谈程序员的英语学习   作为在中国工作的程序员,不懂得英语似乎也不妨碍找到好工作,升职加薪.但程序员这个工种则稍有不同,因为程序,尤其是高级语言,基本上都是由英语和数字表达式构成的.英语对于程序员十 ...

  5. Google+百度,自动识别知名人物的性别

    最近有一个任务,需要采集一批知名学者的性别信息.该任务的难点在于提供学者信息的网站并不会主动标注学者的性别性别,因此只能靠别的方法了. 对一个普通人来说,在网上判断一个人的性别的最快的方式就是看他的照 ...

  6. Kibana6.3.1安装

    Kibana安装 Kibana官方下载地址: https://www.elastic.co/cn/downloads/kibana 也可以直接使用以下命令下载(文章下载目录一概为/home/tools ...

  7. Git简单配置ssh秘钥

    执行以下命令: git config --global user.name "demo" git config --global user.email "demo@dem ...

  8. 浅谈ETL架构中ODS的作用以及如何在HaoheDI中自动创建ODS表

    什么是ODS表? 在ETL架构中,源数据很少会直接抽取加载到数据仓库EDW,二者之间往往会设置一个源数据的临时存储区域,存储数据在清洗转换前的原始形态,通常被大家称做操作型数据存储,简称ODS,在Ki ...

  9. 第5章 MapReduce操作

    目录 5.1 案例分析:单词计数 1.设计思路 2.程序源代码 3.程序解读 4.程序运行 5.2 案例分析:数据去重 1.设计思路 2.编写程序 3.程序解读 4.程序运行 5.3 案例分析:求平均 ...

  10. Node.js Express+Mongodb 项目实战

    Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很 ...