快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

从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的语法差异有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联-成都网站建设公司网站,小编将为大家输出更多高质量的实用文章!


标题名称:从python2.7和python3.0的语法差异有哪些-创新互联
文章地址:http://6mz.cn/article/ghsjh.html

其他资讯