【面试题】python2和python3的区别

先说一下Python 由来,1989年,荷兰人Guido(人称“龟叔”),为了打发圣诞节假期,龟叔开始写Python语言的编译器,并于1991年正式发布。

01、代码特点

  • Python 2于2000年10月16日发布,稳定版本是Python 2.7。Python 3于2008年12月3日发布,不完全兼容Python 2。
  • python2 的代码混乱,重复较多,冗余。
  • python3源码规范、清晰、简单优美。

02、代码细分差异

  • python3 print("内容"):

 

  • python2 print()或者print '内容':

 

03、编码的改变

  • Python2默认ASCII编码方式,但是ASCII编码无法对中文等字符进行有效编码,因此在涉及到中文等其他字符的编码问题时,ASCII不仅无能为力,而且经常带来一些乱七八糟的错误,这也是Python2中经常出现编码错误的原因之一。
  • 2008年横空出世的Python3解决了这一问题。
  • Python3默认的编码方式是UTF-8。
  • 在编写Python3.0以后的代码时,新手的第一行代码不用再纠结到底使用#coding = utf-8还是用# -- coding:utf-8 --

04、用户交互input

  • python3:input ()

  • python2:raw-input()

05、unicode不同

  • python3x:unicode 默认是4个字节表示一个字符
  • python2x :unicode 默认2个字节表示一个字符

06、nonlocal关键字

  • Python2中要想在嵌套函数中将一个变量声明为非局部变量是不可能的;Python3中加入了nonlocal关键字,可以在嵌套函数中给变量前面添加关键字nonlocal,就可在嵌套函数之外使用嵌套函数中的变量。
  • Python3x加入nonlocal(nonlocal 用来声明外层的局部变量),Python2x则没有nonlocal。

07、init文件

  • python3x新建的包里面的init文件如果你删除该文件 包照样可以被调用,也就是下面的这个文件:

  • python2x新建的包如果没有init文件 则包不能够被调用 直接报错。

两者的区别不只这么多,在这里只是给出了一些常见的区别。

需要注意的是,现在流行的都是python3系列,并且2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

原文地址:https://baijiahao.baidu.com/s?id=1646545160933509602&wfr=spider&for=pc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值