在本教程中,我们将讨论Python 2和Python 3之间的区别,因此这里我们在Python 2.0和3.0之间存在一些区别。
在本教程中,我将介绍以下主题:- 表达
- 打印选项
- 不等于运算符。
- 范围。
- 自动化的Python 2to3py。
- 性能。
- 一些重大的客房整理更改。
- 有问题。
所以这里的X就像2.1 2.2 2.7一样,在Python 3中,点X是Python 3.1到3.5 3.6,所以现在
让我们看看Python 2和Python 3 1 Expression 的区别 :表达式表示某种东西,例如数字,字符串或类的实例。 任何值都是表达! 做某事就是声明。 对变量或函数调用的任何赋值都是一条语句。 表达式中该语句中包含的任何值。
在python 2中获取表达式:这里评估的是一个表达式。
假设我们在python 2中有一个输入,在该值之后是原始输入。
Expand | Select | Wrap | Line Numbers
X = raw_input ("enter some values")
在python 3中获取评估表达式:
但是python 3在那之后有一些值。
展开 | 选择 | 包装 | 行号
X =输入(“输入一些值”)
在这里,无论我们输入什么,然后在python 2和python 3中都给变量x赋值。因此,当我在python 2中输入2 * 6时,结果将为12,女巫意味着您将获得评估值。
但是在Python 3中,当运行该程序2 * 6时,我们得到的结果是字符串值,它类似于字符串格式的“ 2 * 6”。
然后如何在Python 3中获取评估值,因此要获得评估结果,我们必须使用一个表达式,或者可以说是eval的函数,当您在输入之前编写eval时,它将在Python中变成评估值
例如:
x= eval(input("enter some values")) = 12
Python 2和Python 3的详细表达示例: 在Python 2中: 输入:
name = input("What is your name? ")
print ("Hello, %s." %name)
输出:
Python 2.7.10 (default, jul 14 2015, 19:46:27)
[GCC 4.8.2] on linux
What is your name? vinod
Hello, vinod.
在python 3中: 输入
name = input("What is your name? ")
print ("Hello, %s." %name)
输出:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] ON LINUX
What isname?name ? Vinod
Hello, Vinod.
因此,这是Python 2和Python 3(评估表达式)的主要区别。
2打印选项在Python 2中print是一个声明,其中Python 3 print是一个函数,在Python 2中我们不需要添加括号,但是在Python 3中我们需要在括号中写入值。
例如:Python 2 - print "hello world"
Python 3 - ("hello world")
Python 2 输入:
print "hello world"
输出:
Python 2.7.10 {default, jul 14 2015, 19:46:27)
[GCC 4.8.2] on linux
Hello World
Python 3: 输入:
1 != 1.0
print (False)1 != 1.0
print (False)
输出:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on Linux
False
3不等于运算符
让我们转到第三个差异,当我们在python 2中使用一个不等于运算符时,我们必须使用大于或小于符号。
但是在Python 3中,有一个通用运算符,它是感叹号并等于,因此在其他语言中使用了该运算符,这就是为什么我将其称为通用运算符。
Ex :
Python 2 - <> operator is used for not equal
Python 3 - ! operator is used for not equal
在python 2中: 输入
1 <> 1.0
print "False"
输出:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] ON LINUX
False
在Python 3中: 输入:
1 != 1.0
print (False)1 != 1.0
print (False)
输出:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
False
4范围
让我们转到第四个区别,即Python 2和Python 3的范围。
那么范围是多少?范围用于for循环迭代整数值。 因此,当我们在Python编程中使用范围时,它将返回一个列表。
因此在这里您可以看到X等于范围10,当我们检查变量X时,它返回了列表类型,这意味着在Python 2中,范围是列表的类型。 当我写X以后,我们得到一个对象列表。 这是0 1 2 3 4 5 6 7 8 9。
所以现在让我们转到Python 3,当我们编写x等于范围5时因此,范围5的值分配给了变量X,当我们检查变量X的类型时,它返回了范围对象本身,这意味着在Python 3中范围是范围对象本身,因此这是Python 2之间的关键区别和Python 3。
Python 2和Python 3的详细范围示例: Python 2: 输入print range(0,10,1)
输出量
Python 2.7.10 (default, jul 14 2015, 19:46:27)
[GCC 4.8.2] on linux
[0,1,2,3,4,5,6,7,8,9]
Python 3 输入
(list(range(10))
) 输出
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
=>[0,1,2,3,4,5,6,7,8,9]
5自动化的Python 2to3py。
:
现在,让我们转到如何将Python 2脚本自动转换为Python 3代码的主题。
在这里,我们可以使用简单的程序(例如在python中添加两个数字)进行测试。
Python 2: 输入num1 = 1
num2 = 2
# Add two numbers
sum = float(num1) + float(num2)
# Display the sum
print 'The sum of {0} and {1} is {2}'.format(num1, num2, sum)
输出量
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.8.2] ON LINUX
The sum of 1 and 2 is 3.0
现在使用2到3转换我们可以转换上面的代码输入:
num1 = 1
num2 = 2
# Add two numbers
sum = float(num1) + float(num2)
# Display the sum
print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))
Output :
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] On linux
=>[0,1,2,3,4,5,6,7,8,9]
因此,在这里我们看到可以在命令行上通过2到3将其转换为Python 3 x代码,这是将Python 2程序转换为Python 3的方式,这就是Python 2与Python之间的区别的全部3。
- Python提供了自己的名为2to3.py的工具。 它运行一堆脚本将Python 2代码转换为3。
- 虽然不完美,但是做得很棒。
- 转换后,请手动修复问题。
在Python 3中,将当前的python 3与python 2基准进行比较时,已解决的大多数性能问题几乎可以忽略不计。
7家务管理的主要变化: Python-2- 打印功能支架可选。
- 前缀字符串Unicode为unicode字符串。
- 整数除法总是返回整数-5/2 = 2。
- Raw_input()读取字符串。
- input()评估读取的数据。
- 生成器.next()。
- 必须打印功能括号。
- 默认情况下为字符串unicode。
- 整数除法可能会导致浮点数-5/2 = 2.5。
- Raw_input()不可用。
- 输入始终读取字符串。
- 下一步(发电机)。
- py2到py3实用程序。
- 字典.keys()和.values()返回一个视图而不是一个列表。
- 不能再对非自然比较使用比较运算符。
例如。 None <None将引发TypeError而不是返回false。
不建议使用.format()函数或串联使用百分比(%)字符串格式化操作符。
8有问题:如果您已经在python 2.x中工作了一段时间,则可能在这里和那里遇到错误。
只是用谷歌搜索问题,几乎可以肯定的是,有人在转向python3时也遇到了这个问题
希望您喜欢阅读此Python教程。 我们已经介绍了Python 2和Python 3的所有基本差异,因此您可以立即开始练习。 快乐学习。
翻译自: https://bytes.com/topic/python/insights/972329-take-closer-look-python-2-vs-python-3-a