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类的基础入门知识
Nov 24 Python
python计算最小优先级队列代码分享
Dec 18 Python
python使用xauth方式登录饭否网然后发消息
Apr 11 Python
Python中基础的socket编程实战攻略
Jun 01 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
python3实现单目标粒子群算法
Nov 14 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python通过字典映射函数实现switch
Nov 06 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 screw加密php源代码
2013/06/20 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
js每次Title显示不同的名言
2008/09/25 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
js操作table示例(个人心得)
2013/11/29 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
2018/08/05 Python
python super函数使用方法详解
2020/02/14 Python
python标准库OS模块详解
2020/03/10 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
Python如何急速下载第三方库详解
2020/11/02 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
车间副主任岗位职责
2013/12/24 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
合同纠纷调解书
2015/05/20 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
python 多态 协议 鸭子类型详解
2021/11/27 Python
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js