Python教学教学课件.docx
Python教学(全套课件)Python安装与运行#零Python特点<sunmne(,Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。Python特点如下:1、2、3、4、5、6、7、8、9、高级性面向对象可扩展可移植易学、易用免费、开源丰富的库规范的代码健壮性10、内存管理器H、解释性和(字节)编译性#卜 Windows 下安装<sunm()e(到官网www.python.org的F载页面里找到Windows安装包F载,比如F载了这个文件:python-3.5.l.msio然后完成安装,再系统环境变量中添加安装目录的路径,重启系统。给京环垸分第XD:python35Scripts96USERPROFlLE96AppDataLocalMierosoftWindowsApps断建(2浏军)副咖D)上修(5下移(。)0讣Linux安装SUniDnefLinux系统默认可能已经安装了Python。只需输入python即可显示交互式命令行。$python3Python3.5.1(default,Nov132017,19:24:16)GCC4.6.3on1inux2Type"help","copyright","credits"or"license“formoreinformation.»>如果没有该进入该环境,就需要安装了,一种最简单的方法:> redhat系列:$yuminstal1python3-y> ubuntu系列:$sudoapt-getinstallpython3-y%检查是否安装csunilhei在windowsJl,打开CMD输入python-V如果安装成功,则显示Python版本信息:BBC:Windowssystem32cmd.exeZ:Usersadmin>python-VPython3.5.3:Usersadr(在Linux上,打开终端,输入python3-V如果安装成功,则也会显示Python版本信息。Python执行环境BUSINESSECU?TySTRATEGY.©swee)%命令行执行环境csunilheiIfllnefPython安装IDLE使用Python程序调试在已安装python环境的计算机中,打开CMD,输入python(windows环境)进入到python命令行执行环境。»表示提示符,在这个位置开始输入Python关键字、语句、函数等IDLE执行环境IDLE是Python自带的IDE集成开发环境(windows环境)建文件,编辑文件即可进入文件编辑环境。Python3.5.3ShellFileE.ditShellDebugOptionsWindowHelp>>>print;'Hellowoz*l(ihalloworld>»csunilheio开始->Python->IDLE,点击IDLE就会打开IDLE环境。新Windows程序执行csunilhei双击windows下的脚本就可以执行。因为系统根据文件的结尾标准符(.py)找到python解释器去执行。不过不推荐,由于脚本执行非常快,程序一闪而过。建议在CMD行环境下,输入脚本的绝对路径或者相对路径;或者用IDLE打开,在运行菜单中,点击运行模块(F5)。“*Pytnon3.5.3Shell-XFileEditShellDebugOptionsWindowHelpLinux程序执行Linux系统有三种执行方法:1、直接调用Python解释器运行脚本。$python3./calculator.py2、在Python脚本开始行添加#!/usr/bin/python设置脚本为可执行$chmod+x*.py然后运行脚本$./*.py注意添加为python全路径。3、在Python脚本开始行添加tt!/usr/bin/envpython设置脚本为可执行$chmod+x*.py然后运行脚本$./*.py注意添加为env全路径。sunm初%IDLE使用<SVfi(nne(MMPython安装Python执行环境IDLE使用Python程序调试Python帮助文档% IDLE界面设置csunilhei打开IDLE,点击选择菜单,点击配置,配置界面,设置背景颜色、关键字颜色、字体大小等Custom HighlightingHighlighting ThemeSelect :Choose Colour for :a Built-in ThemeNormal TextIDLE ClassiczhouccDelete Custom ThemeSave as New Custom Themea Custom ThemeApplycursor?,LitFonts/TabsHighlightingIKeysGeneralIExtensionsityoucanclickiiere#tochooseiternsdeffuncr*”.string,.string'selected»_roundlist*breakpoint(“1IDLE快捷键设置csunilhei打开IDLE配置界面,选择快捷键设置。®SettingsExtensionsFonts/TabsIHighlighting|Key*|GeneralKeySetCUseaBuilt-inKeySetIDLEClassicWindowsJUseaCustomKeySet-nocustomkeys-Delete Custom Key SetSaveasNewCustomKeySetCustomKeyBindingsAction-Key(s)beginning-of-line-«Key-Home>center-insert-<Control-Key-1><Control-Key-L>change*indentwidth-<Alt-Key-u><Meta-Key-u»<Alt-Key-U>«Metacheck-module-<Alt-Key-x>close-all-windows-<Control-Key-q><Control-Key-Q>close-window-<Alt-Key-F4»<Meta-Key-F4>comment-region-<Alt-Key-3»<Meta-Key-3>copy-<Control-Key-c><Control-Key-C>cut<Control«Key-x>«Control-Key-X>dedent-region-<Control-Key-bracketleft>GetNewKeysforSelectionApplyCancelIDLE常用快捷键介绍补全完成TAB补全Alt+1注释ALT+3取消注释ALT+4加缩进CTRL+减缩进CTRL+E前一语句ALT+P后一语句ALT+N<SUflOlne(Python程序调试<sunmne(,IIK-ohon安装%IDLE调试第一步:打开pythonshell»并在shell中打开debugerVPython3.4.4Shell1FileEditShellDebugOptionsWindowHelpPython3.4tel)onw:Typencopyi>>>IGotoFile/Unef5a6,Dec202015,r"license()"forrrDebuggerQariViwrAuto-openStackViewer第二步:从该shell中打开想要调试的.py文件,选中某行,woraLisi:=open<./LOmpuxersciencewhileTruecontent=inputifcontentinbreakdata=,type,:,AUTO,,csunilhei右键设置断点% IDLE调试sun*第三步:运行.py文件ydlnput.py-c'一-一rFileEditFormatRunOptfonsWindowHimporturlliPythonShellimporturllicheckModuleARunModule注意:py文件需要运行在与已经打开了debuger的shell中,如果是运行的时候又新打开了一个shell,debuger将不能捕获到运行信息第四步:从该shell中打开想要调试的.py文件,选中某行,右键设置断点woracisxopen(.Vvompuxer5x'iencewhileTrue:|content=input?ifcontentinSetBreakpointtype*:*AUTO1JClearBreakpoint%IDLE调试csunilhei第五步:调试步骤<sunn)ne(Pdb调试pdb是python自带的一个包,为python程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。睇break或bIS置断点设置Sf点continue或clist或1直看当前行的代码段step或s跃然return或r例行代码百刽从N前函融正5exit或q中止并退出next或n执行下TiPP打印变量的值help号助% Pdb调试csunilhei右键用IDLE(Python默认IDE)打开文件进行编辑,在脚本开始位置导入pdb模块,在脚本需要调试的位置/行添加断点语句pdb.sel_trace(),运行脚本(run->runModule),此时脚本运行到pdb.settrace。下一位置停下,需要输入相应命令才执行。pdb调试常用命令:n下一步P打印s单步进入函数b动态添加断点I显示代码运行的位置q退出调试Pyhton帮助文档MBUSINESS吁黑整<sunmne(,10JPython安装QPython帮珠叁帮助文档csunilhei1、在Python安装程序目录的doc目录有官方提供的帮助文档。2、Python官方提供的在线帮助。httDS:www.Dvthon.ore/doc/3、IDLE快捷键Fl显示帮助文档4、书籍推荐:<<Python核心编程第二版人民邮电出版社«Python程序设计清华大学出版社Python快速入门程序的输入和输出BUSINESS皿。口STRATEGY*o-a%标准输入<sunmr)e(读取键盘输入Pyth.n提供了input。置函数从标准输入读入一行文本,默认的标准输入是键盘。input可以接收一个Python表达式作为输入,并将运算结果返回一字符串。可以通过help(input)查看input用法input(pfompf)Kthepromptargumentispresent,itiswrittentostandardoutputwithoutatrailingnewline.Thefunctionthenreadsalinefrominput,convertsittoastnng(strippingatrailingnewline),andreturnsthatWhenEOFisread,EOFErrorisraisedExample:>>>s=input。一')>NontyPython'sFlyingCircus>»s"MontyPython*sFlyingCircus*乐文件输出<sunmne(Python两种输出值的方式:表达式语句和print0函数。第三种方式是使用文件对象的wrile()方法,标准输出文件可以用sys.stdout引用。如果你希望输出的形式更加多样,可以使用str.format0函数来格式化输出值。如果你希望将输出的值转成字符串,可以使用reprO或str()函数来实现。str():函数返回一个用户易读的表达形式。reprO:产生一个解释器易读的表达形式。可以通过help(prinl)查看print函数用法。print(*oO/ecfs,sep=",end=W,file-sysstdout,(lush=False)Printobjectstothetextstreamfile,separatedbysepandfollowedbyend.sep,endandfile,ifpresent,mustbegivenaskeywordargumentsAllnoc-keywordargumentsareconveitedtostringslikestr()doesandwrittentothestream,separatedbysepandfollowedbyend.Bothsepandendmustbestrings;theycanalsobeNone,whichmeanstousethedefaultvaluesIfnoobjectsaregiven,print0willjustwriteendThefileargumentmustbeanobjectwitha»rite(string)method;ifitisnotpresentorHone,sys.stdoutwillbeused.Sinceprintedargumentsareconvertedtotextstnngs,print0cannotbeusedwithbinarymodefileobjects.Forthese,usefile.rrite(.)insteadWhetheroutputisbufferedisusuallydeterminedbyfile,butiftheHushkeywordargumentistrue,thestreamisforciblyflushed.Changedinversion33Addedtheflushkeywordargument.根据print用法,print函数也支持将输出重定向到文件logfile=open('/imp/mylog.txt','a')print('Fatalerror:invalidinput!',file=logfile)print("o&/ecfs,sep=".end=yn',file=sys.stdout,flush=False)Pnntobjectstothetextstreamfile,separatedbysepandfollowedbyend.sep,endandfile,ifpresent,mustbegivenaskeywordarguments.Allnon-keywordargumentsareconveitedtostringslikestrOdoesandwrittentothestream,separatedbysepandfollowedbyend.Bothsepandendmustbestrings;theycanalsobeHone,whichmeanstousethedefauKvalues.Ifnoobjectsaregiven,print0willjustwriteend.Thefileargumentmustbeanobjectwithatrite(string)method,ifitisnotpresentorHone,sys.stdoutwillbeused.Sinceprintedargumentsareconveitedtotextstrings,print0cannotbeusedwithbinarymodefileobjects.Forthese,usefile.»rite(.instead.Whetheroutputisbufferedisusuallydeterminedbyfi/e,butiftheflushkeywordargumentistrue,thestreamisforciblyflushedChangedinversion33Addedtheflushkeywordargument.注释和代码块程序输入和输出注释和代码块序列和字典Offline函数、异常和类和大部分脚本及Unix-Shell语言一样,Python也使用#符号标示注释,从#开始,直到一行结束的内容都是注释。>»#onecomment.print'HelloWorld!?#anothercommentllelIoWorld!有一种叫做文档字符串的特别注释。你可以在模块、类或者函数的起始添加一个字符串,起到在线文档的功能,这是Java程序员非常熟悉的一个特性。deffoo():“Thisisadocstring.”returnTrue与普通注释不同,文档字符串可以在运行时访问,也可以用来自动生成文档。用配对的三引号(单引号或双引号)作为多行注释。%中文注释在python编写代码的时候,避免不了会出现或是用到中文,这时候你需要在文件开头加上中文注释#coding=utf-8或者:#coding=gbk以上两种都可以代表中文注释,我看过的更多人使用urf-8这种的比较多注珠变量<sunmne(%代码块代码块是通过缩进对齐表达代码逻辑的,而不是使用大括号。文件(D靖通掩至6)视朗格式(M)®M(k)设(!)宏9)运行(8)I«tFX插件Q)S8口也)WMPURL32且。IWRElBCl曲,I*4日|国?国E|画国国心门百pythonndertpy旧一/*!/usr/bm/python#coding:ucf-8WWWFunction:【教程】详解Python中代码缩进(Indent)8910Author:Version:Contact:CrifanLi2012-12-24adminatcrifandotcomFjaef1二二:-:1():从上往下找.发现第一行代码,此时,根据Python的语法,def表述函数,所以,以def所在列之后的,缩进一个层次的代码,都属于indentDemo函数- I print °Justwif _name_ indent Demo ()code黄箱卡找,发现第一行的,和上面的def所在位置,同一个列的,的代码.此代码是调用上面物函数indentDem。,所以也是可以执行的,所以就执行了瞄亍代码,获得了我们的输出结果了Pyhton是动态类型语言,也就是说不需要预先声明变量类型。变量的类型和值在赋值那一刻被初始化。变量名是大小写敏感的,Case'和'case'不是同一个变量。变量名是一些字母开头还包括下划线,其他的字符也可以是数字、字母和下划线。Python不支持自增和自减操作。Python会将一n理解为-(f)从而得到n,同理+n也一样,但是python支持增量赋值,也就是操作符和等号结合。序列和字典BUSINESS程序输入和输出注释和代码块序列和字典控制函数、异常和类%序列序列分类:常见序列类型包括字符串(普通字符串和unicode字符串),列表和元组.所谓序列,即成员有序排列,可通过下标访问Python序列通用操作1、索引2、切片(分片)start_index:endindex:step3、加法4、乘法5、成员资格6、最大值、最小值、长度%字符串Python中的字符串被定义为引号之间的字符集和。Python支持使用成对的单引号或双引号,三引号(三个连续的单引号或者双引号)可以用来包含特殊字符。使用索引操作符()和切片操作(:)可以得到子字符串。字符串有其特有的索引规则:第一个字符的索引是0,最后一个字符的索引是字符长度T或者T。加好(+)用于字符串连接运算,星号(*)则用于字符串重复。%列表列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。%元组<sunmne(Pyth.n的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。%字典<SUflmne(字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号()中,格式如下所示:d=keyl:valuel,key2:value2)键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。控制循环语句BUSINESSSTRATEGY.<SUflmne(程序输入和输出-Q函数、异常和类<sunmne(%if条件语句Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块,而计算机很多自动化任务,也是根据条件判断来实现的。我们可以通过下图,来了娠一下条件iS句旅行的过程<sunmne(if条件语句语法ifcondition1:statementblock1elifcondition2:statement_block_2else:statementblock3如果"condition“为True将执行"statement_block_l”块语句如果“condition"为False,将判断"condition_2”如果"condition_2”为True将执行z,statement_block_2z,块语句如果"condition_2”为False,将执行"statement_block_3”块语句#Python中用elif代替了elseif语法格式注意:a、每个条件后面都要使用冒号(:),表示接下来是满足条件后要执行的语句块。b、使用缩进来划分语句,相同缩进为要在一起执行的语句块c在Python没有switch-case语句与if判断语句的常用操作符if判断语句的常用操作符以下为,q常用的撵作道目总小于,卜于或桁大于3fc于干.比3”工尹不于#珠for循环语句Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。forHerating_varinsequence:statements(s)foriterating_varinsequence:statemenit(s).while循环语句Python编程中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:while判断条件:执行语句执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。执行9期口下:while循环中其他语句while循环使用else语句说明:else代码块是在while循环正常结束的时候才执行循环语句中的break和continuebreak,跳出当前循环。Countinue,跳过当次循环,执行下次循环pass语句,Pythonpass是空语句,是为了保持程序结构的完整性;pass不做任何事情,一般用占位语句函数、异常和类程序输入和输出LW注释和代码块序列和字典LW控制循环语句o函数、异常和类%函数<sunmne(捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。语法:以下为简单的try.except.else的语法:try:语句)#运行别的代码except名字):语句#如果在try部份引发了name'异常except<名字,<数据:<语句)#如果引发了name'异常,获得附加的数据else:<语句#如果没有异常发生try的工作原理是,当开始一个Uy语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。类似其它的语言,Python中的函数使用小括号()调用。函数在调用之前必须先定义。如果函数中没有return语句,就会自动返回None对象。Python是通过引用调用的。这意味着函数内对参数的改变会影响到原始对象。不过事实上只有可变对象会受此影响,对不可变对象来说,它的行为类似按值调用。定义函数:deffunction_name(arguments):“optionaldocumentationstring”functionsuite定义一个函数的语法由def关键字及紧随其后的函数名再加上该函数需要的几个参数组成。函数参数是可选的,这也是为什么把它们放到中括号中的原因。(在你的代码里千万别写上中括号!)这个语句由一个冒号(:)结束(与if和while语句的结束方式一样),之后是代表函数体的代码组。<$unmne(文件的内建函数open。、file()如何打开文件handle=open(file_name,access_mode='r')filename变量包含我们希望打开的文件的字符串名字,access_mode中'r'表示读取,'w'表示写入,'a'表示添加。其它可能用到的标声还有'+'表示读写,'b'表示二进制访问.如果未提供access_mode,默认值为'r'。如果open()成功,一个文件对象句柄会被返回。所有后续的文件操作都必须通过此文件句柄进行。当一个文件对象返回之后,我们就可以访问它的一些方法,比如readlines()和closeO.文件对象的方法属性也必须通过句点属性标识法访问。属性是与数据有关的项目,属性可以是简单的数据值,也可以是可执行对象,比如函数和方法。哪些对象拥有属性呢?很多。类,模块,文件还有复数等等对象都拥有属性。我如何访问对象属性?使用句点属性标识法。也就是说在对象名和属性名之间加一个句点:object,attribute函数dir(obj) help(obj) int (obj) len (obj) open (fn, mode) range ( start step默认值为1。input(str)str (obj) type (obj) id (obj)描述%实用的内建函数显示对象的属性,如果没有提供参数,则显示全局变量的名字以一种整齐美观的形式显示对象的文档字符串,如果没有提供任何参数,则会进入交互式帮助。将一个对象转换为整数返回对象的长度以mode(,r=读,w'=写)方式打开一个文件名为fn的文件stop,step)返回一个整数列表。起始值为start,结束值为stop-1;start默认值为0,等待用户输入一个字符串,可以提供一个可选的参数str用作提示信息。将一个对象转换为字符串返回对象的类型(返回值本身是一个type对象!)返回对象的id其他内建函数查看:dir(_buiItins_)%面向对象<$unmne(类是面向对象编程的核心,它扮演相关数据及逻辑的容器角色。它们提供了创建“真实”对象(也就是实例)的蓝图。因为Python并不强求你以面向对象的方式编程(与Java不同),此刻你也可以不学习类。不过我们还是在这儿放了些例子,以方便感兴趣的读者浏览。如何定义类classClassName(baseclasses):“optionaldocumentationsiring”staticmemberdeclarationsmethoddeclarations使用class关键字定义类。可以提供一个可选的父类或者说基类;如果没有合适的基类,那就使用object作为基类。class行之后是可选的文档字符串,静态成员定义,及方法定义。%模块<sunmne(Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。个Python程序Python语句基本规则关键字qBUSINESS内存管理Python语句基本规则Python语句中有一些基本规则和特殊字符:井号(#)表示之后的字符为Python注释;换行(n)是标准的行分隔符(通常一个语句一行);反斜线()继续上一行;分号(;)将两个语句连接在一行中;冒号(:)将代码块的头和体分开;语句(代码块)用缩进块的方式体现;不同的缩进深度分隔不同的代码块;Python文件以模块的形式组织;%基本风格<sunmne(注释注释对于自己和后来人来说都是非常重要的,特别是对那些很久没有被动过的代码而言,注释更显得有用了。既不能缺少注释,也不能过度使用注释。尽可能使注释简洁明了,并放在合适的地方。这样注释便为每个人节省了时间和精力。记住,要确保注释的准确性。文档Python还提供了一个机制,可以通过_(1_特别变量,动态获得文档字串。在模块,类声明,或函数声明中第一个没有赋值的字符串可以用属性obj._doc_来进行访问,其中obj是一个模块,类,或函数的名字。这在运行时刻也可以运行。缩进因为缩进对齐有非常重要的作用,您得考虑用什么样的缩进风格才让代码容易阅读。在选择要空的格数的时候,常识也起着非常大的作用,常用4个空格作为缩进的空格数。<sunmnel%关键字Python语句基本规则关罹字Python对象内存管理舞珠关键字Python的关键字是Python解释器已定义具有语法含义的特殊字符串,用户不能以它作为变量名称。用户可以在交互环境查看所有的关键字并用help查看关键字作用和用法。help("keywords")查看所有的关键字:FalsedefifraiseNonedelimportreturnTrueelifintryandelseiswhi1easexceptlambdawithassertfinallynonlocalyieldbreakfornotclassfromorcontinueglobalpass%关键字总结<sunmne(and:表示逻辑与del:用于list列表操作,删除一个或者连续几个元素。from:导入相应的模块,用import或者from.importnot:表示逻辑'非'while:while循环,允许重复执行一块语句,一般无限循环的情况卜用它as:as单独没有意思,是这样使用:with.as用来代替传统的try.finally语法的elif:和if配合使用的,if语句中的一个分支用elif表示global:定义全局变量,我的理解就是:要想给全局变量重新赋值,就要global一下全局变量,之后在重新赋值or:表示逻辑“或”with:和as一起用,使用的方法请看asasser