更详细地了解Python2与Python3

在本教程中,我们将讨论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,所以现在
让我们看看差异2和Python 3
1表达:
表达式代表类似数字,字符串或类的实例的东西。任何值都是表达式!任何做某事的事情都是陈述。对变量或功能调用的任何分配都是语句。表达式中该语句中包含的任何值。
在Python 2中获得表达:
在这里评估表达的内容。
假设我们在Python 2中有一个输入,因为该值是原始的输入。

选择 | 换行 | 行号
  1.     Expand|Select|Wrap|Line Numbers
  •     
  • X = raw_input ("enter some values")
  •     
    1.  在  python   3  中评估 的  expression  :
      但是  python   3  我们  a   a   input  之后   一些 值。

      在这里,无论我们输入什么,在Python 2和Python 3中分配了值x,因此当我在Python 2中输入2*6的结果是12,而Witch表示您将获得评估的值。
      但是在Python 3中运行此程序2*6时,我们得到的结果是字符串值,类似于2*6的字符串格式。
      那么如何在Python 3中获得评估的值,因此对评估进行评估,我们必须使用表达式或可以说是评估的函数,当您在输入之前编写eval时,将其转换为Python中的评估值
      前任:

      选择 | 换行 | 行号
      1.  x= eval(input("enter some values")) = 12 

      Python 2和Python 3的详细表达示例:
      在Python 2中:
      输入 :

      选择 | 换行 | 行号
      1. name = input("What is your name? ")
      2. print ("Hello, %s." %name)

      输出 :

      选择 | 换行 | 行号
      1. Python 2.7.10 (default, jul 14 2015, 19:46:27)
      2. [GCC 4.8.2] on linux
      3. What is your name? vinod
      4. Hello, vinod.

      在Python 3中:
      输入 :

      选择 | 换行 | 行号
      1. name = input("What is your name? ")
      2. print ("Hello, %s." %name)

      输出 :

      选择 | 换行 | 行号
      1. Python 3.6.1 (default, Dec 2015, 13:05:11)
      2. [GCC 4.8.2] ON LINUX
      3. What isname?name ? Vinod
      4. Hello, Vinod.

      因此,这是评估表达的Python 2和Python 3的主要差异。
      2打印选项
      在python 2中,是语句,其中python 3打印是一个函数,在python 2中,我们不需要添加括号,但是在python 3中,我们需要在括号中写入值。
      前任 :

      选择 | 换行 | 行号
      1. Python 2 - print "hello world"
      2. Python 3 - ("hello world")

      Python 2
      输入 :

      选择 | 换行 | 行号
      1. print "hello world"

      输出 :

      选择 | 换行 | 行号
      1. Python 2.7.10 {default, jul 14 2015, 19:46:27)
      2. [GCC 4.8.2] on linux
      3. Hello World

      Python 3:
      输入 :

      选择 | 换行 | 行号
      1. 1 != 1.0
      2. print (False)1 != 1.0
      3. print (False)

      输出 :

      选择 | 换行 | 行号
      1. Python 3.6.1 (default, Dec 2015, 13:05:11)
      2. [GCC 4.8.2] on Linux
      3. False

      3不相等的操作员
      当我们使用Python 2中的运算符时,让我们转到第三个差异,因此我们必须使用或大于和小于符号。
      但是在Python 3中,有一个通用操作员,它是感叹号,并且与等同,因此该操作员用其他语言使用,这就是我称为通用操作员的原因。

      选择 | 换行 | 行号
      1. Ex :
      2. Python 2 - <> operator is used for not equal
      3. Python 3 -  !  operator is used for not equal

      在Python 2中: 输入 :

      选择 | 换行 | 行号
      1. 1 <> 1.0
      2. print "False"

      输出 :

      选择 | 换行 | 行号
      1. Python 3.6.1 (default, Dec 2015, 13:05:11)
      2. [GCC 4.8.2] ON LINUX
      3. False

      在Python 3中:
      输入 :

      选择 | 换行 | 行号
      1. 1 != 1.0
      2. print (False)1 != 1.0
      3. print (False)

      输出 :

      选择 | 换行 | 行号
      1. Python 3.6.1 (default, Dec 2015, 13:05:11)
      2. [GCC 4.8.2] on linux
      3. False

      4范围
      让我们转到Python 2和Python 3中的第四个差异。
      那么什么范围?
      范围用于循环迭代整数的值。因此,当我们使用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:
      输入

      选择 | 换行 | 行号
      1. print range(0,10,1)

      输出

      选择 | 换行 | 行号
      1. Python 2.7.10 (default, jul 14 2015, 19:46:27)
      2. [GCC 4.8.2] on linux
      3. [0,1,2,3,4,5,6,7,8,9]

      Python 3
      输入

      选择 | 换行 | 行号
      1. (list(range(10))

      )
      输出

      选择 | 换行 | 行号
      1. Python 3.6.1 (default, Dec 2015, 13:05:11)
      2. [GCC 4.8.2] on linux
      3. =>[0,1,2,3,4,5,6,7,8,9]

      5自动Python 2to3py。 :
      现在,让我们转到主题,这是将Python 2脚本自动化为Python 3代码的方法。
      在这里,我们可以使用简单程序进行测试,例如在Python中添加两个数字。
      Python 2:
      输入

      选择 | 换行 | 行号
      1. num1 = 1
      2. num2 = 2
      3. # Add two numbers
      4. sum = float(num1) + float(num2)
      5. # Display the sum
      6. print 'The sum of {0} and {1} is {2}'.format(num1, num2, sum)

      输出

      选择 | 换行 | 行号
      1. Python 2.7.10 (default, Jul 14 2015, 19:46:27)
      2. [GCC 4.8.2] ON LINUX
      3. The sum of 1 and 2 is 3.0

      现在使用2到3个翻译,我们可以转换上述代码
      输入 :

      选择 | 换行 | 行号
      1. num1 = 1
      2. num2 = 2
      3. # Add two numbers
      4. sum = float(num1) + float(num2)
      5. # Display the sum
      6. print('The sum of {0} and {1} is {2}'.format(num1, num2, sum))
      选择 | 换行 | 行号
      1. Output :
      选择 | 换行 | 行号
      1. Python 3.6.1 (default, Dec 2015, 13:05:11)
      2. [GCC 4.8.2] On linux
      3. =>[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 2基准进行比较时,大多数性能问题几乎可以忽略不计。
      7一些主要的家政变化:
      Python -2

      打印功能支架可选。


      前缀字符串Unicode制作Unicode字符串。


      整数的部门总是返回整数-5/2 = 2。


      raw_input()读取字符串。


      输入()评估读取的数据。


      发电机.next()。

      Python -3

      打印功能支架强制性。


      默认情况下字符串Unicode。


      整数的划分可能会导致浮点-5/2 = 2.5。


      RAW_INPUT()不可用。


      输入总是读取字符串。


      下一个(生成器)。


      PY2到PY3实用程序。


      字典.keys()和.values()返回视图而不是列表。


      不能再在非自然比较上使用比较操作员。

      例如。没有任何
      百分比(%)字符串格式操作员被弃用使用.format()函数或串联。
      8有问题:
      如果您一直在Python 2.x工作,则可能在这里和那里遇到错误 一段时间。 只是谷歌问题,几乎可以肯定的是,搬到python3时也遇到了这个问题 我希望您喜欢阅读此Python教程。 我们已经涵盖了Python 2和Python 3中的所有基础差异,因此您现在可以开始练习。 愉快的学习。

      标签: python

      评论已关闭