- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Python的案例剖析-docx
Python知识讲解Python 版本 3,也被称为?Python 3000?或?Py3K(仿效 Microsoft? Windows? 2000 操作系统而命名的昵称)是 Guido van Rossum 通用编程语言的最新版本。虽然新版本对该核心语言做了很多改进,但还是打破了与 2.x 版本的向后兼容性。其他一些变化则是人们期待已久的,比如:真正的除法 — 例如,1/2?返回的是?.5。long?和?int?类型被统一为一种类型,删除了后缀?L。True、False?和?None?现在都是关键字。本文 — Python 3 系列文章中的第一篇 — 的内容涵盖了新的?print()?函数、input()、输入/输出(I/O)的变化、新的?bytes?数据类型、字符串和字符串格式化的变化以及内置的?dict?类型的变化。本文面向的是那些熟悉 Python 并对新版本的变化很感兴趣但又不想费力读完所有 Python Enhancement Proposal(PEP)的编程人员。(本文后面的?参考资料?部分提供了有关这些 PEP 的链接。)新的 print() 函数如今,您将需要让手指习惯于键入?print(hello),而不是原来的?print hello,这是因为?print?现在是一个函数,不再是一个语句。我知道,这多少有点痛苦。我认识的每个 Python 程序员 — 一旦安装了版本 3 并得到 “语法不正确” 错误 — 都会郁闷地大叫。我知道这两个额外的符号十分讨厌;我也知道这将会破坏向后兼容性。但是这种改变还是有好处的。让我们考虑这样的情况,即需要将标准输出(stdout)重定向到一个日志。如下的例子会打开文件 log.txt 以便进行追加并将对象指定给?fid。之后,利用?print?将一个字符串重定向给文件?fid:fid = open(log.txt, a)printfid, log text另外一个例子是重定向给标准错误(sys.stderr):printsys.stderr, an error occurred上述两个例子都不错,但还有更好的解决方案。新的语法只要求给?print()?函数的关键字参数?file?传递一个值就可以了。比如:fid = open(log.txt, a)print(log.txt, file=fid)这样的代码,语法更为清晰。另一个好处是通过向?sep?关键字参数传递一个字符串就能更改分割符(separator),通过向?end?关键字参数传递另外一个字符串就能更改结束字符串。要更改分割符,可以利用:print(Foo, Bar, sep=%)Foo%Bar总地来说,新的语法为:print([object, ...][, sep= ][, end=endline_character_here][, file=redirect_to_here])其中,方括号([])内的代码是可选的。默认地,若只调用?print()?自身,结果会追加一个换行符(?\n)。回页首从 raw_input() 到 input()在 Python 版本 2.x 中,raw_input()?会从标准输入(sys.stdin)读取一个输入并返回一个字符串,且尾部的换行符从末尾移除。下面的这个例子使用?raw_input()?从命令提示符获取一个字符串,然后将值赋给?quest。quest = raw_input(What is your quest? )What is your quest? To seek the holy grail.questTo seek the holy grail.与之不同,Python 2.x 中的?input()?函数需要的是一个有效的 Python 表达式,比如?3+5。最初,曾有人建议将?input()?和?raw_input()?从 Python 内置的名称空间一并删除,因此就需要进行导入来获得输入能力。这从方法上就不对;因为,简单键入:quest = input(What is your quest?)将会变为:import sysprint(What is your quest?)quest = sys.stdin.readline()对于一个简单输入而言,这太过繁琐,并且对于一个新手,这未免太难理解。往往需要向他们讲述模块?和导入?究竟是怎么回事、字符串输出以及句点操作符又是如何工作的(如此麻烦的话,与 Java? 语言就没什么差别了)。所以,在 Python 3 内,将raw_input()?重命名为?input(),这样一来,无须导入也能从标准输入获得数据了。如果您需要保留版本 2.x 的?input()?功能,可以使用?eval(input()),效果基本相同。回页
文档评论(0)