每门编程语言在发布更新之后,主要版本之间都会发生很大的变化。 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化。

本教程主要介绍内容:表达式

Print 选项

Unequal 操作

Range

自动迁移

性能问题

主要的内部事务更改

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 2print 功能括号选填。

使用 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() 函数或连接。

python 32的值_示例解读 Python 2 和 Python 3 之间的主要差异相关推荐

  1. shell调用python获取返回值_[linux的shell脚本调用python脚本的返回值][shell调python][ubuntu的shell调用python脚本得到返回值]...

    最近搞个东西,需要写shell脚本,但在shell脚本里需要调用python并得到变量值,网上找了很多都是python调shell的,最后请教了一下郭总 知道了sys.argv的用法后才搞定了,在此感 ...

  2. python中3or5什么意思_示例详解Python3 or Python2 两者之间的差异

    每门编程语言在发布更新之后,主要版本之间都会发生很大的变化. 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化. 本 ...

  3. python 获取唯一值_从Python列表中获取唯一值

    python 获取唯一值 In this article, we will be understanding 3 ways to get unique values from a Python lis ...

  4. python的格式化输入_一看就懂的Python输入和输出、格式化字符串方法

    程序的输出可以有多种形式:我们可以将数据以人类可读的形式打印到屏幕上,或者将其写入到文件中以供后续使用. 格式化输出 迄今为止,在 Python 中存在两种输出值的方法:表达式语句以及 print() ...

  5. python实现推荐系统代码_推荐系统之矩阵分解及其Python代码实现

    有如下R(5,4)的打分矩阵:("-"表示用户没有打分) 其中打分矩阵R(n,m)是n行和m列,n表示user个数,m行表示item个数 那么,如何根据目前的矩阵R(5,4)如何对 ...

  6. python sns绘制回归线_【干货!】用Python演绎5种常见可视化视图

    - 点击上方"中国统计网"订阅我吧!- 通过本篇文章,你将学到: 视图的分类,从哪些维度进行分类 5种常见视图的概念,以及如何在Python中进行使用,都需要用到哪些函数. 注意: ...

  7. 最适合新手的python刷题网站_有没有适合新手练习Python的网站(做题类)?

    直接在知乎看我整理的练习题就可以了, 给你分享一下我自己亲身经历过的python考试题(下面还有练习题大全哦~~~) 记得给小达点个关注~ 你可以参考下面的题进行练习,考试题换汤不换药,希望对你有帮助 ...

  8. numpy是python标准库吗_吐血 整理!140种Python标准库、第三方库和外部工具都有了...

    Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连接.数 ...

  9. python 运行r语言_如何在R中运行Python

    python 运行r语言 尽管我很喜欢R,但很显然Python还是一种很棒的语言-既适用于数据科学又适用于通用计算. R用户想要在Python中做一些事情可能有充分的理由. 也许这是一个很棒的库,还没 ...

最新文章

  1. 图像生成之扩散模型:靠加入类别条件,效果直达SOTA
  2. Answer:关于C#连续赋值的面试题
  3. 李永乐线性代数手写笔记-二次型
  4. 【aspnetcore】添加自定义json配置文件
  5. 微信扫码下载iosAPP
  6. 基于React+Koa实现一个h5页面可视化编辑器-Dooring
  7. 博弈论初步(SG函数)
  8. mysql 并发_mysql 的读写锁与并发控制
  9. Android应用程序安装过程源代码分析(2)
  10. 在线JSON转Excel工具
  11. SecureCRT 完美代替超级终端
  12. 孪生网络keras实现minist
  13. 生物信息学biojava|从本地读取并解析遍历genbank文件|从genbank中提取CDS等注释信息
  14. 微信授权登录功能实现
  15. 调出软键盘 挤掉标题栏咋办
  16. dnf手游体验服服务器维护,地下城与勇士手游体验服更新公告
  17. 老树发新芽-前后端分离实践
  18. 苹果手机怎么编辑word文档_word文档转pdf要怎么实现?word转pdf好方法推荐
  19. 红葡萄酒质量影响因素分析
  20. 论latex插入图片最好的方法!

热门文章

  1. 基于mycat的mysql_基于mycat实现mysql的读写分离
  2. oracle磁带的使用期限,rman删除磁带库过期备份问题
  3. dbref java_查询mongodb dbref内部字段
  4. qtablewidget 选中不改变背景_C4D制作不一样的核壳结构
  5. C++ delete只能用来释放new分配的内存
  6. 利用gitbash上传项目到github
  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 22丨页面推荐【难度中等】​
  8. kettle创建mysql资源库
  9. Python 并行分布式框架 Celery
  10. Effective Java~9. try-with-resource 优先于 try-catch