它与函数的最大的区别就是,reduce()里的映射函数(function)接收两个参数 , 而map接收一个参数 。
(4)enumerate函数
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标 , 一般用在for循环当中 。
它的两个参数,一个是序列、迭代器或其他支持迭代对象;另一个是下标起始位置 , 默认情况从0开始,也可以自定义计数器的起始编号 。
(5)Zip函数
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
当我们使用zip()函数时,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同 。
python2和python3的区别,转换及共存python2和python3的区别
1.性能
Py3.0运行 pystone benchmark的速度比Py2.5慢30% 。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果 。
Py3.1性能比Py2.5慢15%,还有很大的提升空间 。
2.编码
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
中国 = 'china'
print(中国)
china
3. 语法
1)去除了,全部改用!=
在Python 2里,为了得到一个任意对象的字符串表示,有一种把对象包装在反引号里(比如`x`)的特殊语法 。在Python 3里,这种能力仍然存在,但是你不能再使用反引号获得这种字符串表示了 。你需要使用全局函数repr() 。
Notes
Python 2
Python 3
①
`x`repr(x)
②
`'PapayaWhip' + `2``repr('PapayaWhip'+ repr(2))
Note:x可以是任何东西 — 一个类,函数,模块,基本数据类型,等等 。repr()函数可以使用任何类型的参数 。
2)去除``,全部改用repr()
3)关键词加入as 和with,还有True,False,None
4)整型除法返回浮点数,要得到整型结果,请使用//
由于人们常常会忽视Python 3在整数除法上的改动(写错了也不会触发Syntax Error),所以在移植代码或在Python 2中执行Python 3的代码时,需要特别注意这个改动 。
所以,我还是会在Python 3的脚本中尝试用float(3)/2或 3/2.0代替3/2,以此来避免代码在Python 2环境下可能导致的错误(或与之相反,在Python 2脚本中用from __future__ import division来使用Python 3的除法) 。
Python 2
print '3 / 2 =', 3 / 2 print '3 // 2 =', 3 // 2 print '3 / 2.0 =', 3 / 2.0 print '3 // 2.0 =', 3 // 2.0
3 / 2 = 1 3 // 2 = 1 3 / 2.0 = 1.5 3 // 2.0 = 1.0
默认,如果两个操作数都是整数 , Python 2 自动执行整型计算 。
Python 3
print('3 / 2 =', 3 / 2) print('3 // 2 =', 3 // 2) print('3 / 2.0 =', 3 / 2.0) print('3 // 2.0 =', 3 // 2.0)
3 / 2 = 1.5 3 // 2 = 1 3 / 2.0 = 1.5 3 // 2.0 = 1.0
Note: 需要注意的是“双划线”(//)操作符将一直执行整除,而不管操作数的类型 , 这就是为什么 5.0//2.0 值为 2.0 。Python 3 中,/ 操作符是做浮点除法,而 // 是做整除(即商没有余数,比如 10 // 3 其结果就为 3,余数会被截除掉,而 (-7) // 3 的结果却是 -3 。这个算法与其它很多编程语言不一样,需要注意,它们的整除运算会向0的方向取值 。而在 Python 2 中,/ 就是整除,即和 Python 3 中的 // 操作符一样 。
5)加入nonlocal语句 。使用noclocal x可以直接指派外围(非全局)变量
6)print
去除print语句,加入print()函数实现相同的功能 。同样的还有 exec语句 , 已经改为exec()函数
在Python 2里,print是一个语句 。无论你想输出什么 , 只要将它们放在print关键字后边就可以 。
Python 3里,print()是一个函数 。就像其他的函数一样,print()需要你将想要输出的东西作为参数传给它 。
推荐阅读
- 如何获取海外服务器ip,海外服务器ip是什么意思
- 如何才能写好新媒体文,如何写好新媒体文案
- word怎么给标题分级,word怎么把标题分级
- 数据库鼠标显示php 鼠标显示sql
- ios手机会自己安装app,苹果手机自动安装
- 虚拟机安装mac重启,虚拟机安装macos卡在安装界面
- PHP源码怎么安装数据库 php安装mysql
- htmlaudio标签属性,htmlaudio标签用法
- 怎么把文档音乐下载到u盘,如何把文件音乐下载到手机