网站大量收购闲置独家精品文档,联系QQ:2885784924

python3.0的新特性.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
python3.0的新特性

python3.0的新特性 这篇文章主要介绍了相比于python2.6,python3.0的新特性。更详细的介绍请参见 HYPERLINK /3/whatsnew/3.0.html \t /_blank python3.0的文档。 Common Stumbling Blocks 本段简单的列出容易使人出错的变动(初学者应该注意)。 print语句被print()函数取代了,可以使用关键字参数来替代老的print特殊语法。例如: Old: print The answer is, 2*2 New: print(The answer is, 2*2) Old: print x,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???# 使用逗号结尾禁止换行 New: print(x, end= )? ?? ?? ?? ?? ?? ?# 使用空格代替换行 Old: print? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?# 输出新行 New: print()? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???# 输出新行 Old: print sys.stderr, fatal error New: print(fatal error, file=sys.stderr) Old: print (x, y)? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? # 输出repr((x, y)) New: print((x, y))? ?? ?? ?? ?? ?? ?? ?? ?? ? # 不同于print(x, y)! 你可以自定义输出项之间的分隔符: ? ? print(There are , 2**32, possibilities!, sep=) 输出结果是: ? ? There are 4294967296 possibilities! 注意: print()函数不支持老print语句的软空格特性,例如,在python2.x中,print A\n, B会输出A\nB\n,而python3.0中,print(A\n, B)会输出A\n B\n 使用? HYPERLINK /moin/2to3 \t /_blank 2to3?源码转换工具时,所有的print语句被自动转换成print()函数调用,对大项目,这是无需争论的。 python3.0使用字符串(strings)和bytes代替Unicode字符串和8位字符串,这意味着几乎所有使用Unicode编码和二进制数据的代码都要改动。这个改动很不错,在2.x的世界里,无数的bug都是因为编码问题。 map()和filter()返回迭代器(iterators) dict方法keys(),items(),values()返回视图(同样是迭代器)而不是列表(list) 内建的sorted()方法和list.sort()方法不再接受表示比较函数的cmp参数,使用key参数代替。 1/2返回浮点数,使用1//2能得到整数。 repr()函数对于long整数不再包含拖尾的L,所以不加判断的去除最后一个字符会导致去掉一个有用的数字。 String and Bytes 现在只有一种字符串:str,它的行为和实现都很像2.x的unicode串。 basestring超类已经去掉了, HYPERLINK /moin/2to3 \t /_blank 2to3?工具会把每个出现的basestring替换成str。 PEP3137:新类型bytes,用来表示二进制数据和编码文本,str和bytes不能混合,需要时,必须进行显示的转换,转换方法是str.encode()(str-bytes)和bytes.decode()(bytes-str). 在原始字符串(raw strings)中所有反斜线都按字面量解释,不再特殊处理Unicode转义字符。 PEP3112:bytes字面量,例如babc,创建bytes实例。 PEP3120:默认源文件编码为UTF-8 PEP3131:可以使用非ASCII标识符(然而,除了注释中贡献者的名字之外,标准库仍然只包含ASCII) PEP3116:新的IO实现,API几乎100%向后兼容,二进制文件使用bytes代替strings 去除了StringIO和cStringIO模块,取而代之的是io.StringIO或者io.BytesIO PEP3101:字符串格式化的新方法 str.format方法(原文提到替代了%操作符,实际上,format方法和%的用法差别很大,各有所长)。 PEP3106:修补了dict的keys(),items(),values()方法 删除了di

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档