《python基础学习知识教学方案计划教案至60课(基础学习知识).doc》由会员分享,可在线阅读,更多相关《python基础学习知识教学方案计划教案至60课(基础学习知识).doc(171页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,.【Python 第1课】安装6【Python 第2课】print7【Python 第3课】IDE10【Python 第4课】输入12【Python 第5课】变量14【Python 第6课】bool16【Python 第7课】if19【Python 第8课】while23【Python 第9课】random26【Python 第10课】 变量228【Python 第11课】 逻辑判断29【Python 第12课】 for循环30【Python 第13课】 字符串32【Python 第14课】 字符串格式化34【Python 第15课】 循环的嵌套35【Python 第16课】 字符串格式化2
2、37【Python 第17课】 类型转换38【Python 第18课】 bool类型转换40【Python第19课】函数41【Python第21课】函数的参数46【Python第22课】函数应用示例47【Python第23课】if,elif,else49【Python第24课】if的嵌套54【Python第25课】初探list56【Python第26课】操作list58【Python第28课】字符串的分割65【Python第29课】连接list71【Python 第30课】 字符串的索引和切片72【Python 第31课】 读文件74【Python 第32课】 写文件76【Python 第33
3、课】 处理文件中的数据77【Python 第34课】 break83【Python 第35课】 continue84【Python 第36课】 异常处理87【Python 第37课】 字典90【Python 第38课】 模块93【Python 第39课】 用文件保存游戏(1)96【Python 第40课】 用文件保存游戏(2)98【Python 第41课】 用文件保存游戏(3)101【Python 第42课】 函数的默认参数105【Python 第43课】 查天气(1)107【Python 第44课】 查天气(2)108【Python 第45课】 查天气(3)111【Python 第46课】
4、查天气(4)113【Python 第47课】 面向对象(1)116【Python 第48课】 面向对象(2)117【Python 第49课】 面向对象(3)118【Python 第50课】 面向对象(4)120【Python 第51课】 and-or技巧123【Python 第52课】 元组124【Python 第53课】 数学运算125【Python 第54课】真值表127【Python 第55课】 正则表达式(1)128【Python 第56课】 正则表达式(2)130【Python 第57课】 正则表达式(3)131【Python 第58课】 正则表达式(4)134【Python 第59
5、课】 正则表达式(5)135【Python 第60课】 随机数137python模块的常用安装方式139正则表达式30分钟入门教程140目录140本文目标141如何使用本教程141正则表达式到底是什么东西?142入门142测试正则表达式143元字符144字符转义146重复146字符类146分枝条件147分组147反义148后向引用148零宽断言149负向零宽断言150注释151贪婪与懒惰151处理选项152平衡组/递归匹配152还有些什么东西没提到154联系作者155网上的资源及本文参考文献155更新纪录155【Python 第0课】Why Python?为什么用Python作为编程入门语言?
6、原因很简单。每种语言都会有它的支持者和反对者。去Google一下“why python”,你会得到很多结果,诸如应用范围广泛、开源、社区活跃、丰富的库、跨平台等等等等,也可能找到不少对它的批评,格式死板、效率低、国内用的人很少之类。不过这些优缺点的权衡都是程序员们的烦恼。作为一个想要学点编程入门的初学者来说,简单才是最重要的。当学C+的同学还在写链表,学Java的同学还在折腾运行环境的时候,学Python的你已经像上图一样飞上天了。当然,除了简单,还有一个重要的原因:因为我现在每天都在写Python。虽然以后可能会讲些手机编程之类(如果真的有那么一天_),但目前这时候,各位也就看菜吃饭,有啥吃
7、啥了。每天5分钟,先别计较太多。况且Python还是挺有利于形成良好编程思维的一门语言。推荐两本我个人比较喜欢的Python入门书籍,一本是简明Python教程,我自己最开始就是看着它学的,接下来也会大体参考里面的内容讲。另一本是Head First Python,Head First系列都是非常浅显易懂的入门类书籍,虽然我只瞄过几眼,但感觉还是不错的。【Python 第1课】安装进入Python的官方下载页面http:/www.python.org/download/你会看到一堆下载链接。我们就选“Python 2.7.5 Windows Installer”,如果是64位系统的同学选下面那
8、个“Python 2.7.5 Windows X86-64 Installer”。为什么不选最上面那个3.3.2的新版本?因为我在用python2.7.x,python3改了不少地方,不熟。下载之后,就和装其他软件一样,双击,一路Next,想换安装路径的同学可以换个位置。但不管换不换,请把这个路径复制下来,比如我的是“C:python27”,后面要用到它。安装结束还没完,我们还差最后一步:设置环境变量。这是什么东西我暂时先不解释,大家照着做就好。右键单击我的电脑(不,是你的电脑),依次点击属性-高级-环境变量,在“系统变量”表单中点击叫做Path的变量,然后编辑这个变量,把“;C:Python
9、27”,也就是你刚才复制的安装路径,加到它的结尾。注意!要用英文分号和前面已有的内容隔开。然后点确定,点确定,再点确定。完成。怎么知道你已经成功安装了Python呢?这时候你需要打开命令行,或者叫命令提示符、控制台。方法是:点击开始菜单-程序-附件-命令提示符;或者直接在桌面按快捷键“Win+r”,Win键就是Ctrl和Alt旁边那个有windows图标的键,输入cmd,回车。这时候你就看到可爱的黑底白字了。在命令行里输入python,回车。如果看到诸如:Python 2.7.5 (default, May 15 2013, 22:43:36) MSC v.1500 32 bit (Intel
10、) on win32的提示文字,恭喜你!否则,请重新检查你哪里的打开方式不对,或者直接给我留言。接下来,你就可以输入那句程序员最爱的print “Hello World”向Python的世界里发出第一声啼哭。嗯。如果这么几步你还是被绕晕了,没关系,我还留了一手:打开你的浏览器,Google一下“python online”,点击第一条结果“Execute Python Script Online”;或者直接打开,找到Python点进去。http:/ Sctipt”,就可以在右边页面看到输出结果。那Mac的同学怎么办?Mac上叫“终端”,英文版叫Terminal,可以在“应用程序”里找到,也可以
11、直接在你的Mac上搜索“终端”或者“Terminal”找到。打开之后输入“python”,回车,就可以进入python了。好了,今天就这么多,快去试试你的python,输出一行“Hello World”吧。完成的同学可以截个屏发给我。欢迎各种建议、讨论和闲聊,当然更欢迎你把这里分享给更多的朋友。我今天发现昨天提供的网站有时候会很慢,甚至无法正常运行,于是我又找了一个:http:/似乎要快一点,不过好像只能在电脑上的浏览器打开。另外就是,昨天忘了给Mac的同学们说一下怎么打开命令行。Mac上叫做“终端”或者“Terminal”,可以在“应用程序”里找到,也可以直接在“spotlight”里直接输
12、入“Terminal”打开。打开后就可以通过“python”命令进入开发环境了。【Python 第2课】printprint,中文意思是打印,在python里它不是往纸上打印,而是打印在命令行,或者叫终端、控制台里面。print是python里很基本很常见的一个操作,它的操作对象是一个字符串(什么是字符串,此处按住不表,且待日后慢慢道来)。基本格式是: print 你要打印的东西或者 print(你要打印的东西)这里一定要英文字符的括号,所有程序中出现的符号都必须是英文字符,注意别被你的输入法坑了。各位同学可以在自己的python环境中试着输出以下内容(这里是命令行下的效果,使用在线编辑器或者
13、IDE的同学,只需要输入“”后面的内容就可以了): print hellohello print worldworld print 11 print 3.143.14 print 3e303e+30 print 1 + 2 * 37 print 2 5False直接在print后面加一段文字来输出的话,需要给文字加上双引号或者单引号。大家发现,print除了打印文字之外,还能输出各种数字、运算结果、比较结果等。你们试着自己print一些别的东西,看看哪些能成功,哪些会失败,有兴趣的话再猜一猜失败的原因。其实在python命令行下,print是可以省略的,默认就会输出每一次命令的结果。就像这样:
14、 Your YiDa!Your YiDa! 2+13+250265 5“程序”-“Python 2.7”里找到它。打开后之后很像我们之前用过的命令行。没错,它就是的,在里面print一下试试。不知之前用命令行的同学有没有注意到,命令行输一行命令就会返回结果,而且之前print了那么多,关掉之后也不知道到哪里去了。所以它没法满足我们编写弱智小游戏的大计划。我们需要用新的方法!点击窗口上方菜单栏的“File”-“New Window”,会打一个长得很像的新窗口,但里面什么也没有。这是一个文本编辑器,在这里面就可以写我们的python程序了。继续print几行,这次可以多print一点:print
15、Helloprint IDEprint Here I am.现在是,见证奇迹的时刻!点击“Run”-“Run Module”,或者直接按快捷键F5。会提示你保存刚才文件,随便取个名字,比如“lesson3.py”。(.py是python代码文件的类型,虽然不指定.py也是可以的,但建议还按规范来)保存完毕后,之前那个控制台窗口里就会一次性输出你要的结果。以后想再次编辑或运行刚才的代码,只要在IDLE里选择“File”-“Open.”,打开刚才保存的.py文件就可以了。Mac上的IDLE是预装好了,在“终端”里输入“IDLE”就可以启动,使用方法同Windows。也可以在文件夹/usr/bin里
16、可以找到IDLE。如果是重新下载安装了python,似乎是可以在“应用程序”里找到IDLE的,Mac的同学可以验证下。另外,Windows下有一个第三方的免费IDE,叫PyScripter,把文件目录、文本编辑器、命令行都整合到了一起,还增加了很多辅助功能。有兴趣的同学也可以去找来试试看。地址:http:/ 第4课】输入前print了那么多,都是程序在向屏幕“输出”。那有来得有往,有借得有还,有吃。咳咳!那啥,我们得有向程序“输入”信息的办法,才能和程序对话,进行所谓的“人机交互”。python有一个接收命令行下输入的方法:input()注意,和print不同的是,这次我们必须得加上()了,而
17、且得是英文字符的括号。好了,终于可以搬出那个弱智小游戏了,耶!游戏里我们需要跟程序一问一答,所以我们先把话给说上。打开我们的python编辑器,不管是IDLE,在线编辑器,还是其他的IDE。在代码编辑器中输入下面几句代码:print Who do you think I am?input()print Oh, yes!然后,Run!(Forrest Run!)你会在命令行中看到,程序输出了第一句之后就停住了,这是input在等待你的输入。输入你的回答,回车。你会看到程序的回答。注意!引号!又是引号!和print一样,如果你输的是一串文字,要用引号或者引起来,如果是数字则不用。(插一句,pyth
18、on还有一个输入的方法:raw_input(),它把所有的输入都直接当作一串字符,于是就可以不用加引号,有兴趣的同学可以试一试,体会一下两者的不同。关于这个令人纠结的引号,我们以后会再讨论它。)看上去不错哦,似乎就这么对上话了。是不是觉得离小游戏的完成迈进了一大步?可是大家发现没有,即使你说Idiot!,程序仍然会淡定地回答Oh, yes!因为它左耳进右耳出,根本就没听进去我们到底说了啥。那怎么才能让它认真听话呢?啪!且听下回分解。回顾一下我们之前几节课。我们到现在一共提到了三种可以运行print的方式:1. 命令行,包括Win下的控制台(CMD)和Mac下的终端(Terminal)。它可以帮
19、我们确认自己电脑上的python是不是正常。但是这种方法很难帮我们实现写一个完整小程序的目标。2. IDE,包括python自带的IDLE和其他第三方的IDE。不知道大家是不是都顺利搞定,并且能顺利保存并打开py文件了呢?以后我们课程里的内容,你都可以在这里面进行。3. 在线编辑器,compileonline或者pythonfiddle。他们同样包括代码编辑器(写代码的地方)和控制台(输出结果的地方)两部分。所以我们在本地IDE里的操作都可以在其中实现。只不过保存文件会有些复杂,compileonline是点击download files打包下载,pythonfiddle需要注册一下。当然,你
20、也可以直接把你写好的代码复制下来,保存在本地,下次再粘贴上去接着写。【Python 第5课】变量昨天说到,需要让程序理解我们输入的东西。那首先,就需要有东西把我们输入的内容记录下来,好为接下来的操作做准备。Python之神说,要有变量!于是就有了变量。变量,望文生义,就是变化的量。python里创建一个变量的方法很简单,给它起个名字,然后给它一个值。举起几个栗子:name = CrossinmyVar = 123price = 5.99visible = True“=”的作用是把右边的值赋予给左边的变量。这里说一下另外一个概念,叫做“数据类型”,上面4颗栗子分别代表了python中较常见的四种
21、基本类型:字符串 - 表示一串字符,需要用或引起来整数浮点数 - 就是小数bool(布尔) - 这个比较特殊,是用来表示逻辑“是”“非”的一种类型,它只有两个值,True和False。(注意这里没有引号,有了引号就变成字符串了)再次用到我们熟悉的print。这次,我们升级了,要用print输出一个“变量”:name = Crossinprint name看到结果了吗?没有输出“name”,也没有报错,而是输出了“Crossin”。现在是不是能想明白一些,为什么之前print一段文字没加引号就会报错,而print一个数字就没有问题呢?它叫变量,那就是能变的。所以在一次“赋值”操作之后,还可以继续
22、给它赋予新的值,而且可以是不同类型的值。a = 123print aa = hiprint a“=”的右边还可以更复杂一点,比如是一个计算出的值:value = 3 * 4print valuevalue = 2 5print value甚至,也可以是input():name = input()print name于是,我们又可以进化一下我们的小游戏了。把上次写的内容稍微改一下,加上变量:print Who do you think I am?you = input()print Oh, yes! I am aprint you看来程序已经知道我们的输入了。接下来,就要让它学会对不同的答案做出
23、判断。这个我们留到下次再说。今天是周五。我觉得吧,到周末了,大家应该远离一下电脑,多陪陪家人朋友,吃吃饭,出去走走。祝大家周末愉快!【Python 第6课】bool昨天说到了python中的几个基本类型,字符串、整数、浮点数都还算好理解,关于剩下的那个bool(布尔值)我要稍微多说几句。逻辑判断在编程中是非常重要的。大量的复杂程序在根本上都是建立在“真”与“假”的基本逻辑之上。而bool所表示的就是这种最单纯最本质的True / Flase,真与假,是与非。来看下面的例子:a = 1 c通过用“”“”“:大于=:大于等于=:小于等于=:等于。比较两个值是否相等。之所以用两个等号,是为了和变量赋
24、值区分开来。!=:不等与not:逻辑“非”。如果x为True,则not x为Falseand:逻辑“与”。如果x为True,且y为True,则x and y为Trueor:逻辑“或”。如果x、y中至少有一个为True,则x or y为True关于bool值和逻辑运算其实远不止这些,但现在我们暂时不去考虑那么多,以免被绕得找不到北。最基本的大于、小于、等于已经够我们先用一用的了。试试把bool加到我们的小游戏里:num = 10print Guess what I think?answer = input()result = answernumprint too big?print result
25、result = answer=numprint equal?print result代码比之前稍微多了一点,解释一下。第一段代码:先创建一个值为10的变量num,输出一句提示,然后再输入一个值给变量answer。第二段代码:计算answernum的结果,记录在result里,输出提示,再输出结果。第三段、第四段都与第二段类似,只是比较的内容不一样。看看结果是不是跟你预期的一致?虽然看上去还是有点傻,但是离目标又进了一步。现在数数你手上的工具:输入、输出,用来记录数值的变量,还有可以比较数值大小的逻辑运算。用它们在你的python里折腾一番吧。【Python 第7课】if继续上次的程序。我们已
26、经能让判断我们输入的值了,但这程序还是有点呆,不过怎样都要把话说三遍。因为到目前为止,我们的程序都是按照顺序从上到下一行接一行地执行。有同学发来问题了:怎么能让它根据我们输入的结果来选择执行呢?答案就是 if来看一张图(纯手绘,渣画质)解释一下,程序顺序往下执行遇到if语句的时候,会去判断它所带条件的真假。“如果”为True,就会去执行接下来的内容。“如果”为False,就跳过。语法为:if 条件:选择执行的语句特别说明:条件后面的冒号不能少,同样必须是英文字符。特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格。python用这种方法替代了其他很多编程语言中的。你也可以选择1/
27、2/3.个空格或者按一下tab键,但必须整个文件中都统一起来。千万不可以tab和空格混用,不然就会出现各种莫名其妙的错误。所以建议都直接用4个空格。上栗子:thisIsLove = input()if thisIsLove:print 再转身就该勇敢留下来试试看?输入True,就会得到回答。输入False,什么也没有。(如果你那里输出中文有问题,请自行改成英文)所以,我们的游戏可以这样改写:num = 10print Guess what I think?answer = input()if answernum:print too big!if answer=num:print BINGO!i
28、f在编程语言中被称为“控制流语句”,用来控制程序的执行顺序。还有其他的控制流语句,后面我们会用到。重新发一下代码thisIsLove = input()if thisIsLove:print 再转身就该勇敢留下来=num = 10print Guess what I think?answer = input()if answernum:print too big!if answer=num:print BINGO!【Python 第8课】while先介绍一个新东西:注释。python里,以“#”开头的文字都不会被认为是可执行的代码。print “hello world”和print hello
29、 world #输出一行字是同样的效果。但后者可以帮助开发者更好地理解代码。在接下来的课程中,我会经常用注释来解释代码。用if改进完我们的小游戏后,功能已经基本实现了。很多同学做完后纷纷表示,每次只能猜一次,完了之后又得重新run,感觉好麻烦。能不能有办法让玩家一直猜,直到猜中为止?答案很显然,如果这种小问题都解决不了,那python可就弱爆了。最简单的解决方法就是while。同if一样,while也是一种控制流语句,另外它也被称作循环语句。继续来看渣画质手绘流程图:程序执行到while处,“当”条件为True时,就去执行while内部的代码,“当”条件为False时,就跳过。语法为:whil
30、e 条件:循环执行的语句同if一样,注意冒号,注意缩进。今天的栗子:a = 1 #先a设为1while a != 0: #a不等于0就一直做print please inputa = input()print over想想怎么用while改进小游戏?有多种写法,大家自己思考下,我不多做说明了。下图给出一种方法。注意,这里出现了两层缩进,要保持每层缩进的空格数相同。到此为止,小游戏已经基本成型了。不过好像还差一点:每次自己都知道答案,这玩起来有神马意思。明天来讲,怎么让你不知道电脑的答案。【Python 第9课】random之前我们用了很多次的print和input方法,它们的作用是实现控制台的
31、输入和输出。除此之外,python还提供了很多模块,用来实现各种常见的功能,比如时间处理、科学计算、网络请求、随机数等等等等。今天我就来说说,如何用python自带的随机数模块,给我们的小游戏增加不确定性。引入模块的方法:from 模块名 import 方法名看不懂没关系,这东西以后我们会反复用到。今天你只要记住,你想要产生一个随机的整数,就在程序的最开头写上:from random import randint之后你就可以用randint来产生随机数了。还记得input后面的()吗,我们使用randint的时候后面也要有()。而且,还要在括号中提供两个数字,先后分别是产生随机整数范围的下限和
32、上限。例如:randint(5, 10)这样将会产生一个5到10之间(包括5和10)的随机整数。放到我们的小游戏里,用answer = randint(1, 100)替代answer = 10程序在运行时候,会产生一个1到100的随机整数,存在answer里,我们也不知道是多少,真的全靠猜了。好了,觉得还有点意思么?我们终于一步步把这个弱智小游戏给做出来了,有没有一丁点的成就感呢?如果你对其中的某些细节还不是很理解,恭喜你,你已经开始入门了。相信你会带着一颗追求真相的心,在编程这条路上不断走下去。我们的课程,也才刚刚开始。【Python 第10课】 变量2变量这东西,我们已经用过。有了变量,就
33、可以存储和计算数据。今天来讲点变量的细节。#= 变量命名规则 =#变量名不是你想起就能起的:第一个字符必须是字母或者下划线“_”剩下的部分可以是字母、下划线“_”或数字(0-9)变量名称是对大小写敏感的,myname和myName不是同一个变量。几个有效的栗子:i_my_namename_23a1b2_c3几个坏掉的栗子(想一下为什么不对):2thingsthis is spaced outmy-name#= 变量的运算 =#我们前面有用到变量来存储数据: num = 10answer = input()也有用到变量来比较大小: answer num除此之外,变量还可以进行数学运算: a =
34、5 b = a + 3 c = a + bpython中运算的顺序是,先把“=”右边的结果算出了,再赋值给左边的变量。下面这个例子: a = 5 a = a + 3 print a你会看到,输出了8,因为先计算出了右边的值为8,再把8赋给左边的a。通过这种方法,可以实现累加求和的效果。它还有个简化的写法:a += 3这个和a = a + 3是一样的。于是,利用变量、循环、累加,可以写一个程序,来完成传说中高斯大牛在小时候做过的题:1+2+3+.+100=?从1加到100等于多少?提示:你可以用一个变量记录现在加到几了,再用一个变量记录加出来的结果,通过while来判断是不是加到100了。【Py
35、thon 第11课】 逻辑判断之前粗略地提到bool类型的变量,又说到if和while的判断条件。有些同学反馈说没怎么理解,为什么一会儿是bingo=False,一会又是bingo=False,一会儿是while在条件为True的时候执行,一会儿又是while在bingo=False的时候执行。别急,你听我说。首先,要理解,一个逻辑表达式,其实最终是代表了一个bool类型的结果,比如:1 3 #Falseprint a=2-1 #Trueb = 3print a+b=2+2 #True比较容易搞混的,是bool变量的值和一个逻辑表达式的值,比如:a = Falseprint a #Falsep
36、rint a=False #True虽然a本身的值是False,但是a=False这个表达式的值是True。(说人话!)“a”是错的,但“a是错的”这句话是对的。回到上面那几个概念:bingo=False把bingo设为一个值为False的变量bingo=False判断bingo的值是不是False,如果是,那么这句话就是Truewhile在判断条件条件为True时执行循环,所以当bingo=False时,条件为True,循环是要执行的。晕了没?谁刚学谁都晕。不晕的属于骨骼惊奇百年一遇的编程奇才,还不赶紧转行做程序员!逻辑这东西是初学编程的一大坑,我们后面还要在这个坑里挣扎很久。留个习题:a
37、= Trueb = not a #不记得not请回复6想想下面这些逻辑运算的结果,然后用print看看你想的对不对:bnot ba = ba != ba and ba or b12 and b=True【Python 第12课】 for循环大家对while循环已经有点熟悉了吧?今天我们来讲另一种循环语句:for . in .同while一样,for循环可以用来重复做一件事情。在某些场景下,它比while更好用。比如之前的一道习题:输出1到100(回复903可看详细内容)。我们用while来做,需要有一个值来记录已经做了多少次,还需要在while后面判断是不是到了100。如果用for循环,则可以
38、这么写:for i in range(1, 101):print i解释一下,range(1, 101)表示从1开始,到101为止(不包括101),取其中所有的整数。for i in range(1, 101)就是说,把这些数,依次赋值给变量i。相当于一个一个循环过去,第一次i = 1,第二次i = 2,直到i = 100。当i = 101时跳出循环。所以,当你需要一个循环10次的循环,你就只需要写:for i in range(1, 11)或者for i in range(0, 10)区别在于前者i是从1到10,后者i是从0到9。当然,你也可以不用i这个变量名。比如一个循环n次的循环:for
39、 count in range(0, n)for循环的本质是对一个序列中的元素进行递归。什么是序列,以后再说。先记住这个最简单的形式:for i in range(a, b)从a循环至b-1现在,你可以用for循环来改写习题903,904,905,906了。【Python 第13课】 字符串字符串就是一组字符的序列(序列!又见序列!还记得我说过,range就是产生一组整数序列。今天仍然不去细说它。),它一向是编程中的常见问题。之前我们用过它,以后我们还要不停地用它。python中最常用的字符串表示方式是单引号()和双引号()。我还是要再说:一定得是英文字符!string和“string”的效果是一样的。可以直接输出一个字符串print good也可以用一个变量来保存字符串,然后输出str = badprint str如果你想表示一段带有英文单引号或者双引号的文字,那么表示这个字符串的引号就要与内容区别开。内容带有单