Python教案-教学设计_第1页
Python教案-教学设计_第2页
Python教案-教学设计_第3页
Python教案-教学设计_第4页
Python教案-教学设计_第5页
已阅读5页,还剩95页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python教案 教学设计课题 程序设计基--绪论教 1.了解程序设计语言的发展历史学 2.理解Python语言的特点及其重要

时间:目标教学重点

掌握Python语言Hello程序的编写方法掌握Python语言开发的运行环境的配置Python语言的特点及其重要性Python语言开发的运行环境的配置教学难点Python语言开发的运行环境的配置主要教法 讲授演示法+上机操作教 学 过 程一、新课导入计算机的定义:能够根据指令操作数据的设备计算机的两个特性功能性可编程性计算机的可编程性需要通过程序设计来体现程序设计语言:计算机能够理解和识别操作的一种交互体系程序设计语言的种类机器语言汇编语言高级语言常用的程序设计语言高级语言的执行方法静态语言:编译执行脚本语言:解释执行1/98编译和解释的区别

Python教案 教学设计编译:一次性的翻译,需对目标代码优化解释:每次运行都需要编译:源代码(高级语言)转换成目标代码(机器语言)解释:源代码逐条转化成目标代码同时逐条运行目标代码的过程编译的好处目标代码执行速度更快目标代码在相同操作系统上使用灵活解释的好处便于维护源代码良好的可移植性Python计算机已成为普通工具学会编程:满足感和安全感C/C++等语言:复杂Python语言:充满快乐和创造性的全新旅程•Python语言概述Python语言的历史诞生于 1989年,已有25年,达到成熟期– 2000年,Python2.0,2,.7.6– 2008年,Python3.0,3.4.xPython语言的特点强制缩进保证可读性不需要主函数可以同时被解释和编译执行语言简洁2/98Python教案 教学设计编程模式灵活(面向过程和面向对象)Python语言的开发环境配置Python运行环境PythonPython基本开发和运行环境,网址:根据操作系统选择不同版本Python2.7.6版本程序,跟随提示安装Python运行环境Windowspython,在>>>Pythonexit()quit()退出IDLEPython运行环境,hello.pyWindows命令行,使用命令pythonhello.py来运行文件Python运行环境IDLE,Ctrl+NF5即可运行该程序PythonEclipse等面向较大规模项目开发的集成开发环境中PythonWindows上的配置方法类似Hello程序你的第一个程序:在屏幕上打印出“Helloprint“Hello显示效果如下:二、上机练习Python接着完成第一个程序“Hello三、本课小结计算机的基本概念程序设计语言分类编译和解释Python语言概述Python的Hello程序编写及开发环境配置课后反思3/98PAGEPAGE8/98时间:教学目标教学重点

