浅述python2与python3的简单区别


Posted in Python onSeptember 19, 2018

python2:print语句,语句就意味着可以直接跟要打印的东西,如果后面接的是一个元组对象,直接打印

python3:print函数,函数就以为这必须要加上括号才能调用,如果接元组对象,可以接收多个位置参数,并可以打印

1、表达式

在 Python 2 中为获得计算表达式,你会键入:

X = raw_input ("enter some values)

但在 Python 3 中,你会键入:

X = input ("enter some values")

因此,无论我们输入什么,值都会分配给 2 和 3 中的变量 x。当在 Python 2 中输入 2*6 时,结果将是 12,这是评估值。

但是,当在 Python 3 中运行相同的程序时,结果是字符串值。 在这种情况下,它看起来像字符串格式的 2*6。

那么,我们如何获得评估表达式呢? 现在,我们必须使用一个名为 eval 的表达式或函数。 当您在输入之前编写 eval 时,它会将表达式转换为计算值。

x= eval(input("enter some values")) = 12

具体表达式示例:

在 Python 2 中:

name = input("What is your name? ")print ("Hello, %s." %name)

然后输出:

在 Python 3 中:

name = input("What is your name? ")print ("Hello, %s." %name)

然后输出:

我们可以清楚地看到,他们之间的差异很小。

2、Print 选项

在 Python 2 中,print 是一个不需要括号的语句。 在 Python 3 中,print 是一个函数,值需要用括号括起来。

Python 2

输入:

print "hello world"

会输出:

Python 3

输入:

1 != 1.0print (False)

会输出:

3、Unequal 操作

当我们在 Python 2 中使用 Unequal 运算符时,我们需要使用大于 > 或小于 < 符号。 但是,在 Python 3 中,有一个通用运算符。 感叹号 ! 和等号 = 用于表示值是否相等。

Python 2 -<> 运算符表示不相等
Python 3 -! 运算符表示不相等

Python 2

输入:

1 <> 1.0print "False"

会输出:

Python 3

输入:

1 != 1.0print (False)1 != 1.0print (False)

会输出:

4、Range

Range 用于生成数字列表,通常用于迭代 for 循环。

在这里你可以看到 X 等于 Range 10。当我们检查变量 X 时,它返回了列表类型。 这意味着在 Python 2 中,Range 是列表的类型。当我写 X 之后,得到一个对象列表,这里是:0 1 2 3 4 5 6 7 8 9。

现在让我们转到 Python 3,当我们写 X 等于 Range 5,这个值就被赋给变量 X;当我们检查变量 X 的类型时,它会返回一个 Range 对象本身。 这意味着在 Python 3 中,Range 是一个范围对象本身。

Python 2

输入:

print range(0,10,1)

会输出:

Python 3

输入:

print(list(range(10)))

会输出:

5、自动迁移

那么,我们如何自动执行脚本以将代码从 Python 2 移动到 3?

在这里,我们可以使用 Python 中的 Add 2 Numbers 进行测试。

Python 2

输入:

n1 = 1n2 = 2add = float(n1) + float(n2)print 'sum of {0} and {1} is {2}'.format(n1, n2, add)

会输出:

现在使用 2to3 的迁移,我们可以转换上面的代码。

输入:

n1 = 1n2 = 2add = float(n1) + float(n2)
print('sum of {0} and {1} is {2}'.format(n1, n2, add))

会输出:

所以在这里我们看到它可以在命令行上通过 2to3 转换为 Python 3 代码。

Python 提供了自己的工具,名为 2to3.py,它运行了一堆脚本来将你的 Python 2 代码转换为 3。虽然它并不完美,但它总体上做得非常出色。转换任何代码后,您可以手动修复任何问题。

6、性能问题

此升级中已修复了大多数性能问题! 在比较两个版本之间的基准时,差异几乎可以忽略不计。

7、一些主要的内部事务变更

Python 2

•print 功能括号选填。

•使用 u 作为前缀字符串以生成 unicode 字符串。

•整数除法总是返回整数 -5/2=2。

•Raw_input() 读取字符串。

•input() 评估读取的数据。

•generator .next()。

Python 3:

•print 功能括号必填。

•默认情况下为字符串 unicode。

•整数除法可能导致浮动 -5/2=2.5。

•Raw_input() 不可用。

•输入始终读取字符串。

•Next (generator)。

•Py2 to py3 实用程序。

•Dictionary .keys() 和 .values() 返回的为视图不是列表。

•在非自然比较中不能再使用比较运算符。

 例如,None < None 将引发 TypeError 而不是返回 false。

•不推荐使用百分比(%)字符串格式化运算符,使用 .format() 函数或连接。

下面把python2与python3的区别简单总结以下八点

     一、python2  的代码混乱 重复较多 冗余  因为当时来编写的人有C 语言的大牛 和 java的大牛等各种大神 所以里面都含有各种语言的影子

            python3  经过龟叔的一个暑假的整理 终于在2018年11月 统一了代码  源码规范 清晰 简单优美。

    二、python3  print("内容")

           python2 ptint()   或者print '内容'

   三、python3 编码:utf-8

          python2编码: 默认编码:ascii     解决办法:在首行 #    -*- encoding:utf-8-*-

   四、用户交互 input

          python2:  raw-input()

          python3:input () 

五、python2x  :unicode 默认2个字节表示一个字符  可以在LINUX 编译安装时做调整

      python3x:unicode 默认是4个字节表示一个字符

六、python2x  没有nonlocal

      python3x   加入的

七 、python3x  新建的包里面的init文件如果你删除该文件  包照样可以被调用

        python2x  新建的包如果没有init文件 则包不能够被调用 直接报错

八、python2 中的经典类 遍历方法是以深度优先    新式类是以广度优先

      python3 中不存在经典类  所有的类都是新式类  所以都是广度优先

总结

以上所述是小编给大家介绍的python2与python3的简单区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python发送Email方法实例
Aug 21 Python
Python中使用item()方法遍历字典的例子
Aug 26 Python
详解Python的Django框架中的templates设置
May 11 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
python解析含有重复key的json方法
Jan 22 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
python实现字符串加密成纯数字
Mar 19 Python
Python的log日志功能及设置方法
Jul 11 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
python多进程使用函数封装实例
May 02 Python
NLTK 3.2.4 环境搭建教程
Sep 19 #Python
python2.7和NLTK安装详细教程
Sep 19 #Python
python排序函数sort()与sorted()的区别
Sep 18 #Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 #Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 #Python
python2与python3共存问题的解决方法
Sep 18 #Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 #Python
You might like
PHP添加MySQL数据记录代码
2008/06/07 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
js 事件小结 表格区别
2007/08/13 Javascript
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python使用matplotlib绘制柱状图教程
2017/02/08 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
中秋晚会策划方案
2014/06/12 职场文书
文明单位创建材料
2014/12/24 职场文书
2015选调生工作总结
2015/07/24 职场文书
开业庆典致辞
2015/08/01 职场文书
大学校园招聘会感想
2015/08/10 职场文书
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL