仔细研究Python 2与Python 3

在本教程中,我们将讨论Python 2和Python 3之间的区别,因此这里我们在Python 2.0和3.0之间存在一些区别。

在本教程中,我将介绍以下主题:
  1. 表达
  2. 打印选项
  3. 不等于运算符。
  4. 范围。
  5. 自动化的Python 2to3py。
  6. 性能。
  7. 一些重大的客房整理更改。
  8. 有问题。

所以这里的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。
  • 虽然不完美,但是做得很棒。
  • 转换后,请手动修复问题。
6性能:

在Python 3中,将当前的python 3与python 2基准进行比较时,已解决的大多数性能问题几乎可以忽略不计。

7家务管理的主要变化: Python-2
  • 打印功能支架可选。
  • 前缀字符串Unicode为unicode字符串。
  • 整数除法总是返回整数-5/2 = 2。
  • Raw_input()读取字符串。
  • input()评估读取的数据。
  • 生成器.next()。
Python-3
  • 必须打印功能括号。
  • 默认情况下为字符串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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值