ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:22.51KB ,
资源ID:13958067      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13958067.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Python2x和3x主要差异总结Word文档格式.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Python2x和3x主要差异总结Word文档格式.docx

1、1000000000000000000000000000000(2) 八进制字面量表示 在Python 2.x中,表示八进制字面量有两种方式,一是同众多我们所熟悉的编程语言一样,直接在数字前加0,比如01000, 另外是加0o(0和小写字母o)0o1000 在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000 34 0o1000512 01000567File , line 101000SyntaxError: invalid token运算符 (1) 不等于测试 Python 2.x中不等于有两种写法 != 和 Python 3.x中去掉了, 只有!=一种写法,还好,我

2、从来没有使用的习惯 (2) 去掉了repr表达式 Python 2.x 中反引号相当于repr函数的作用 Python 3.x 中去掉了这种写法,只允许使用repr函数,这样做的目的是为了使代码看上去更清晰么?不过我感觉用repr的机会很少,一般只在debug的时候才用,多数时候还是用str函数来用字符串描述对象。(3) 除法运算 Python中的除法较其它语言显得非常高端,有套很复杂的规则。Python中的除法有两个运算符,/和/ 首先来说/除法:在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留

3、小数点的部分得到一个浮点数的结果。在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。Python 2.x: 1 / 2 1.0 / 2.00.5Python 3.x: 1/2而对于/除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。python 2.x: -1 / 2-1python 3.x:注意的是并不是舍弃小数部分,而是执行floor操作,如果要截取小数部分,那么需要使用math模块的trunc函数 import math math.trunc(1 / 2) math.trun

4、c(-1 / 2)(4) 比较运算符 Python 2.x中允许不同类型的对象进行比较,比如: -1 FalsePython 3.x中则不允许这类不同类型之间含糊不清的比较:Traceback (most recent call last):, line 1, in TypeError: unorderable types: int() str()我觉着即使在2.x中也不应该使用这种含糊不清的比较,1 返回了False, 这个是基于什么判断的?说不清楚。语句 (1) print 这是应该算是最广为人知的一个差别了吧,Python 2.x和Python 3.x之间连Hello World都是不兼

5、容的。python 2.x中print是语句 print file x, y向打开的输出流file中输出x, y变量的值 在python 3.x中这句要这么写 print(x,y,file=file)file参数定义的默认值是sys.stdout(2) 扩展序列解包 python中的序列赋值一直是这门语言宣传时候的一个亮点,能把一个序列解开进行赋值:89101112131415 x, y = 1, 2 x y x, y = 1, 2 x, y = y, xpython 3.x对这一功能更加进行了强化,支持扩展序列解包: x, *y = 1, 2, 32, 3内置集合类型 内置集合的差别主要体现

6、在字典对象的几个视图方法上,keysitems和values,在2.x中这几个试图方法每次都是赤裸裸的返回一个新的列表,3.x对这种粗鲁的行为做了优化,返回的是迭代器对象。另外原先字典对象有个has_key方法来判断key在字典中是否存在,这个方法实现的功能跟in运算符完全一样,因此在3.x就把这个方法给干掉了。函数 (1) nonlocal作用域 在2.x的时代,Python只有两个作用域,模块里面的全局作用域和函数的局部作用域,但是随着在函数中定义函数的情况越来越多,比如装饰器、闭包等等,这里面就出现了内层函数引用外层函数变量的问题:比如我要在内层函数修改外层函数的一个变量,在Python

7、 2.x的时代就会出现错误: def out_function():. call_count = 0 def in_function(): call_count += 1 return in_function. out_function()(), line 4, in in_functionUnboundLocalError: local variable call_count referenced before assignment但是在Python 3.x中只要使用nonlocal关键字对变量进行修饰,就会自动去外层函数寻找变量: nonlocal call_count call_coun

8、t+=1(2) Key-word only 参数 前面我们说到print在Python 3.x中是作为函数提供的。print的参数设计是这样的:print(*value, sep=, end=n, file=sys.stdout)如果了解Python参数的顺序规则,我们知道在Python 2.x中,参数的顺序必须遵循以下规则去定义:def function(一般参数 or 带默认值参数,*sequence, *dict) 而这个地方却允许先定义*sequence再去定义一般参数,这就是Python 3.x所支持的key-word only的参数形式。在一个*之后允许去定义一些参数,这些参数在函

9、数调用的时候必须指定参数名称。这样本质上其实就是在*sequence类型的参数之后固定写死了一个*dict, 当然也可以在后面继续定义一个*dict:def test(*value, name, *dict):但这样写就不对了def test(*value, *dict, name) (3) map、filter和reduce 这三个函数号称是函数式编程的代表。在Python3.x和Python2.x中也有了很大的差异。首先我们先简单的在Python2.x的交互下输入map和filter,看到它们两者的类型是built-in function: mapbuilt-in function map

10、 filterbuilt-in function filter它们输出的结果类型都是列表: map(lambda x:x * 2,1,2,3) 2, 4, 6 filter(lambda x:x % 2 = 0, range(10)0, 2, 4, 6, 8但是在Python 3.x中它们却不是这个样子了:class map map(print,1,2,3)map object at 0xa6fd70cfilterfilter object at 0xa6eeeac首先它们从函数变成了类,其次,它们的返回结果也从当初的列表成了一个可迭代的对象, 我们尝试用next函数来进行手工迭代: f = filter(lambda x:x % 2 =

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1