千家信息网

从python2.7和python3.0的语法差异有哪些

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"从python2.7和python3.0的语法差异有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2026年11月01日从python2.7和python3.0的语法差异有哪些

本篇内容介绍了"从python2.7和python3.0的语法差异有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、基本语法

1、python3默认编码

Python2 的默认编码是 asscii,这也是导致 Python2 中经常遇到编码问题的原因之一,至于是为什么会使用 asscii 作为默认编码,原因在于 Python这门语言诞生的时候还没出现 Unicode。Python 3 默认采用了 UTF-8 作为默认编码,因此你不再需要在文件顶部写 # coding=utf-8 了。

2、迭代器

在 Python2 中很多返回列表对象的内置函数和方法在 Python 3 都改成了返回类似于迭代器的对象,因为迭代器的惰性加载特性使得操作大数据更有效率。Python2 中的 range 和 xrange 函数合并成了 range,如果同时兼容2和3,可以这样:

另外,字典对象的 dict.keys()、dict.values() 方法都不再返回列表,而是以一个类似迭代器的 "view" 对象返回。高阶函数 map、filter、zip 返回的也都不是列表对象了。Python2的迭代器必须实现 next 方法,而 Python3 改成了 next

3、print不再是语句,而是函数

比如原来是 print 'abc' 现在是 print('abc')

但是 python2.6+ 可以使用 from future import print_function 来实现相同功能。

4、原来1/2(两个整数相除)结果是0,现在是0.5了

$ /opt/python3.6/bin/python3

Python 3.6.2 (default, Aug 4 2017, 10:27:08)

[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> 1/2

0.5

>>> 1/3

0.3333333333333333

5、新的字符串格式化方法format取代%

6、python3 彻底废弃了 long+int

统一为 int , 支持高精度整数运算

7、Python2中用raw_input ,Python3中用input

二、数据类型

1、字符串

字符串是最大的变化之一,这个变化使得编码问题降到了最低可能。在 Python2 中,字符串有两个类型,一个是 unicode,一个是 str,前者表示文本字符串,后者表示字节序列,不过两者并没有明显的界限,开发者也感觉很混乱,不明白编码错误的原因,不过在 Python3 中两者做了严格区分,分别用 str 表示字符串,byte 表示字节序列,任何需要写入文本或者网络传输的数据都只接收字节序列,这就从源头上阻止了编码错误的问题。

三、模块化编程

1、增加了一些新模块

concurrent.futures、venv、unittest.mock、asyncio、selectors、typing

2、去掉了一些模块或者函数

gopherlib、md5、contextlib.nested、inspect.getmoduleinfo等。

去掉的内容的原因主要是2点:

(1). 过时的技术产物,已经没什么人在用了;

(2). 出现了新的替代产物后者被证明存在意义不大。理论上对于开发者影响很小。

3、模块名称修改

把一些相关的模块合并到同一个包里面,如:

如httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib放进了http里面。

urllib, urllib2, urlparse, robotparse放进了urllib里面。

SocketServer模块名改成了socketserver,Queue模块名改成queue

"从python2.7和python3.0的语法差异有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

编码 模块 字符 字符串 函数 对象 迭代 原因 方法 语法 内容 字节 序列 数据 问题 差异 两个 中用 产物 开发者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技深圳 科技类互联网 广州互联网科技公司 广州互联网络科技有限公司 润盈互联网科技 镁科技互联网资讯平台 恒生科技互联网指数分析 互联网企业和科技型企业 崇明区互联网教育科技售后服务 杭州壁岐互联网科技有限公司 互联网金融科技名词解释 中科明德北京互联网科技 伊宁互联网科技做什么的 互联网科技包装股份有限公司上市 工业互联网科技创业 上海同邻互联网科技有限公司规模 互联网时代科技型公司的机会 唯美互联网科技 第三届互联网大会安防黑科技 互联网科技对化妆品行业 北京互联网科技 互联网科技公司发展 互联网 的科技创新 互联网科技博客 济南华为互联网科技产业总部基地 南山科技园互联网公司有哪些 消费医药和互联网科技 互联网领先科技成果宣传视频 广东猫王互联网科技有限公司电话 科技美学互联网 艺术
0