十分钟让你看懂Python.pdf
- 文档编号:3430490
- 上传时间:2023-05-05
- 格式:PDF
- 页数:62
- 大小:2.90MB
十分钟让你看懂Python.pdf
《十分钟让你看懂Python.pdf》由会员分享,可在线阅读,更多相关《十分钟让你看懂Python.pdf(62页珍藏版)》请在冰点文库上搜索。
十分钟让你看懂Python张长青软件设计二部目录一、什么是Python?
二、为什么要学Phython?
三、Phython的基本语法四、如何阅读Phython程序?
一、什么是Python?
1、Python的概念Python(KK英语发音:
/pan/,是一种面向对象面向对象、直译式计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。
Python语法简捷而清晰简捷而清晰,具有丰富和强大的类库。
它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C+)轻松地联结在一起。
常见的一种应用情形是,使用python快速快速生成程序的原型生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C+重写。
2、Python的简介Python是一种解释型、面向对象、动态数据类型解释型、面向对象、动态数据类型的高级程序设计语言。
自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。
Python1已经成为最受欢迎的程序设计语言之一。
20112011年年11月,它被月,它被TIOBETIOBE编程语言排行编程语言排行榜评为榜评为20102010年度语言。
年度语言。
自从2004年以后,python的使用率是呈线性增长2。
3、Python的历史Python的创始人为GuidovanRossum。
1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚脚本解释程序本解释程序,做为ABC语言的一种继承。
之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫MontyPython的喜剧团体的爱好者。
喜剧团体的爱好者。
4、Python的设计风格Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
设计者开发时总的指导思想是,对于一个特定的问题,只要有一种只要有一种最好的方法来解决就好了最好的方法来解决就好了。
这在由TimPeters写的python格言(称为TheZenofPython)里面表述为:
Thereshouldbeone-andpreferablyonlyone-obviouswaytodoit.这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(TheresMoreThanOneWayToDoIt)完全相反。
5、Python的设计定位Python的设计哲学是“优雅”、“明确”、“简单”。
设计哲学是“优雅”、“明确”、“简单”。
因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。
Python开发者的哲学是“用一种方法,“用一种方法,最好是只有一种方法来做一件事”。
最好是只有一种方法来做一件事”。
在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。
由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。
这些准则被称为Python格言。
在Python解释器内运行importthis可以获得完整的列表。
6、Python的面向对象Python是完全面向对象完全面向对象的语言。
函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。
PythonPython支持重载运算符和动态类型。
支持重载运算符和动态类型。
相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。
有两个标准库(functools,itertools)提供了Haskell和StandardML中久经考验的函数式程序设计工具。
7、Python的扩展Python本身被设计为可扩充的可扩充的,并非所有的特性和功能都集成到语言核心。
Python提供了丰富的丰富的APIAPI和工具和工具,以便程序员能够轻松地使用C语言、C+、Cython来编写扩充模块。
Python编译器本身也可以被集成到其它需要脚本语言的程序内。
因此,很多人还把Python作为一种“胶水语言”“胶水语言”(gluelanguage)使用,使用Python将其他语言编写的程序进行集成和封装。
8、Python的执行Python在执行时,首先会将.py文件中的源代码编译成Python的bytecode(字节码),然后再由PythonVirtualMachinePythonVirtualMachine(PythonPython虚虚拟机)拟机)来执行这些编译好的bytecode。
这种机制的基本思想跟Java,.NET是一致的。
然而,PythonVirtualMachine与Java或.NET的VirtualMachine不同的是,Python的VirtualMachine是一种更高级的VirtualMachine,和Java或.NET相比,Python的VirtualMachine距离真实机器的距离更远。
或者可以这么说,Python的VirtualMachine是一种抽象层次更高的抽象层次更高的VirtualMachineVirtualMachine。
二、为什么要学Phython?
1、学习Python的几个目的读懂脚本程序;编写Phython程序;开阔编程思想;2、更多的新项目采用PTYTHONBlackDuckSoftware,Inc.曾发布一项内容十分周详的调查报告,题为”OpenSourceByTheNumbers“(报告人是RichSands),该调查发现,当今最活跃的编程语言是C/C+,跟随其后的是Java,PythonPython,JavaScript等编程语言,如图所示。
该调查报告的最后结论是:
”NewliveprojectstrendingtowardsPython,PHP,JavaScriptandawayfromC-familylanguages“,意思是说,新的活跃研究项目都倾向(新的活跃研究项目都倾向(trendingtrendingtowardstowards)使用)使用PythonPython,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+DCtrl+D,Windwos上是Ctrl+ZCtrl+Z)解释器会以0值退出(就是说,没有什么错误,正常退出译者)2、Python解释器2.2参数传递调用解释器时,脚本名和附加参数之传入一个名为sys.argv的字符串列表。
没有脚本和参数时,它至少也有一个元素:
sys.argv0此时为空字符串。
脚本名指定为-(表示标准输入)时,sys.argv0被设置为-,使用-cc指令时,sys.argv0被设定为-c。
-cc命令之后的参数不会被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(“rn”)的结束符。
注意,“#”是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还可以通过几种不同的方法操作字符串。
字符串用单引号或双引号标识:
spameggsspameggsdoesntdoesntYes,hesaid.Yes,hesaid.3、Python基本类型基本类型3.3None类型NoneNone类型是一个特殊的常量类型是一个特殊的常量,表示出错。
逻辑表达式:
PYTHON中没有boolean类型,除了0以外,其他都是真。
但是Python中假有很多种,包括None,0,0.0,“”(空字符串),(空list),()(空元祖),(空字典)。
PhythonPhython中的逻辑运算符有:
中的逻辑运算符有:
and,or,notand,or,not3、Python基本类型基本类型3.4链表(列表list)Python已经有了几个复合数据类型,用于组织其它的值。
最通用的是链表,它写为中括之间用逗号分隔的一列值(子项),链表的子项不一定是同一类型的值。
a=spam,eggs,100,1234aspam,eggs,100,12343、Python基本类型基本类型3.4链表(列表list)链表也以零开始,可以被切片,联接,等等:
a=spam,eggs,100,1234a0spama31234a-2100a1:
-1eggs,100a:
2+bacon,2*2spam,eggs,bacon,43、Python基本类型基本类型3.5元祖(Tuples)一个元组由数个逗号分隔的值组成,元组在输出时总是有括号的,以便于正确表达嵌套结构。
在输入时可能有或没有括号都可以,不过经常括号都是必须的(如果元组是一个更大的表达式的一部分)。
t=12345,54321,hello!
t012345t(12345,54321,hello!
)u=t,(1,2,3,4,5)u(12345,54321,hello!
),(1,2,3,4,5)3、Python基本类型基本类型3.6字典(Dictionaries)字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。
理解字典的最佳方式是把它看做无序的关键字:
值对(key:
valuepairs)集合,关键字必须是互不相同的(在同一个字典之内)。
一对大括号创建一个空的字典:
。
tel=jack:
4098,sape:
4139telguido=4127telsape:
4139,guido:
4127,jack:
40983、Python基本类型基本类型3.7序列(Sequence)序列包括string,list,tuple,它们都有一些通用的操作。
in判断某个object是不是在一个sequence中;len(seq)得到sequence的长度;通过下标获取其中的元素,seqi;通过带冒号的下标获取子sequence,seqstart:
end;用+表示连接两个sequence;用*表示重复一个sequence,“a”*3表示“aaa”;4、Python程序流程程序流程4.1if语句语法格式if:
if:
if:
else:
if:
elif:
elif:
.else:
4、Python程序流程程序流程4.1if语句使用说明if后面的表达式可以是任何表达式,除了None,0,“”(空字符串),(空list),(空Dictionary),()(空Tuple)以外,其他都是真。
表达式以冒号分割。
表达式以冒号分割。
若是一行的简单表达式,可以直接跟在冒号后面。
若是多行的表达式,就要使用缩进的方式,表示一组语句。
PyhonPyhon认为同样缩进长度的语句是一组。
认为同样缩进长度的语句是一组。
Python中没有switch语句,使用elif来完成这个功能。
else表示条件不满足时应该执行的语句,别忘了后面的冒号。
4、Python程序流程程序流程4.2for循环语句语法格式forxin:
else:
4、Python程序流程程序流程4.2for循环语句使用说明sequence表示任何string,tuple,dictionary。
break语句可以强制退出循环。
continue语句可以继续执行下一次循环。
else语句是可有可无的。
若有,则表示如果每个序列中的元素都循环到了,那么就执行else-block。
else语句可以理解为,如果循环没有被break语句强行中断,或者说循环正常结束后,就会执行else中的语句。
4、Python程序流程程序流程4.3while循环语句语法格式while:
else:
4、Python程序流程程序流程4.3while循环语句使用说明只要expr1是真,那么就一直执行block中的语句。
如果没有break跳出循环,也就是expr1为假的时候,执行elseblock中的语句。
4、Python程序流程程序流程4.4break和continue语句,以及循环中的else子句break语句和C中的类似,用于跳出最近的一级for或while循环。
continue语句是从C中借鉴来的,它表示循环继续执行下一次迭代。
循环可以有一个else子句;它在循环迭代完整个列表(对于for)或执行条件为false(对于while)时执行,但循环被break中止的情况下不会执行。
4、Python程序流程程序流程4.5pass语句pass语句什么也不做。
它用于那些语法上必须要有什么语句,但程序上什么也不要做的场合,例如:
whileTrue:
.pass#Busy-waitforkeyboardinterrupt.5、Python函数函数5.1函数定义def():
说明:
function_name是函数名称,冒号用来分割函数的内容。
Parameters_list是参数列表。
参数也没有类型,可以传递任何类型的值给函数,由函数的内容定义函数的接口。
如果传递的参数类型不是函数想要的,那么函数可以抛出异常。
codeblock是和if,while一样的代码,应该有相同的缩进。
函数没有返回值类型,returnreturn可以返回任意类型。
可以返回任意类型。
5、Python函数函数5.2函数参数默认值最有用的形式是给一个或多个参数指定默认值。
这样创建的函数可以在调用时使用更少的参数。
defask_ok(prompt,retries=4,complaint=Yesorno,please!
):
whileTrue:
ok=raw_input(prompt)ifokin(y,ye,yes):
return1ifokin(n,no,nop,nope):
return0这个函数还可以用以下的方式调用:
ask_ok(Doyoureallywanttoquit?
),或者像这样:
ask_ok(OKtooverwritethefile?
2)。
5、Python函数函数5.3函数参数关键字函数可以通过参数关键字的形式来调用,形如“keyword=value”。
例如,以下的函数:
defparrot(voltage,state=astiff,action=voom,type=NorwegianBlue):
print(-Thisparrotwouldnt,action)print(ifyouput,voltage,Voltsthroughit.)print(-Lovelyplumage,the,typeprint-Its,state,!
)可以用以下的任一方法调用:
parrot(1000)parrot(action=VOOOOOM,voltage=1000000)parrot(athousand,state=pushingupthedaisies)5、Python函数函数5.3函数参数关键字参数列表中的每一个关键字都必须来自于形式参数,每个参数都有对应的关键字。
形式参数有没有默认值并不重要。
实际参数不能一次赋多个值。
形式参数不能在同一次调用中同时使用位置和关键字绑定值。
5、Python函数函数5.4函数可变参数列表一个最不常用的选择是可以让函数调用可变个数的参数。
这些参数被包装进一个拓扑。
在这些可变个数的参数之前,可以有零到多个普通的参数:
deffprintf(file,format,*args):
file.write(format%args)5、Python函数函数5.5嵌套函数这种机制提供了一个函数范围的概念,某些函数只在某些函数的内容才能看到。
如果需要公开的话,可以通过返回值返回内部函数。
defoutfun(a,b):
.definnerfun(x,y):
.returnx+y.returninnerfun(a,b)5、Python函数函数5.6lambda关键字通过lambda关键字,可以创建很小的匿名函数。
这里有一个函数返回它的两个参数的和:
“lambdaa,b:
a+b”。
Lambda形式可以用于任何需要的函数对象。
出于语法限制,它们只能有一个单独的表达式。
语义上讲,它们只是普通函数定义中的一个语法技巧。
类似于嵌套函数定义,lambda形式可以从包含范围内引用变量:
defmake_incrementor(n):
returnlambdax:
x+n.f=make_incrementor(42)f(0)42f=lambdaa,b:
a+bf(1,2)3f(abc,def)abcdef5、Python函数函数5.7文档字符串(DocString函数描述)第一行应该是关于对象用途的简介。
简短起见,不用明确的陈述对象名或类型,因为它们可以从别的途径了解到。
这一行应该以大写字母开头,以句号结尾。
如果文档字符串有多行,第二行应该空出来,与接下来的详细描述明确分隔。
接下来的文档应该有一或多段描述对象的调用约定、边界效应等。
5、Python函数函数5.7文档字符串(DocString函数描述)defmy_function():
.Donothing,butdocumentit.No,really,itdoesntdoanything.pass.printmy_function._doc_thisfunctiondonothing,justdemostratetheuseofthedocstring.6、Python类类6.1类定义定义一个类的时候,会创建一个新的命名空间,将其作为局部作用域使用因此,所以对局部变量的赋值都引入新的命名空间。
特别是函数定义将新函数的命名绑定于此。
classClassName:
.6、Python类类6.2类对象引用类对象支持两种操作:
属性引用和实例化。
属性引用使用和Python中所有的属性引用一样的标准语法:
obj.name。
类对象创建后,类命名空间中所有的命名都是有效属性名。
所以如果类定义是这样:
classMyClass:
Asimpleexampleclassi=12345deff(self):
returnhelloworld那么MyClass.i和MyClass.f是有效的属性引用,分别返回一个整数和一个方法对象。
6、Python类类6.3类的实例化类的实例化使用函数符号。
只要将类对象看作是一个返回新的类实例的无参数函数即可。
例如(假设沿用前面的类):
x=MyClass()以上创建了一个新的类实例并将该对象赋给局部变量x。
这个实例化操作创建了一个空的对象。
创建为有初始状态的类可以通过定义一个名为_init_()的特殊方法来实现,像下面这样:
def_init_(self):
self.data=类定义了_init_()方法的话,类的实例化操作会自动为新创建的类实例调用_init_()方法。
6、Python类类6.4类的继承如果一种语言不支持继承就,“类”就没有什么意义。
派生类的定义如下所示:
classDerivedClassName(BaseClassName):
.命名BaseClassName(示例中的基类名)必须与派生类定义在一个作用域内。
6、Python类类6.5类的多继承Python同样有限的支持多继承形式。
多继承的类定义形如下例:
classDerivedClassName(Base1,Base2,Base
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分钟 看懂 Python
![提示](https://static.bingdoc.com/images/bang_tan.gif)