Python公开课 - 新项目选择Python2还是Python3

前言

目前Python有两个主要版本,一个是Python2.x,另一个是Python3.x。

小T老师最早接触Python的时候,使用的是Python2.3,回想起来也蛮久远的事情了。

有很多成熟的产品和项目也是基于Python2.x来开发,并且一直在维护,搜狐的个人邮箱就是采用Python2.x版本来开发。

Python2.x和Python3.x的区别

在项目进行选择的时候,这是一个重要点,所以我们必须要弄清楚。

Short version: Python 2.x is legacy, Python 3.x is the present and future of the language

以上是摘录于wiki.python.org的一段话

Python3.0在2008年就发布出来,而2.7作为2.X的最终版本并继续维护。

Guido van Rossum的想法是不在对2.7版本进行向后兼容。

Python3.x最显着的改进是更好的Unicode支持,所有文本字符串默认为Unicode。

Python3.x的主要变化

兔子先生整理了一些基本的改变:

  1. 编码方式和性能

    • 运行效率更快
    • 默认源文件编码ASCII变为UTF-8,以前文件前加入的coding=utf-8不再需要
    • 针对unicode的处理有了明显的改善,效率明显提升
  2. 数据类型和基本运算

    • int和long进行了统一,统一为int
    • True、False、None都是关键词
    • 必须以b'...'表示二进制数据,可以使用u'..'表示字符串,不加u也表示字符串
    • 移除<>不等号,使用“!=”表示不等号关系
    • 调整除法符号‘/’的用法,只返回浮点数,要返回整数要使用“//”
    • 具有单一的str类型,其类型相当于2.x的unicode,3.x所有的字符串都是unicode
  3. range和dict的变化

    • 在2.x中,range相比xrange会创建一个列表。常出现在for循环、字典、列表中,但是3.x中xrange改名为range,在3.x中使用用xrange会触发错误。同时range返回的是可迭代对象而不再是列表形式,要想使range的结果得到一个list数据必须要使用list(range(5))
    • dict.iterkeys(), dict.itervalues(), dict.iteritems()被keys() and values() and items()所替代他们的返回结果类似于集的可迭代对象,而不是键值对的列表。从而在不进行键和值条目复制的情况下就能对其执行set操作
  4. 迭代器

    • range在python3中返回颗迭代对象二不是列表,最大限度节约内存
    • zip(),map(),filter(),key(),value()返回的均是可迭代对象

应该选择哪个版本

兔子先生建议,能使用3.x则尽量使用。但是有以下情况可以考虑使用2.x:

  • 环境不支持 - 例如在封闭的开发环境下,并不支持新安装Python3.x,例如CentOS的某些版本
  • 依赖库不支持 - 毕竟2.x下面有更多更丰富的第三方库,其中有些尚未迁移到新的版本上来,对现有项目会造成阻碍或者产生较大的工作量

相关阅读


相关推荐
  1. 以色列:扔石头的故事
  2. 成都市武侯科技园小学
  3. Python公开课 - 详解模块
  4. 中山市中港英文学校(中学部)
  5. 贵州遵义航天高级中学
  6. 武汉一女子七天被骗220万
  7. 西安市雁塔区曲江传奇幼儿园 - 西安幼儿园黄页
  8. 江门市外海中路小学
  9. 3之3双语智能开发湖岸名家幼儿园 - 苏州幼儿园黄页
  10. 深圳市龙岗区飞西幼儿园 - 深圳幼儿园黄页
  11. 惠州市惠东县平山中心小学
  12. 太阳是小偷
  13. 免费CDN资源汇总
  14. Ubuntu中如何安装pip3
  15. 深圳南山区湾厦幼儿园 - 深圳幼儿园黄页
  16. 武安市贺进镇沙名中学
  17. 南宁市宾阳县小朵朵艺术幼儿园 - 南宁幼儿园黄页
  18. 上海市民办日日学校
  19. 武汉00后大二学妹拍视频月入七十万
  20. Python Selenium find_element_by_css_selector 如何处理多个class
  21. 脱单!武汉的相亲角在哪你知道吗?
  22. 上海市世界外国语小学(西校区)
  23. 哈尔滨市延寿县小雨点艺术幼儿园 - 哈尔滨幼儿园黄页
  24. 重庆市南岸区爱心幼儿园 - 重庆幼儿园黄页
  25. 易中天给英雄武汉的一首诗 - 武汉新鲜事
  26. 详解Tesseract之安装及基本使用
  27. 伟大的抄写员
  28. 杭州学军文渊中学
  29. 央媒聚焦!国庆假期173.78万人次打卡大美黄陂
  30. 事发武汉农夫山泉矿泉水内惊现大量虫卵
  31. 中国农业科学院附属小学(农科院附小)
  32. 提高网站加载速度 - Nginx配置开启Gzip
  33. 奥迪客户不满加价,被武汉4S店销售群殴
  34. 武汉女子网上做兼职被骗六十五万
  35. Ubuntu安装X11VNC实现远程可视化桌面简明教程
  36. 沈阳市皇姑区晓萍艺术幼稚园(天山路) - 沈阳幼儿园黄页
  37. 舟山定海区城西小学
  38. 小房子里的巨人
  39. 无锡市南站中心小学
  40. 昆明市官渡区七彩幼儿园 - 昆明市幼儿园黄页
  41. 百名网媒总编辑登上知音号欣赏武汉夜色
  42. 合肥市琥珀中学
  43. 田鼠进城
  44. 遵义市第十一中学
  45. 小刺猬和小兔子
  46. Python语言的优点和缺点 - 深度剖析
  47. 糖糖国漫游记
  48. 深圳市盐田区外国语小学
  49. 北京市育荣实验学校(小学部)
  50. 安徽淮南市第十九中学
  51. 杭州市景成实验学校
  52. requests如何使用socket5代理
  53. 陶罐和铁罐
  54. 湖北将发放消费券 - 武汉新鲜事
  55. 重庆市南岸区小太阳幼儿园 - 重庆幼儿园黄页
  56. 如何在Django项目中优雅的实现markdown和代码高亮
  57. 广州市番禺区大石镇沙溪小学
  58. 乌龟的奖牌
  59. 番禺区市桥沙头中学
  60. 风筝找朋友