Python教案 教学设计Python程序语言入门让学生了解什么是编程及对编程提起浓厚的学习兴趣;·PythonShell、GUI和Prompt(提示符)的理解;·学会与Python交互的方法,print指令;·新建程序文本文档、运行程序的方法、保存时需要注意什么;·学会怎样去查询程序的错误;·让学生对编程提起浓厚的兴趣;·print指令的运用;·识别和修正程序的错误。·识别和修正程序的错误;讲授演示法+上机操作教 学 过 程一、复习巩固1、什么是编程?2、Python-我们和计算机沟通的语言所想要表达 编程软件翻 计算机接的意思 译成二进制 并执行常用、最流行的几种程序语言:C、C++、C#、Java、VB、python3、Python可以用来做什么·开发游戏&软件(python编写;·Flas(webflashgame;·创建数据库;·hacke(or软件;·发明变形金刚2006FANUC推出的人工智能机器人;·学习其他语言的基础(所有程序语言都有共同性,学好python理解其他程序语言;·python几乎无所不能。========python的人都能成功================ 但是学习python你将获利以下几点 ========√让你的思维更加敏捷!√让你变的知识渊博!√让你学习更多的英文!============ 也有可能带来一些“负面影响”===========×你的皮肤会变得粗糙>_<×你可能会变成一枚宅男╯□╰×花500元买一副眼镜⊙﹏⊙二、上机操作从IDLE启动pythonPython教案 教学设计1、通过开始菜单;好比三种第一种:2B青年三种方法2、通过快捷方式;第二种:普通青年3、通过快捷键;网络青年第三种:文艺青年·窗口标题栏的文字“PythonShell”-中文意思是“python与程序交互途径的一种。·GU”-中文意思是“图形用户界面GUI按钮、滚动条等。没有这些特性的程序叫做文本模式程序command命令行程序)*GUItext-mode、commandline?(答案:windows窗口 DOS)·-叫做提示符(Prompt,指程序正在等待你键入信息时显示的符号。三、来点指令吧!>>>print“Heyman!”回车(每输入完一行指令都要输入回车以跳转到下一行)Print-打印(命令,指在屏幕上显示文本,而不是常说的用打印机打印在纸上。颜色<<问:IDEL里为什么会有这些奇妙的颜色呢?不同的部分,print的颜色就是橙色。错误<<问:SyntaxError:invalidsyntax是个什么东西?答:直译“语法错误:无效的语法python不懂你输入的内容,因为printpoint。四、与python交互我们刚刚执行的第一条指令:heymanpython交流的过程就叫做交互。多试一条指令!>>>print5+38>>>计算机非常擅长算术运算,计算机被创造出来的初期就是被用来数据计算。再试一条指令!>>>print5*315>>>======Mr.LeeTIPS======几乎所有计算机程序和语言中都使用*符号作为乘号。这个符号称作“星号”或“星======口算&计算器&python三者进行对比吧======口算:Print5*3计算器:Print98765431-9876543Python:Print45487548755421*544451484484121512157======口算&计算器&python三者进行对比吧======利用python你除了可以超大数的数学计算之外,你还可以做些令人意想不到的事情,例如:Python教案 教学设计>>>print“Dog”+“brother”Dogbrother>>或者>>>print“whereisplane”*20whereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplane>>>20句whereisplaneMH370前提是马航要给力还有就是不要停电……五、编程任务python1、创建程序的方法:a.PythonShell菜单栏→File→NewWindows创建;b.快捷键:Ctrl+N。*新程序窗口标题栏显示“Untitled(未命名。如何给程序取名字2、程序1 我们的第一个程序-“我爱吃香蕉”printprint“香蕉”*20print“mua”*40print3、保存/另存(命名)你的程序文档File→Save/SaveAs输入完指令后通过 Save快:Ctrl+N 保存or另存为SaveAs快:Ctrl+Shift+S扩展名输入完程序名称后一定不要忘了加上.py,否则在python中将看不到程序中命令的颜色和windows不知道该用什么程序来打开这个文件。======Mr.LeeTIPS======如果你想要你的程序支持中文,需要在程序的第一行加上代码:#encodingXXX#XXX例如,简体中文的代码是:GBK,那么程序的第一行应写上:#encodingGBK#======Mr.LeeTIPS======六、如果出了问题在编程过程中容易出现的问题归纳为两大类:1、syntaxerro(语法错误某个内容不是正确的Python代码。例如:Python教案 教学设计>>>printwhereisplane”syntaxerror:invalidsyntax(语法错误:无效的语法)there'sanerrorisyourprogram(这是一个错误的程序)>>>错误原因:where前面漏了一个引号2runtime运行时错误IDLE或python无法检测出来的错误。例如:程序2 运行时错误-“我爱大鳄鱼”>>>printprint“我的动物园有好多好多的动物,例如:”print“鳄鱼”+5>>>错误原因:IDLE1.2.1 ========NoSubprocess=========>>>你好!欢迎来到我的动物园!我的动物园有好多好多的动物,例如:Traceback(mostrecentcalllast):(错误的开始)File“C:\Users\Administrator\Destop\ilovebigcayman.py”,line4,in<module>(错误发生的位置/程序文件保存的路径)Print“鳄鱼”+5(出错的代码行)TypeError:cannotconcatenate‘str’and‘int’objects(python认为可能存在的问题,并不一定是在这里,但是会在这附近)=====================思 考=====================为嘛print“鳄鱼”*5可以,print“鳄鱼”+5却不行?=====================解 惑=====================听我说,这有点像将苹果和鳄鱼放在一起,在python放在一起,比如说数字int)和文本str+55388个什么?完全没有意义。155(克隆大乱斗。七、第二个程序任务第一个程序“我爱吃香蕉NumGuess”是个不错的名字。File→NewWindows→Save→“NumGuess.py”输入以下代码:======================================================#encoding=GBK#importrandomsecret=random.randint(1,100)guess=0tries=0Python教案 教学设计print"你好,同学……我和你们班主任之间有一个秘密!?"print1-996可以获赠加多宝一罐!"whileguess!=secretandtries<6:guess=input("来猜个数字吧!?")ifguess<secret:print"太低了喔!~"elifguess>secret:print"太高了喔!~"tries=tries+1ifguess==secret:print"else:print"我不会给你更多机会了,同学!你现在得请我喝一瓶王老吉!"print"这个秘密数字就是————",secret======================================================程序解析:whileif、else、elif和input程序概念点:由程序随机选取秘密数。用户输入他猜的数。程序根据秘密数检查用户猜的结果:太大还是太小?用户不断尝试,直到猜出这个数,或者用完所有机会。猜到的数与秘密数一致时,玩家获胜。>>>教学过程结束。课堂小结:IDLE;了解了交互模式;8/98PAGEPAGE10/98Python教案 教学设计Python一些指令来执行;Python知道如何完成算术运算(包括非常大的数);启动IDLE文本编辑器键入你的第一个程序:我爱吃香蕉;Python程序;了解如何查看错误消息;Python程序:猜数游戏。课堂练习之用脑想一想:IDLE?print的作用是什么?Python中表示乘法和除法的符号是什么?GUI的特性包括哪些?如果想要你的程序支持中文,需要做什么?课堂练习之动手做一做:在交互模式中,使用Python计算一周有多少分钟。3(果应该是下面这样)XXXX我1988年08月20日出生。我最喜欢的颜色是粉红色。课后反思Python教案 教学设计时间:课题教学目标教学重点

