十分钟让你看懂Python张长青软件设计二部目录一、什么是Python?二、为什么要学Phython?三、Phython的基本语法四、如何阅读Phython程序?一、什么是Python?1、Python的概念Python(KK英语发音:/ˈpaɪθən/,是一种面向对象、直译式计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。2、Python的简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。Python[1]已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率是呈线性增长[2]。3、Python的历史Python的创始人为GuidovanRossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫MontyPython的喜剧团体的爱好者。4、Python的设计风格Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由TimPeters写的python格言(称为TheZenofPython)里面表述为:Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There'sMoreThanOneWayToDoIt)完全相反。5、Python的设计定位Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行importthis可以获得完整的列表。6、Python的面向对象Python是完全面向对象的语言。函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools,itertools)提供了Haskell和StandardML中久经考验的函数式程序设计工具。7、Python的扩展Python本身被设计为可扩充的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(gluelanguage)使用,使用Python将其他语言编写的程序进行集成和封装。8、Python的执行Python在执行时,首先会将.py文件中的源代码编译成Python的bytecode(字节码),然后再由PythonVirtualMachine(Python虚拟机)来执行这些编译好的bytecode。这种机制的基本思想跟Java,.NET是一致的。然而,PythonVirtualMachine与Java或.NET的VirtualMachine不同的是,Python的VirtualMachine是一种更高级的VirtualMachine,和Java或.NET相比,Python的VirtualMachine距离真实机器的距离更远。或者可以这么说,Python的VirtualMachine是一种抽象层次更高的VirtualMachine。二、为什么要学Phython?1、学习Python的几个目的①读懂脚本程序;②编写Phython程序;③开阔编程思想;2、更多的新项目采用PTYTHONBlackDuckSoftware,Inc.曾发布一项内容十分周详的调查报告,题为”OpenSourceByTheNumbers“(报告人是RichSands),该调查发现,当今最活跃的编程语言是C/C++,跟随其后的是Java,Python,JavaScript等编程语言,如图所示。该调查报告的最后结论是:”NewliveprojectstrendingtowardsPython,PHP,JavaScriptandawayfromC-familylanguages“,意思是说,新的活跃研究项目都倾向(trendingtowards)使用Python,PHP与JavaScript编程,而远离(awayfrom)C编程语言大家族。3、Python八荣八耻以动手实践为荣,以只看不练为耻;以打印日志为荣,以单步跟踪为耻;以空格缩进为荣,以制表缩进为耻;以单元测试为荣,以人工测试为耻;以模块复用为荣,以复制粘贴为耻;以多态应用为荣,以分支判断为耻;以Pythonic为荣,以冗余拖沓为耻;以总结分享为荣,以跪求其解为耻。三、PHYTHON的基本语法1、语言基础Python是一门解释型语言,因为不需要编译和链接的时间,它可以帮你省下一些开发时间。解释器可以交互式使用,这样就可以很方便的测试语言中的各种功能,以便于编写发布用的程序,或者进行自下而上的开发。还可以当它是一个随手可用的计算器。1、语言基础Python可以写出很紧凑和可读性很强的程序。用Python写的程序通常比同样的C或C++程序要短得多,这是因为以下几个原因:①高级数据结构使你可以在一个单独的语句中表达出很复杂的操作;②语句的组织依赖于缩进,而不是begin/end块;③不需要变量或参数声明。2、Python解释器2.1调用解释器通常Python的解释器被安装在目标机器的/usr/local/bin/python目录下;把/usr/local/bin目录放进你的UNIXShell的搜索路径里,确保它可以通过输入python来启动。输入一个文件结束符(UNIX上是Ctrl+D,Windwos上是Ctrl+Z)解释器会以0值退出(就是说,没有什么错误,正常退出--译者)2、Python解释器2.2参数传递调用解释器时,脚本名和附加参数之传入一个名为sys.argv的字符串列表。没有脚本和参数时,它至少也有一个元素:sys.argv[0]此时为空字符串。脚本名指定为‘-’(表示标准输入)时,sys.argv[0]被设置为‘-’,使用-c指令时,sys.argv[0]被设定为‘-c’。-c命令之后的参数不会被Python解释器的选项处理机制所截获,而是留在sys.argv中,供脚本命令操作。2、Python解释器2.3交互模式从tty读取命令时,我们称解释器工作于交互模式。这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(“”);继续的部分被称为从属提示符,由三个点标识(“...”)。在第一行之前,解释器打印欢迎信息、版本号和授权提示:Python3.3.2(v3.3.2:d047928ae3f6,May162013,00:06:53)[MSCv.160064bit(AMD64)]onwin32Typecopyright,creditsorlicense()formoreinformation.2、Python解释器2.4错误处理有错误发生时,解释器打印一个错误信息和栈跟踪(监视)器?。交互模式下,它返回主提示符,如果从文件输入执行,它在打印栈跟踪器后以非零状态退出。(异常可以由try语句中的except子句来控制,这样就不会出现上文中的错误信息)有一些非常致命的错误会导致非零状态下退出,这由通常由内部矛盾和内存溢出造成。所有的错误信息都写入标准错误流;命令中执行的普通输出写入标准输出。在主提示符或附属提示符输入中断符(通常是Control-CorDEL)就会取消当前输入,回到主命令行。2、Python解释器2.5执行Python脚本Python脚本可以像Shell脚本那样直接执行,只要在脚本文件开头写一行命令,指定文件和模式:#!/usr/bin/envpython“#!”必须是文件的前两个字符,目的是将程序路径通知解释器,在某些平台上,第一行必须以Unix风格的行结束符(“\n”)结束,不能用Mac(“\r”)或Windows(“\r\n”)的结束符。注意,“#”是Python中是行注释的起始符。脚本可以通过chmod命令指定执行模式和许可权。$chmod+xmyscript.py2、使用Python解释器2.6输入输出标志区分输入和输出的方法是看是否有提示符(“”和“..”),想要重复这些例子的话,你就要在提示符显示后输入所有的一切;没有以提示符开始的行,是解释器输出的信息。需要注意的是示例中的从属提示符用于多行命令的结束,它表示你需要输入一个空行。Python中的注释以符号“#”起始,一直到当前行的结尾。注释可能出现在一行的开始,也可能跟在空格或程序代码之后,但不会出现在字符串中,字符串中的#号只代表#号。3、Python基本类型3.1数值解释器的行为就像是一个计算器。你可以向它输入一个表达式,它会返回结果。表达式的语法简明易懂:+,-,*,/和大多数语言中的用法一样(比如C或Pascal),括号用于分组。例如:2+24(50-5*6)/453、Python基本类型3.1数值等号(“=”)用于给变量赋值,被分配的值是只读的。width=20height=5*9width*height900同一个值可以同时赋给几个变量:x=y=z=0x03、Python基本类型3.2字符串(string)Python还可以通过几种不同的方法操作字符串。字符串用单引号或双引号标识:'spameggs''spameggs'doesn'tdoesn't'Yes,hesaid.''Yes,hesaid.'3、Python基本类型3.3None类型None类型是一个特殊的常量,表示出错。逻辑表达式:PYTHON中没有boolean类型,除了0以外,其他都是真。但是Python中‘假’有很多种,包括None,0,0.0,“”(空字符串),[](空list),()(空元祖),{}(空字典)。Phython中的逻辑运算符有:and,or,not3、Python基本类型3.4链表(列表list)Python已经有了几个复合数据类型,用于组织其它的值。最通用的是链表,它写为中括之间用逗号分隔的一列值(子项),链表的子项不一定是同一类型的值。a=['spam','eggs',100,1234]a['spam','eggs',100,1234]3、Python基本类型3.4链表(列表list)链表也以零开始,可以被切片,联接,等等:a=['spam','eggs',100,1234]