python2 与python3的print区别小结


Posted in Python onJanuary 16, 2018

在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异

主要体现在以下几个方面:

1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;

2.Python2打印时可以不加括号:print 'hello world', Python3则需要加括号 print("hello world")

3.Python2中,input要求输入的字符串必须要加引号,为了避免读取非字符串类型发生的一些行为,不得不使用raw_input()代替input()

1. python3中,或许开发者觉得print同时具有两重身份有些不爽,就只留了其中函数的身份:

print(value1, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

从上面的方法原型可以看出,

①. print可以支持多个参数,支持同时打印多个字符串(其中...表示任意多个字符串);

②. sep表示多个字符串之间使用什么字符连接;

③. end表示字符串结尾添加什么字符,指点该参数就可以轻松设置打印不换行,Python2.x下的print语句在输出字符串之后会默认换行,如果不希望换行,只要在语句最后加一个“,”即可。但是在Python 3.x下,print()变成内置函数,加“,”的老方法就行不通了。

>>> print("python", "tab", ".com", sep='') 
pythontab.com 
>>> print("python", "tab", ".com", sep='', end='') #就可以实现打印出来不换行 
pythontab.com

Python2打印时可以不加括号:print 'hello world', Python3则需要加括号 print("hello world")

python3中print必须使用括号,因为它就是一个函数。

总地来说, Python2.7的print不是一个function,而Python3里的print是一个function。
两都调用方式的主要区别如下:

print 'this is a string' #python2.7
print('this is a string') #python3

当然,python2.7里你也可以用括号把变量括起来, 一点都不会错:

print('this is a string') #python2.7

但是python3将print改成function不是白给的:

1. 在python3里,能使用help(print)查看它的文档了, 而python2不行:

>>help(print)
Help on built-in function print in module builtins:

print(...)
 print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

 Prints the values to a stream, or to sys.stdout by default.
 Optional keyword arguments:
 file: a file-like object (stream); defaults to the current sys.stdout.
 sep: string inserted between values, default a space.
 end: string appended after the last value, default a newline.
 flush: whether to forcibly flush the stream.

2 . 在python3里,能更方便的使用输出重定向

python2.7里,你需要以类似于C++的风格完成重定向:

with open('print.txt', 'w') as f:
 print >> f, 'hello, python!'

在python3里:

with open('print.txt', 'w') as f:
 print('hello, python!', file = f)

file是python3 print新加的一个参数。 另一个很handy的参数是sep, 例如打印一个整数数组, 但你想用星号而不是空格连接。python2时可能需要写一个循环来完成, python3里这样就行了:

a = [1, 2, 3, 4, 5]
print(*a, sep = '*')

最后, 如果想在python2.7里使用python3的print,只需要在第一句代码前加入:

from __future__ import print_function

注意, from __future__ import ...一类的语句一定要放在代码开始处。

print输出差异:同一段代码

#/usr/bin/env python
#coding:utf-8
for i in range(1,10):
    for j in range(1,10):
        for k in range(1,10):
            if(i != k)and(i != j)and(k != j):
                print(i,j,k)

pyhon2的输出为 i,j,k
python3的输出为 i j k
python3的输出直接屏蔽了逗号。

另python2 的print后序可不添加括号。
phthon3必须添加括号。

Python 相关文章推荐
Python的Flask框架与数据库连接的教程
Apr 20 Python
利用python画一颗心的方法示例
Jan 31 Python
Tornado 多进程实现分析详解
Jan 12 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
Python处理PDF与CDF实例
Feb 26 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
详解Python中namedtuple的使用
Apr 27 Python
python将unicode和str互相转化的实现
May 11 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
python正则中最短匹配实现代码
Jan 16 #Python
Python程序员面试题 你必须提前准备!
Jan 16 #Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 #Python
Python+tkinter模拟“记住我”自动登录实例代码
Jan 16 #Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 #Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 #Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 #Python
You might like
PHP数据库开发知多少
2006/10/09 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
python中的全局变量用法分析
2015/06/09 Python
对python的文件内注释 help注释方法
2018/05/23 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
聊聊python中的异常嵌套
2020/09/01 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
生产车间实习自我鉴定
2013/09/23 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
2014年采购工作总结
2014/11/20 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js