判断循环if完成条件语句实例:登录认证模块学会判断输入是否合法了解三元表达式掌握循环语句for语句while掌握break、continue、pass完成循环语句实例:登录认证模块扩展if了解三元表达式掌握循环语句for语句while掌握break、continue、pass完成条件语句实例:登录认证模块完成循环语句实例:登录认证模块扩展讲授演示法+上机操作教 学 过 程一、新课讲授掌握if语句单分支if表达式:代码块1else:代码块双分支if表达式1:elif2多分支Python教案 教学设计if表达式1:代码块1elif代码块2…else:代码块_其他嵌套了解三元表达式Expression1ifboolean_expressionelseExpression2AB,maxA,maxB如:max=AifA>BelseB例如:掌握range()range(例:range(n):产生从0开始,到n的数字序列,不包括n。range(m,n)mnn。range(m,n,k)mn,kn掌握循环语句掌握for语句语法格式:forexpression1 initerable:for_suiteelse:11/98Python教案 教学设计else_suite例如:结果:12/98while

Python教案 教学设计掌握break、continue、pass语法结构:whileboolean_expression:while_suiteelse:else_suite解释:boolean_expressionTrue,;boolean_expressionFalseelse以上结构中,elseelsebreakelse例如:13/98Python教案 教学设计break:跳出所处的最近层循环continue:跳到所处的最近层循环的开始处pass:占位语句例如:执行结果:14/98Python教案 教学设计二、上机练习条件语句实例:登录认证模块判断输入是否合法非法用户提示警告信息合法用户提示登录成功username=raw_input("username:")ifusername=='':print"用户名不能为空"else:print"\033[1;33;45m登录成功,欢迎%s\033[0m"%usernamechr()ord()循环语句实例:登录认证模块扩展直接回车无效,继续输入验证用户身份是否合法三、课堂小结if语句:单分支、双分支、多分支、嵌套、三元表达式rang(forwhile、break、continue、pass登录认证模块展示课后反思15/98Python教案 教学设计时间:课题 python序列-字符串了解序列类型常用操作了解索引和切片教学目标教学重点

掌握类型转化掌握强制类型转化学会字符串转换实例:格式化输出菜单列表,将用户的输入数值转化整型并验证掌握字符串常用方法s.find()s.join()s.replace()s.split()s.strip()s.index()s.startswith/s.endswith(t)s.isalnum()/s.isalpha()/s.isdigit()/isupper()/islower()s.upper()/ s.lower()/s.ss.count()了解序列类型常用操作了解索引和切片掌握类型转化掌握强制类型转化讲授演示法+上机操作教 学 过 程一、新课讲授序列类型常用操作索引和切片1.1.1 0-1开始1.1.2 切片:例:s[0:2]1.1.3 :,例:s[0:9:2]掌握类型转化16/98格式:

Python教案 教学设计print“字符串%format1%format2…”%(变量或值1,变量或值2...)符号及其对应输出格式:%d%i 十进制整数或长整数%f 浮点数%s 字符串%% 举例:强制类型转化(例如:注意:只能将由数字组成的字符串转换为整型错误用法(:强制转换为浮点型例如17/98Python教案 教学设计str():强制转换为字符串例如:掌握字符串常用方法s.fin(tt,s.join(iter)siter如:list2=["h","e","l","l","o",".","c","o","m"]“”.join(list2)s.replac(old,new:替换s.spli(sepsepstr=str.split(".")得到["www","baidu","com"]序列s.strip(t):s1.strip()18/98Python教案 教学设计s.inde(ttt/trues.isalnum()/s.isalpha()/s.isdigit()/isupper()/islower():判断所有字符是否为数字或字母/是否为字母/是否为数字结果是bools.upper()/ s.lower()/s.s:所有字母转化为大写字母/小写字母,大小写互换s.count(t)统计t出现的次数二、上机练习并验证19/98Python教案 教学设计三、本课小结序列类型常用操作、索引和切片、类型转化、强制类型转化、字符串常用方法学生展示:字符串转换实例课后反思20/98Python教案 教学设计时间:教学目标教学重点

掌握列表基础知识掌握列表相关方法掌握序列类型操作掌握生成器掌握元组类型掌握元组相关方法掌握列表相关方法掌握序列类型操作掌握生成器掌握元组类型掌握列表相关方法掌握元组相关方法

python列表和元祖讲授演示法+上机操作教 学 过 程一、新课讲授掌握列表基础知识列表的特点:支持异构:一个列表中含不同类型的对象支持嵌套:即列表中的元素可以是列表可变:支持通过索引,切片,进行修改如何定义列表::list1=[1,3,5]方法二:使用内置函数list():内建函数list(a_sequence)可以将一个序列转为列表例1:>>>str1="dddgf">>>list1=list(str1)>>>list1['d','d','d','g','f']例2:(后面讲)21/98Python教案 教学设计>>>tuple1=(1,2,1)>>>list1=list(tuple1)>>>list1[1,2,1]例3:掌握列表相关方法:append(例如:extend(1:list2=[1,2,3]list3=[]list3.extend(list2)例222/98Python教案 教学设计insert(列表也支持索引,例如:插入例子:23/98Python教案 教学设计pop(例如:24/98Python教案 教学设计remove(例如:count(:统计指定值出现的次数index():例如:reverse(例如:25/98Python教案 教学设计查询遍历:forIinfori,kenument(list)sort(:排序掌握序列类型操作:序列类型包括:字符串、列表、元组3.1 +连接*例如:3.2 max():求最大值、min():例如:26/98Python教案 教学设计掌握列表生成式列表生成式,是Python内置的一种极其强大的生成list的表达式。用于:基于已有列表生成新列表语法结构:列表生成式的书写格式:[x*xforxinrange(1,11)]第一:把要生成的元素x*x放到前面第二:后面跟上for循环listif举例:1到10之间的偶数平方再除以2 作为新列表元素110特点:一次性生成新列表,如果列表数据过大,会消耗大量资源。掌握元组类型定义元组:()例:tuple1=(1,3,4)方法二:使用内置函数tuple():将可迭代对象中所有元素作为元组元素27/98Python教案 教学设计例:>>>list1=[1,2,3]>>>t1=tuple(list1)>>>t1(1,2,元组的特点支持异构;支持嵌套;不可变:不支持通过索引、切片,进行修改例如:掌握元组相关方法inde(:返回指定元素第一28/98Python教案 教学设计coun(例如:二、上机练习练习:三、本课小结列表基础知识、列表相关方法、序列类型操作、生成器、元组类型、元组相关方法学生完成实例操作课后反思29/98Python教案 教学设计时间:课题教学目标教学重点教学难点主要教法

添加计算机删除计算机查询可管理计算机登录模块实现查询可管理计算机

运维平台计算机管理实例讲授演示法+上机操作教 学 过 程一、学习任务二、上机练习学生上机实操:提示:30/98Python教案 教学设计三、任务展示与评价学生进行展示,完成互评与老师点评项目 分值 评价标准

得分自评 组评 师评20程序设计30运行结果 30小组配合 总体得分课后反思

编程技巧调试过程搭建合理稳固小组成员分工及配合方面31/98Python教案 教学设计时间:教学目标教学重点

掌握字典类型掌握字典的遍历掌握集合类型掌握集合相关方法掌握字典的遍历掌握集合类型掌握字典的遍历

python字典和集合讲授演示法+上机操作教 学 过 程一、新课讲授掌握字典类型字典的特点无序:通过键实现元素存取,故无序可变:可以通过键进行改变异构:支持多种数据类型嵌套:可以在键值对中的值部分出现字典定义字典:{,:}方法二:dict()内置函数:指定键值例:d2=dict(name="jerry",age="45",gender="m")关键点:分开;分开;字典中的键必须是唯一的,而值可以不唯一掌握字典相关方法2.1更新或添加元素:dict1[key]=value例如:32/98Python教案 教学设计i(例如:(例如:alue(例如:33/98Python教案 教学设计as_ke(:判断是否存在某个键,返回结果e或例如:del:python自身函数删除例如:len()例如:34/98Python教案 教学设计(例如:(例如:(:弹出指定键对应的值(:随机弹出键值对35/98Python教案 教学设计例如:

clear():清除所有元素掌握字典的遍历:掌握集合类型36/98Python教案 教学设计什么是集合无序、互异,支持迭代不支持索引,切片元素唯一set{元素}方法二:内置函数set()例:集合相关方法:l(例如:ad(例如:删除元素37/98Python教案 教学设计例如:(例如:pop()例如:集合关系操作t的并集例如:38/98Python教案 教学设计例如:t的交集例如:s集合而不存在于t集合中的例如:39/98Python教案 教学设计二、上机练习学生上机完成字典类型、字典相关方法、字典的遍历、集合类型、集合相关方法的案例练习。三、本课小结字典类型、字典的遍历、集合类型、集合相关方法课后反思40/98Python教案 教学设计时间:教学目标教学重点教学难点

掌握如何创建文件对象掌握open()掌握open()的附加模式掌握文件对象的相关方法掌握文件对象的相关属性掌握如何创建文件对象掌握open()掌握open()的附加模式掌握文件对象的相关方法掌握文件对象的相关属性

python文件处理主要教法

讲授演示法+上机操作教 学 过 程一、新课讲授掌握如何创建文件对象open()file():用于打开文件和创建文件对象,返回文件对象with打开文件:withopen('password')asf:#f=file('password')语法格式:open(例如:41/98Python教案 教学设计open()三种基本模式r:例:w:写入(覆盖原有内容,如果文件不存在,会创建文件1:passwordw结果:passwd42/98Python教案 教学设计a:附加(从文件尾部追加例如:open()的附加模式aaa+可读写模式,写只能写在文件末尾处w+a+的区别是要清空文件内容r+a+的区别是可以写到文件任何位置43/98Python教案 教学设计readline():返回一行readlines():列表类型返回所有行内容read(示。tell():当前指针在文件中的位置(多少个字节的位置)seek():定义文件指针的偏移量f.seek(偏移量,选项)writ(:将字符串写入文件writelines():将字符序列写入flush(sldkjalsjaslkjdclose():关闭文件例如:44/98Python教案 教学设计例2:掌握文件对象的相关属性mode:文件打开模式name:返回文件名closed例如:45/98Python教案 教学设计二、上机练习学生上机完成创建文件对象、open()三种基本模式、open()的附加模式、文件对象的相关上机练习,熟练完成Python创建文件对象的方法。三、本课小结如何创建文件对象、open()open()的附加模式、掌握文件对象的相关方法掌握文件对象的相关属性课后反思46/98Python教案 教学设计时间:课题教学

掌握什么是函数掌握函数的定义掌握函数的调用

函数式编程一目标教学重点

掌握函数形参和实参的区别了解函数的作用域:什么是作用域、作用域分类掌握函数的参数:默认参数、关键字参数、可变参数掌握函数的调用掌握函数形参和实参的区别了解函数的作用域:什么是作用域、作用域分类掌握函数的参数:默认参数、关键字参数、可变参数讲授演示法+上机操作教 学 过 程一、新课讲授掌握什么是函数function功能defpython函数将相关功能打包并参数化,将复杂的系统分解成可管理的部件。掌握函数的定义在这里说明几点:Pythondef关键字进行函数的定义,不用指定返回值的类型。函数参数params可以是零个、一个或者多个,同样的,函数参数也不用指定参数类型Python会自动根据值来维护其类型。return语句是可选的,它可以在函数体内任何地方出现,表示函数调用执行到此结束;如47/98Python教案 教学设计果没有return语句,会自动返回NONE,如果有return语句,但是return后面没有接表达式或者值的话也是返回NONE。下面看例子:例1:2:3:掌握函数的调用函数调用的方法:函数名(实际参数)48/98Python教案 教学设计在Python中不允许前向引用,即在函数定义之前,不允许调用该函数例如下面的错误:掌握函数形参和实参的区别def关键字定义函数时函数名后面括号里的变量称作为形式参数。例如:了解函数的作用域什么是作用域变量的作用域:即变量能够使用的范围作用域分类本地作用域:定义在函数体内的变量(局部变量)在Python不能调用里层中的变量,并且当外层和里层有同名变量时,外层变量会被里层变量屏蔽掉,例如:49/98Python教案 教学设计在函数function中,while循环外面和while循环里面都有变量x,此时,while循环外面的变量x会被屏蔽掉。注意在函数内部定义的变量作用域都仅限于函数内部,在函数外部是不能够调用的,一般称这种变量为局部变量。全局作用域:定义在主程序的变量(全局变量)但是如果要在函数内部改变全局变量,必须使用global关键字进行声明掌握函数的参数50/98Python教案 教学设计默认参数:定义函数时“name=value”的形式设置参数默认值在Python中默认的是采用位置参数来传参。这样调用函数必须严格按照函数定义时的参数个数和位置来传参,从左至右进行匹配,否则将会出现预想不到的结果调用函数时默认参数放后边调用函数时,使用“name=value”的形式通过参数名指定,参数指定了默认值后,如果传参时不指定参数名,则会从左到右依次进行传参,关键参数要放在普通参数后面。例如:51/98Python教案 教学设计可变参数我们要定义一个函数的时候,必须要预先定义这个函数需要多少个参数(或者说可以接受多少个参数。一般情况下这是没问题的,但是也有在定义函数的时候,不能知道参数个数的情况在Python*这里接收的是元组数据例2:**kwargs,字典作为参数:定义函数时使用 **开头的参数,调用时使用“name=value ”的形式,作为传递进来字典的键值52/98Python教案 教学设计二、上机练习三、本课小结什么是函数函数的定义函数的调用函数形参和实参的区别函数的作用域:什么是作用域、作用域分类函数的参数:默认参数、关键字参数、可变参数课后反思53/98Python教案 教学设计时间:教学目标教学重点教学难点

递归函数掌握lambda表达式enumerate函数序列化yield函数(迭代)装饰器递归函数掌握lambda表达式enumerate函数序列化yield函数(迭代)

函数式编程二主要教法

讲授演示法+上机操作教 学 过 程一、新课讲授个函数就是递归函数;例1例254/98Python教案 教学设计lambdalambdadef名称的语法:lambda参数:表达式lambdalambda举例:f1=lambdax,y:x+yf1(2,3)和map函数共同使用:Map()例如:55/98Python教案 教学设计Lambda和map共同使用enumerate56/98Python教案 教学设计yield函数:yield的作用就是把一个函数变成一个generator,带有yield数不再是一个普通函数,Python解释器会将其视为一个generator例如:装饰器1:57/98Python教案 教学设计例如2:58/98PAGEPAGE60/98其中@语法糖:相当于run=login(run)二、上机练习学生上机完成本节函数式编程任务,教师巡视指导。三、本课小结递归函数掌握lambda表达式enumerate函数序列化yield函数(迭代)其中@语法糖:相当于run=login(run)二、上机练习学生上机完成本节函数式编程任务,教师巡视指导。三、本课小结递归函数掌握lambda表达式enumerate函数序列化yield函数(迭代)装饰器课后反思Python教案 教学设计时间:教学目标教学重点教学难点主要教法

常用模块一了解什么是模块了解模块和文件掌握导入模块:模块搜索路径、import语句导入模块、from语句导入模块os模块及方法:系统相关、目录相关、路径相关、文件相关、查询相关了解模块和文件掌握导入模块os模块及方法:讲授演示法+上机操作教 学 过 程一、新课讲授了解什么是模块模块是一个包含定义的变量,函数和类的文件,其后缀名是.py。模块可以被其他程序导入,以使用该模块中的变量,函数和类。了解模块和文件if name ==" main ":print‘xxxx’如果作为程序文件独立执行, name 变量值为 main ,则执行if name ==" main ":后的语句。如果作为模块导入其他文件, name 变量值为模块名,则不执行if name ==" main 行。掌握导入模块importsysprintsys.path查看以列表显示的搜索路径例如:Python教案 教学设计importimportmoduleasmodule_alias以别名导入模块from语句导入模块frommodulesimportnames导入模块的指定属性或方法os(实现跨平台的操作系统应用接口)window'nt'表示,对于Linux/Unix'posix'例如:调用系统命令的方法os.system():调用操作系统的命令;例如61/98Python教案 教学设计os.popen()例如:目录相关的方法:getcwd(pn;例如:62/98Python教案 教学设计chdir(:切换目录;例如:os.walk():walk(top,topdown=True,onerror=None)listdir(:列出指定目录下文件及子目录;如:63/98Python教案 教学设计显示c盘文件和目录:64/98Python教案 教学设计mkdir(:创建目录;如:65/98Python教案 教学设计makedirs():创建多层级目录;如:66/98Python教案 教学设计rmdir(:删除空目录;例如:removedirs(:删除多层级空目录;例如:路径相关的方法:os.path.split():函数返回一个路径的目录名和文件名;例如:67/98Python教案 教学设计os.path.abspath(name):获得绝对路径;如:os.path.splitext():分离文件名与扩展名,例如:os.path.join(path,name):连接目录与文件名或目录,例如:68/98Python教案 教学设计文件相关的方法:remove(:删除文件,如:rename(:重命名文件,如查询相关方法os.path.exists():os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。例如:islink(:是否为链接文件文件信息相关方法:stat(:查看文件状态信息69/98Python教案 教学设计getatime():访问时间getctime():状态改变时间(例如权限等)getmtime():修改时间os.path.getsize(name):name0L,二、上机练习三、本课小结什么是模块模块和文件掌握导入模块:模块搜索路径、import语句导入模块、from语句导入模块os模块及方法:系统相关、目录相关、路径相关、文件相关、查询相关课后反思70/98Python教案 教学设计时间:教学目标教学重点教学难点主要教法

RandomMD5Time掌握Sys模块掌握Random模块掌握MD5加密模块

常用模块二讲授演示法+上机操作教 学 过 程一、新课讲授randomrandom.randintrandom.randint()的函数原型为:random.randint(a,b),abn:anbprintrandom.randint(12,20)n:12<=n<=20printrandom.randint(20,20)#结果永远是20#printrandom.randint(20,10) #该语句是错误的。下限必须小于上限。Random.randrange([start],stop[,step])从指定范围内,按指定基数递增的集合中获取一个随机数。如:random.randrange(10,100,2),结果相当于从[10,12,14,16,...96,98]序列中获取一个随机数71/98Python教案 教学设计72/98Python教案 教学设计Md5Time73/98Python教案 教学设计Sys74/98Python教案 教学设计sys.argv实例importsysdefread):#从文件中读出文件内容'''''Printathestandardoutput.'''f=file()whileTrue:line=f.readline()iflen(line)==0:breakprintline,#noticecomma分别输出每行内容f.close()#Scriptstartsfromhereiflen(sys.argv)<2:print'Noactionspecified.'sys.exit()ifsys.argv[1].startswith('--'):option=sys.argv[1][2:]#fetchsys.argv[1]butwithoutthefirsttwocharactersifoption=='version':#--print'Version1.2'elifoption=='help':#--help时,显示相关帮助内容print'''''/Thisprogramprintsfilestothestandardoutput.Anynumberoffilescanbespecified.Optionsinclude:--version:Printstheversionnumber--help :Displaythishelp'''else:print'Unknownoption.'sys.exit()else:forinsys.argv[1:]:#readfile,读出其内容read)二、上机练习75/98RandomMD5TimeRandomMD5TimeSys的上机编程任务,教师巡视指导。三、本课小结Random模块MD5加密模块Time模块Sys模块课后反思76/98Python教案 教学设计时间:课题教

了解什么是错误了解什么是异常

错误与异常和正则表达式学目标教学重点教学难点主要教法

掌握python中的常见异常掌握检测和处理异常掌握处理异常的特殊方法:断言、抛出异常、掌握re模块掌握python中的常见异常掌握检测和处理异常掌握处理异常的特殊方法:断言、抛出异常讲授演示法+上机操作教 学 过 程一、新课讲授了解什么是错误错误分为:语法错误和逻辑错误异常:当python检测到错误(语法错误或者逻辑错误等)时,导致解释器无法继续执行下去,这时候就出现了异常.异常抛出:为程序开发人员提供了一种在运行时发现错误,进行恢复处理,继续执行的能力。pythonNameError 使用一个还未赋予对象的变量SyntaxError 语法出错77/98Python教案 教学设计IOError 输入/输出操作失败,基本是无法打开文件ImportError 无法导入模块或者包,基本是路径问题IndentationError--语法错误,代码没有正确的对齐(缩进错误)78/98Python教案 教学设计IndexError 下标索引超出序列边界TypeError 传入的对象类型与要求不符AttributeError 对象没有这个属性,试图访问一个对象没有的属性或是方法掌握检测和处理异常python_Pythontry:代码段except异常类型,e:如果不知道异常类型,可以使用try:代码段exceptExcept,e:异常处理代码段;Excepttry:语句 -->捕捉这里语句的异常exceptException1[,reason]:-->异常判断语语句 -->异常处理语句exceptException2[,reason]:-->异常判断语语句 -->异常处理语句except: except语句else: 语句finally:-->无论是否发生异常都执行语句79/98Python教案 教学设计5,掌握处理异常的特殊方法5.1断言语法:assertexpression[,reason]assert是断言的关键字。执行该语句的时候,先判断表达式expression,如果表达式为真,则什么都不做;如果表达式不为真,则抛出异常了解什么是正则表达式正则表达式(RE)是由普通字符和特殊符号组成的字符串,描述了这些字符的某种组合方式,因此能按某种模式匹配一组有相似特征的字符串.re80/98Python教案 教学设计Pythonre掌握正则表达式中的特殊字符\d 匹配任何数字\D 匹配非数字字符\w 匹配字母,数字,下划线\W 匹配不是字母,数字,下划线的字符\s 匹配空白字符\S 匹配不是空白的字符recompile()功能:编译正则表达式用法:compile(pattern,flags=0)findall()功能:取得每个()中正则匹配的内容(没有()则整个正则匹配的部分),返回匹配列表用法:findall(pattern,string[,flags])match()None。用法:match(pattern,string)search()搜索:search会检查字符串任意位置与给定正则表达式的搜索情况。如果搜索81/98Python教案 教学设计到成功的匹配,会返回一个匹配对象,否则返回None。用法:search(pattern,string)split()功能:正则表达式作为分隔符把字符串分割为一个列表,返回列表,最多分割max次(默认是分割所有匹配的地方)用法:split(pattern,string,max=0)importrea=""printre.split('\.',a)sub()subn()功能:将某字符串中匹配正则表达式模式的部分进行替换。subn()和sub()一样,但它还返回一个表示替换次数的数字;替换后的字符串和表示替换次数的数字作为一个元组返回。用法:sub(pattern,repl,string,max=0)掌握匹配或搜索返回对象的常用的方法group()group(0)group(i)i(”括起来部分正则表达式匹配的内容groups()返回各个()括起来的正则表达式匹配的字符串组成的元组start()返回匹配开始的位置end()返回匹配结束的位置span()返回匹配开始和结束的位置二、上机练习82/98学生上机完成本节python中的常见异常、检测和处理异常、处理异常的特殊方法、re模块的上机编程任务,教师巡视指导。三、本课小结什么是错误、什么是异常学生上机完成本节python中的常见异常、检测和处理异常、处理异常的特殊方法、re模块的上机编程任务,教师巡视指导。三、本课小结什么是错误、什么是异常python中的常见异常检测和处理异常处理异常的特殊方法:断言、抛出异常、re模块课后反思83/98Python教案 教学设计时间:课题教学

掌握数据库连接方法掌握数据库模块方法

与数据库交互目标教学重点

学会数据库操作:增加数据、删除数据、修改数据、查询数据掌握数据库关闭方法数据库操作:增加数据、删除数据、修改数据、查询数据教学难点主要教法

数据库模块方法

讲授演示法+上机操作教 学 过 程一、新课讲授数据库的连接mysqldbyuminstallpython-develmysql-develzlib-developenssl-devel导入模块建立连接常见参数84/98Python教案 教学设计数据库模块方法commit()提交rollback()回滚看一个简单的查询示例如下:2.1cursorcursor:1.执行命令,2.cursorexecute(self,query,args)//sqlexecutemany(self,query,args)//移动到下一个结果集cursor//接收全部的返回结果行.fetchall(self)//sizesizecursor.arraysizefetchmany(self,size=None)//fetchone(self)数据库操作databasetablesexecute()EMPLOYEE:85/98PAGEPAGE99/98Python教案 教学设计代码如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法获取操作游标cursor=db.cursor()execute()cursor.execute("DROPTABLEIFEXISTSEMPLOYEE")SQLsql="""CREATETABLEEMPLOYEE(FIRST_NAME CHAR(20)NOTLAST_NAME CHAR(20),AGEINT,SEXCHAR(1),INCOMEFLOAT)"""cursor.execute(sql)#关闭数据库连接db.close()代码如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法获取操作游标cursor=db.cursor()#SQL插入语句sql="""INSERTINTOEMPLOYEE(FIRST_NAME,LAST_NAME,AGE,SEX,INCOME)VALUES('Mac','Mohan',20,'M',2000)"""try:sqlexcept:#Rollbackincasethereisanyerrordb.rollback()#关闭数据库连接db.close()sqlcursor.executemanyawsPython教案 教学设计上例也可以写成通过占位符传参的方式进行执行,如下:代码如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","testuser","test123","TESTDB")#使用cursor()方法获取操作游标cursor=db.cursor()#SQL插入语句sql="INSERTINTOEMPLOYEE(FIRST_NAME,\LAST_NAME,AGE,SEX,INCOME)\VALUES('%s','%s','%d','%c','%d')"%\('Mac','Mohan',20,'M',2000)try:sqlexcept:#发生错误时回滚db.rollback()db.close()代码如下:user_id="test"password=con.execute('insertintoLoginvalues("%s","%s")'%\(user_id,password))数据库查询操作EMPLOYEEsalary(工资)1000代码如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法获取操作游标cursor=db.cursor()#SQL查询语句sql="SELECT*FROMEMPLOYEE\WHEREINCOME>'%d'"%(1000)try:

SQL

Python教案 教学设计results=cursor.fetchall()forrowinresults:fname=row[0]lname=row[1]age=row[2]sex=row[3]income=#打印结果print"fname=%s,lname=%s,age=%d,sex=%s,income=%d"%\(fname,lname,age,sex,income)except:print"Error:unabletofecthdata"#关闭数据库连接db.close()以上脚本执行结果如下:fname=Mac,lname=Mohan,age=20,sex=M,income=2000definput_value():FIRST_NAME=raw_input("FIRST_NAME_DELET:")sql="""deletefromemployeewhereFIRST_NAME='%s'"""%(FIRST_NAME)returnsql数据库更新操作更新操作用于更新数据表的的数据,以下实例将testSEX'M',AGE1:代码如下:#encoding:utf-8#!/usr/bin/pythonimportMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法获取操作游标cursor=db.cursor()#SQL更新语句sql="UPDATEEMPLOYEESETAGE=AGE+1WHERESEX='%c'"%('M')try:

SQL

Python教案 教学设计except:#发生错误时回滚db.rollback()#关闭数据库连接db.close()删除记录语句sql="DELETEFROMEMPLOYEEWHEREAGE>'%d'"%(20)try:SQLexcept:#发生错误时回滚db.rollback()Python形的数据库事务。commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。二、上机练习python教师巡视指导。三、本课小结数据库连接数据库模块方法数据库操作:增加数据、删除数据、修改数据、查询数据数据库关闭课后反思Python教案 教学设计Python教案 教学设计时间:课题教学目标

Python实例:监测服务器硬盘、cpu、内存使用率硬盘监控cpucpu教学重点教学难点主要教法

进程监控

讲授演示法+上机操作教 学 过 程一、学习任务学习任务:监测服务器硬盘、cpu、内存使用率任务。要求与注意事项完成教学任务实例:具体如下cpu二、上机练习学生上机实操:提示:Psutil可以获取系统运行的进程、CPU、内存、磁盘、网络等信息,主要应用于系统监控,分析和限制系统资源以及进程的管理,它实现了类似一下ps、top、lsof、pmap、who、iotop等命令功能,并且跨平台支持32、64位操作系统,还支持2.4到3.x版本的python版本代码如下:#psutilmemoryinformations内存使用率Python教案 教学设计#磁盘使用率disk=psutil.disk_partitions()foriindisk:print磁盘:%s 分区格式:%s"%(i.device,i.fstype)disk_use=psutil.disk_usage(i.device)print"使用了:%sM,空闲:%sM,总共:%sM,使用率\033[1;31;42m%s%%\033[0m,"%(disk_use.used/1024/1024,disk_use.free/1024/1024,disk_use.total/1024/1024,disk_use.percent)#网络使用率cpu使用率defcpu():whileTrue:)cpu_liyonglv=psutil.cpu_percent()print"cpu利用率:\033[1;31;42m%s%%\033[0m"%cpu_liyonglvifcpu_liyonglv>baojing()defbaojing():i=0whilei<10i+=1time.sleep(0.5)cpu()监控服务器内存使用率memory=psutil.virtual_memory()printmemory.usedprintmemory.totalab=float(memory.used)/float(memory.total)*100print"%.2f%%"%abprintpsutil.s()监控服务器网卡使用率#网络使用率count=_io_counters()print"发送字节数:\033[1;31;42m%s\033[0mbytes,接收字节数:\033[1;31;42m%s\033[0mbytes,发送包数:%s,接收包数%s"%(count.bytes_sent,count.bytes_recv,count.packets_sent,count.packets_recv)users=psutil.users()print"当前登录用户:",users[0].name#时间curent_time=psutil.boot_time()Python教案 教学设计curent_time_1=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime(curent_time))printcurent_time_1进程监控#读取进程pid,名称,可执行路径pid=psutil.pids()fork,iinenumerate(pid):try:proc=psutil.Process(i)printk,i,"%.2f%%"%(proc.memory_percent()),"%",(),proc.exe()exceptpsutil.AccessDenied:print"psutil.AccessDenied"三、任务展示与评价学生进行展示,完成互评与老师点评项目 分值 评价标准

得分自评 组评 师评20程序设计30运行结果 30小组配合 总体得分课后反思

编程技巧调试过程搭建合理稳固小组成员分工及配合方面Python教案 教学设计时间:课题教学目标教学重点

监控服务模块开发监控与apache服务实例开发制作socket模块Socket类型Socket函数socket编程思路Socket编程之服务端代码Socket编程之客户端代码监控apache服务实例开发制作socket模块监控apache服务实例开发制作监控apache服务实例开发制作讲授演示法+上机操作教 学 过 程一、新课讲授SOCKET:socket。SocketBSDUNIX进程通信机制,取后一种意思。通常也称作"套接字IP拟机或不同计算机之间的通信1. socket模块Python提供了两个基本的socket模块。第一个是Socket,它提供了标准的BSDSocketsAPI。第二个是SocketServer,它提供了服务器中心类,可以简化网络服务器的开发。Socket类型套接字格式:socket(family,type[,protocal])使用给定的地址族、套接字类型、协议编号(默认为0)来创建套接字。socket类型socket.AF_UNIXsocket.AF_INETsocket.AF_INET6socket.SOCK_STREAMsocket.SOCK_DGRAMsocket.SOCK_RAW

描述只能够用于单一的Unix系统进程间通信服务器之间网络通信IPv6流式socket,forTCP数据报式socket,forUDP原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAWsocket.SOCK_SEQPACKET创建TCPSocket:创建UDPSocket:Socket函数注意点:

Python教案 教学设计IPv4IP_HDRINCLIP头。可靠的连续数据包服务s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)TCP发送数据时,已建立好TCPUDP是发给谁。服务端与客户端不能直接发送列表,元组,字典。需要字符串化repr(data)。socket函数服务端socket函数s.bind(address)s.listen(backlog)s.accept()客户端socket函数s.connect(address)s.connect_ex(adddress)公共socket函数s.recv(bufsize[,flag])s.send(string[,flag])s.sendall(string[,flag])s.recvfrom(bufsize[.flag])s.sendto(string[,flag],address)s.close()s.getpeername()s.getsockname()s.setsockopt(level,optname,value)

描述,在AF_INET下以元组(host,port).TCPbacklog可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。接受TCP(conn,addres,其中connaddress是连接客户端的地址。连接到address 处的套接字。一般address 的格式为元组(hostname,por,如果连接出错,返回socket.error错误。connect(address)0errno值。接受TCP指定要flag发送TCPstringstring的字节大小。完整发送TCPstringNone接受UDPrecv((data,addres。其中data是发送数据的套接字地址。发送UDP数据。将数据发送到套接字,address是形式为(ipaddr,port)的元组,指定远程地址。返回值是发送的字节数。关闭套接字。返回连接套接字的远程地址。返回值通常是元组ipaddr,por(ipaddr,port)设置给定套接字选项的值。s.getsockopt(level,optname[.buflen]) 返回套接字选项的值。s.settimeout(timeout)

因为它们可能用于连接的操作(如connect())s.gettimeout()s.fileno()s.setblocking(flag)s.makefile()

Python教案 教学设计返回当前超时期的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论