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的Django框架中实现Hacker News的一些功能
Apr 17 Python
python使用wxpython开发简单记事本的方法
May 20 Python
python3之模块psutil系统性能信息使用
May 30 Python
Python闭包函数定义与用法分析
Jul 20 Python
简单了解django缓存方式及配置
Jul 19 Python
在python中logger setlevel没有生效的解决
Feb 21 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
用Python生成HTML表格的方法示例
Mar 06 Python
Python中bisect的用法及示例详解
Jul 20 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
Python经典五人分鱼实例讲解
Jan 04 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 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去除重复字的实现代码
2011/09/16 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
PHP代码优化的53个细节
2014/03/03 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python中datetime模块参考手册
2017/01/13 Python
在python中pandas的series合并方法
2018/11/12 Python
python3去掉string中的标点符号方法
2019/01/22 Python
python exit出错原因整理
2020/08/31 Python
python opencv肤色检测的实现示例
2020/12/21 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
儿童生日会策划方案
2014/05/15 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
2014年采购工作总结
2014/11/20 职场文书
助学金感谢信
2015/01/20 职场文书
新年寄语2016
2015/08/17 职场文书
MySQL快速插入一亿测试数据
2021/06/23 MySQL
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