python解释器和python的区别_python2和python3解释器的区别

python2和python3解释器的区别

1.input的区别

Python2中有raw_input和input.

他的raw_input就相当于Python3中的input,他们把用户输出的数据全部转化为str字符串类型.

他的input让用户输出的是用户输出数据的原始类型,用户输入int类型,他显示的也是int类型,以此类推

2.整型的区别

Python2中有int整型和long长整型的概念,当数值超过一定的位数就显示为long长整型.

Python3中取消了long长整型的概念,将他合并到int整型中.

3.range的区别

python2中

1.range其实就是一个列表

2.xrange其实就是python3中的range

python3中range是一个迭代器,你需要值的时候我才给你

4.字典中的键keys(),值values(),键值对items()

python2

keys(),值values(),键值对items()都是作为列表的形式存放值,虽然能存储所有的值,但是占内存空间大。

python3

keys(),值values(),键值对items()其实也都是个迭代器想要的时候可以生成列表给你具体的值,不要的时候只会占很少的空间

5.默认字符编码的区别

python2

将py文件按照文本文件读入解释器中默认使用ASCII码(因为在开发python2解释器的unicode还没有盛行)

python3

将py文件按照文本文件读入解释器中默认使用utf-8

6.file和open的区别

#首先在python3中操作文件只有一种选择,那就是open()

#而在python2中则有两种方式:file()与open()

两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两种文件打开方式有本质的区别,file为文件类,用file()来打开文件,相当于这是在构造文件类,而用open()打开文件,是用python的内建函数来操作,我们一般使用open()打开文件进行操作,而用file当做一个类型,比如type(f) is file

7.生成包时的区别__init__文件

python2如果要导入包,包下面必须要有__init__文件

python3如果要导入包,包下面没有__init__文件也不会报错

所以我们在删除文件的时候不能把__init__文件删除,哪怕是他里边没有内容

8.新式类与经典类的区别

新式类:任何直接或者间接的继承于object的类就称之为新式类.(python3中的类的顶部都是object,所以python3中全是新式类)

新式类的继承顺序,先深度遍历,当遇到共同的父类时就广度遍历,新式类的继承顺序还可以通过调用mro方法来查看

经典类:不是object的子类,只有python2中有

经典类的继承顺序,全部都是深度遍历

具体可以查看面向的对象之继承的最后一部分内容,有遍历的详细图解

8.子类访问父类内容super()的区别

super(),括号内的参数

在python2中需要写出super(当前类名,对象本身)

python3中帮我们做了优化,可以省略不写

1 #子类访问父类的内容

2 classPerson:3 def __init__(self,name,age):4 self.name =name5 self.age =age6

7 defeat(self):8 print('%s会吃东西'%self.name)9

10 classStudent(Person):11 def __init__(self,name,age,id):12 #第一种,父类名直接调用,这种方法什么地方都可以调用,与继承无关,并且需要写上对象本身

13 Person.__init__(self,name,age)14 #第二种,super(类名,对象本身),是python2内置的

15 super(Student,self).__init__(name,age)16 #第三种,python3做了优化可以内部不传参,推荐使用

17 super().__init__(name,age)18 self.id =id19

20 defeat(self):21 super().eat() #第三种方法在访问父类的方法

22 super(Student,self).eat() #第二种方法在访问父类的方法

23 print('%s吃更好的东西'%self.name)24

25 s1 = Student('sxc',18,188)26 s1.eat()

即代码中的第二种方式和第三种方式的区别

9.待续...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值