版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
时间:
课题
程序设计基础--绪论
教
学
目
标
1.了解程序设计语言的发展历史
2.理解Python语言的特点及其重要性
3.掌握Python语言Hello程序的编写方法
4.掌握Python语言开发的运行环境的配置
教学重点
Python语言的特点及其重要性
Python语言开发的运行环境的配置
教学难点
Python语言开发的运行环境的配置
主要教法
讲授演示法+上机操作
教学过程
一、新课导入
?计算机的定义:
能够根据指令操作数据的设备
?计算机的两个特性
–功能性
–可编程性
?计算机的可编程性需要通过程序设计来体现
?程序设计语言:计算机能够理解和识别操作的一种交互体系
?程序设计语言的种类
–机器语言
–汇编语言
–高级语言
–常用的程序设计语言
高级语言的执行方法
静态语言:编译执行
脚本语言:解释执行
编译和解释的区别
编译:一次性的翻译,需对目标代码优化
解释:每次运行都需要
?编译:源代码(高级语言)转换成目标代码(机器语言)
?解释:源代码逐条转化成目标代码同时逐条运行目标代码的过程
?编译的好处
?目标代码执行速度更快
?目标代码在相同操作系统上使用灵活
?解释的好处
?便于维护源代码
?良好的可移植性
?Python语言:将解释器和编译器结合的脚本语言
计算机已成为普通工具
学会编程:满足感和安全感
C/C++等语言:复杂
Python语言:充满快乐和创造性的全新旅程
?Python语言概述
Python语言的历史
诞生于1989年,已有25年,达到成熟期
2000年,Python,2,.
2023年,Python,语言的特点
–强制缩进保证可读性
–不需要主函数
–可以同时被解释和编译执行
–语言简洁
–编程模式灵活(面向过程和面向对象)
?Python语言的开发环境配置
?安装Python运行环境
–
–根据操作系统选择不同版本
–
?使用Python运行环境
–方法一:启动Windows命令行工具,输入python,在>>>后输入Python语句,如图所示输入exit()或quit()退出
–方法二:调用已安装的IDLE来启动Python运行环境,
–方法三:按照语法格式编写代码,保存为文件,例如源文件。打开Windows命令行,使用命令python来运行文件
使用Python运行环境
方法四:打开IDLE,Ctrl+N打开一个新窗口,输入语句并保存,使用快键建F5即可运行该程序
方法五:将Python集成到Eclipse等面向较大规模项目开发的集成开发环境中
其他操作系统上配置Python环境与上述在Windows上的配置方法类似
?Hello程序
?你的第一个程序:在屏幕上打印出“HelloWorld”
–print“HelloWorld”
–表示将引号中的信息输出到屏幕上
显示效果如下:
二、上机练习
首先进行Python的安装与开发环境配置,
接着完成第一个程序“HelloWorld”
三、本课小结
计算机的基本概念
程序设计语言分类
编译和解释
Python语言概述
Python的Hello程序编写及开发环境配置
课后
反思
时间:
课题
Python程序语言入门
教
学
目
标
?让学生了解什么是编程及对编程提起浓厚的学习兴趣;
·PythonShell、GUI和Prompt(提示符)的理解;
·学会与Python交互的方法,print指令;
·新建程序文本文档、运行程序的方法、保存时需要注意什么;
·学会怎样去查询程序的错误;
教学重点
·让学生对编程提起浓厚的兴趣;
·print指令的运用;
·识别和修正程序的错误。
教学难点
·识别和修正程序的错误;
主要教法
讲授演示法+上机操作
教学过程
一、复习巩固
1、什么是编程?
2、Python-我们和计算机沟通的语言
所想要表达编程软件翻计算机接收
的意思译成二进制并执行
常用、最流行的几种程序语言:C、C++、C#、Java、VB、python
Python可以用来做什么
·开发游戏&软件(游戏后台大多数用python编写);
·制作更高级的Flash(webflashgame);
·创建数据库;
·黑客hacker(远程攻击计算机、破解硬件or软件);
·发明变形金刚(2023年日本FANUC推出的人工智能机器人);
·学习其他语言的基础(所有程序语言都有共同性,学好python能够让你快人一步的理解其他程序语言);
·python几乎无所不能。
========当然不是每一个学习python的人都能成功========
========但是学习python你将获利以下几点========
√让你的思维更加敏捷!
√让你变的知识渊博!
√让你学习更多的英文!
============也有可能带来一些“负面影响”===========
×你的皮肤会变得粗糙>_<
×你可能会变成一枚宅男╯□╰
×花500元买一副眼镜⊙﹏⊙
上机操作从IDLE启动python
1、通过开始菜单;好比三种第一种:2B青年
三种方法2、通过快捷方式;第二种:普通青年
3、通过快捷键;网络青年第三种:文艺青年
·窗口标题栏的文字“PythonShell”-中文意思是“python的外壳”,是作为用户输入文本与程序交互途径的一种。
·整个窗口被叫做“GUI”-中文意思是“图形用户界面”,GUI的特性是包含:窗口、菜单、按钮、滚动条等。没有这些特性的程序叫做text-mode(文本模式程序)、commandline(命令行程序)
*提问:平时在使用电脑时有没有遇见过带有GUI的程序和text-mode、commandline?(答案:windows窗口DOS)
·>>>-叫做提示符(Prompt),指程序正在等待你键入信息时显示的符号。
来点指令吧!
>>>print“Heyman!”回车(每输入完一行指令都要输入回车以跳转到下一行)
Print-打印(命令),指在屏幕上显示文本,而不是常说的用打印机打印在纸上。
!!注意>>颜色<<注意!!
问:IDEL里为什么会有这些奇妙的颜色呢?
答:IDLE为了帮助我们更好的理解和阅读这些内容,会用不同的颜色来区分代码(code)不同的部分,print的颜色就是橙色。
!!注意>>错误<<注意!!
问:SyntaxError:invalidsyntax是个什么东西?
答:直译“语法错误:无效的语法”,表示python不懂你输入的内容,因为print被错误的拼成了point。
与python交互
我们刚刚执行的第一条指令:heyman,就是在和python交互,这种输入代码与计算机交流的过程就叫做交互。
多试一条指令!
>>>print5+3
8
>>>
计算机非常擅长算术运算,计算机被创造出来的初期就是被用来数据计算。
再试一条指令!
>>>print5*3
15
>>>
======TIPS======
几乎所有计算机程序和语言中都使用*符号作为乘号。这个符号称作“星号”或“星”。
======口算&计算器&python三者进行对比吧======
口算:Print5*3
======口算&计算器&python三者进行对比吧======
利用python你除了可以超大数的数学计算之外,你还可以做些令人意想不到的事情,例如:
>>>print“Dog”+“brother”
Dogbrother
>>
或者
>>>print“whereisplane”*20
whereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplane
>>>
计算机除了非常擅长运算外,另一件事情就是反复的做事情,重要的是它不会感到枯燥,就像上面我让计算机喊了20句whereisplane,如果你高兴可以让它喊到直到MH370出现,前提是马航要给力还有就是不要停电……
编程任务
到目前为止,我们只是看到单个python指令的演示,其实程序就是多个指令的集合。
创建程序的方法:
a.通过PythonShell菜单栏→File→NewWindows创建;
b.快捷键:Ctrl+N。
*新程序窗口标题栏显示“Untitled”(未命名)。如何给程序取名字?
2、程序1我们的第一个程序-“我爱吃香蕉”
print“我爱吃香蕉!”
print“香蕉”*20
print“mua”*40
print“我吃撑了!”
保存/另存(命名)你的程序文档
File→Save/SaveAs
输入完指令后通过Save快:Ctrl+N保存or另存为
SaveAs快:Ctrl+Shift+S
!!注意>>扩展名<<注意!!
输入完程序名称后一定不要忘了加上.py,否则在python中将看不到
程序中命令的颜色和windows不知道该用什么程序来打开这个文件。
======TIPS======
如果你想要你的程序支持中文,需要在程序的第一行加上代码:
#encodingXXX#
XXX用各国文字编码代码来替换,各国文字编码代码可以查询百度。
例如,简体中文的代码是:GBK,那么程序的第一行应写上:
#encodingGBK#
======TIPS======
如果出了问题
在编程过程中容易出现的问题归纳为两大类:
syntaxerror(语法错误):指编程语言的拼写和文法规则出现错误,意味着你键入的某个内容不是正确的Python代码。
例如:
>>>
printwhereisplane”
syntaxerror:invalidsyntax(语法错误:无效的语法)
there'sanerrorisyourprogram(这是一个错误的程序)
>>>
错误原因:where前面漏了一个引号
2、runtimeerror(运行时错误):只会在程序运行时才会发生的错误,是IDLE或python无法检测出来的错误。
例如:
程序2运行时错误-“我爱大鳄鱼”
>>>
print“你好!欢迎来到我的动物园!”
print“我的动物园有好多好多的动物,例如:”
print“鳄鱼”+5
>>>
错误原因:
IDLE========NoSubprocess=========
>>>
你好!欢迎来到我的动物园!
我的动物园有好多好多的动物,例如:
Traceback(mostrecentcalllast):(错误的开始)
File“C:\Users\Administrator\Destop\ilovebig”,line4,in<module>(错误发生的位置/程序文件保存的路径)
Print“鳄鱼”+5(出错的代码行)
TypeError:cannotconcatenate‘str’and‘int’objects(python认为可能存在的问题,并不一定是在这里,但是会在这附近)
=====================思考=====================
为嘛print“鳄鱼”*5可以,print“鳄鱼”+5却不行?
=====================解惑=====================
听我说,这有点像将苹果和鳄鱼放在一起,在python中不能将两个完全不同的东西放在一起,比如说数字(int)和文本(str)。“鳄鱼”+5像是在说5个苹果和3只鳄鱼相加等于多少?结果是8,但是8个什么?完全没有意义。
不过几乎所有东西都可以乘以一个数来翻倍,如果你有1只鳄鱼,再乘以5,那么你就会有5只鳄鱼!(克隆大乱斗!)。
第二个程序任务
第一个程序“我爱吃香蕉!”没多大实际意义,仅仅只是在屏幕上打印了一些内容,下面我们来是一个更加有意思的程序,记得给它取上一个名字,“NumGuess”是个不错的名字。
File→NewWindows→Save→“”
输入以下代码:
======================================================
#encoding=GBK#
importrandom
secret=(1,100)
guess=0
tries=0
print"你好,同学……我和你们班主任之间有一个秘密!?"
print"这个秘密就在1-99之间的一个数字。我会给你6次机会来猜这个数字,猜对你就可以获赠加多宝一罐!"
whileguess!=secretandtries<6:
guess=input("来猜个数字吧!?")
ifguess<secret:
print"太低了喔!~"
elifguess>secret:
print"太高了喔!~"
tries=tries+1
ifguess==secret:
print"哦也!你猜中这个数字了!!那么加多宝的话,请出门左拐找你们蒋老师!"
else:
print"我不会给你更多机会了,同学!你现在得请我喝一瓶王老吉!"
print"这个秘密数字就是————",secret
======================================================
程序解析:
while、if、else、elif和input指令我们在以后会详细的学到。
程序概念点:
?由程序随机选取秘密数。
?用户输入他猜的数。
?程序根据秘密数检查用户猜的结果:太大还是太小?
?用户不断尝试,直到猜出这个数,或者用完所有机会。
?猜到的数与秘密数一致时,玩家获胜。
>>>教学过程结束。
课堂小结:
?学会了如何启动IDLE;
?了解了交互模式;
交给Python一些指令来执行;
看到了Python知道如何完成算术运算(包括非常大的数);
启动IDLE文本编辑器键入你的第一个程序:我爱吃香蕉;
运行你的第一个Python程序;
了解如何查看错误消息;
运行你的第二个Python程序:猜数游戏。
课堂练习之用脑想一想:
1.如何启动IDLE?
的作用是什么?
中表示乘法和除法的符号是什么?
GUI的特性包括哪些?
如果想要你的程序支持中文,需要做什么?
课堂练习之动手做一做:
1.在交互模式中,使用Python计算一周有多少分钟。
2.编写一个简短的小程序,打印3行:你的名字、出生日期,还有你最喜欢的颜色。(结果应该是下面这样)
我的名字叫XX,我是XX运动队的。
我1988年08月20日出生。
我最喜欢的颜色是粉红色。
课后
反思
时间:
课题
判断循环
教
学
目
标
掌握if语句:单分支、双分支、多分支、嵌套
完成条件语句实例:登录认证模块
学会判断输入是否合法
了解三元表达式
掌握range()
掌握循环语句
掌握for语句
掌握while
掌握break、continue、pass
完成循环语句实例:登录认证模块扩展
教学重点
掌握if语句:单分支、双分支、多分支、嵌套
了解三元表达式
掌握range()
掌握循环语句
掌握for语句
掌握while
掌握break、continue、pass
教学难点
完成条件语句实例:登录认证模块
完成循环语句实例:登录认证模块扩展
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
掌握if语句
单分支
if表达式:
代码块1
else:
代码块
双分支
if表达式1:
代码块1
elif表达式2:
代码块2
多分支
if表达式1:
代码块1
elif表达式2:
代码块2
…
else:
代码块_其他
嵌套
了解三元表达式
Expression1ifboolean_expressionelseExpression2
如果满足条件A大于B,则max值为A,反之max为B
如:max=AifA>BelseB
例如:
掌握range()
range():产生整数序列
例:
range(n):产生从0开始,到n的数字序列,不包括n。
range(m,n):产生从m开始,到n的数字序列,不包括n。
range(m,n,k):产生从m开始,到n,增量为k的数字序列,不包括n。
掌握循环语句
掌握for语句
语法格式:
forexpression1initerable:
for_suite
else:
else_suite
例如:
结果:
掌握while
掌握break、continue、pass
语法结构:
whileboolean_expression:
while_suite
else:
else_suite
解释:
如果boolean_expression的结果为True,循环就会执行;boolean_expression的结果为False时终止循环,此时如果有else分支,则会执行。
以上结构中,else分支为可选部分。else代码块:循环不满足循环条件终止,才会执行,如果循环终止是由break跳出,则else分支不会执行。
例如:
break:跳出所处的最近层循环
continue:跳到所处的最近层循环的开始处
pass:占位语句
例如:
执行结果:
二、上机练习
条件语句实例:登录认证模块
判断输入是否合法
非法用户提示警告信息
合法用户提示登录成功
username=raw_input("username:")
ifusername=='':
print"用户名不能为空"
else:
print"\033[1;33;45m登录成功,欢迎%s\033[0m"%username
chr()
ord()
循环语句实例:登录认证模块扩展
直接回车无效,继续输入
验证用户身份是否合法
三、课堂小结
if语句:单分支、双分支、多分支、嵌套、三元表达式、range()、循环语句、for语句、while
、break、continue、pass
登录认证模块展示
课后
反思
时间:
课题
python序列-字符串
教
学
目
标
了解序列类型常用操作
了解索引和切片
掌握类型转化
掌握强制类型转化
学会字符串转换实例:格式化输出菜单列表,将用户的输入数值转化整型并验证
掌握字符串常用方法
()()()()()()(t)
s.isalnum()/()/()/isupper()/islower()
()/ ()/
()
教学重点
了解序列类型常用操作
了解索引和切片
掌握类型转化
掌握强制类型转化
教学难点
学会字符串转换实例
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
序列类型常用操作
索引和切片
索引:例:s[0]从左向右:索引从0开始;从右向左:索引从-1开始
切片:例:s[0:2]
扩展切片:指定步长,例:s[0:9:2]
掌握类型转化
格式:
print“字符串%format1%format2…”%(变量或值1,变量或值2...)
符号及其对应输出格式:
%d或%i 十进制整数或长整数
%f 浮点数
%s 字符串
%% 用于输出符号%
举例:
强制类型转化
int():强制转换为整型,
例如:
注意:只能将由数字组成的字符串转换为整型
错误用法
float():强制转换为浮点型例如
str():强制转换为字符串例如:
掌握字符串常用方法
(t):查找子串t,找到返回最小的索引值,找不到则返回-1
(iter)使用s作为连接符连接序列iter中所有元素
如:list2=["h","e","l","l","o",".","c","o","m"]
“”.join(list2)
(old,new):替换
(sep):使用sep作为分割符,列表返回结果。
如:str=””
(".")得到["www","baidu","com"]序列
s.strip(t):删掉开头和结尾的字符t
如:删除空白符()
s.index(t):子串t首次出现的位置,找不到报错
(t)以子串t开头/结尾:结果是true或false
s.isalnum()/()/()/isupper()/islower():判断所有字符是否为数字或字母
/是否为字母/是否为数字
结果是bool
()/ ()/:所有字母转化为大写字母/小写字母,大小写互换
(t)统计t出现的次数
二、上机练习
字符串转换实例:格式化输出菜单列表;将用户的输入数值转化整型并验证
三、本课小结
序列类型常用操作、索引和切片、类型转化、强制类型转化、字符串常用方法
学生展示:字符串转换实例
课后
反思
时间:
课题
python列表和元祖
教
学
目
标
掌握列表基础知识
掌握列表相关方法
掌握序列类型操作
掌握生成器
掌握元组类型
掌握元组相关方法
教学重点
掌握列表相关方法
掌握序列类型操作
掌握生成器
掌握元组类型
教学难点
掌握列表相关方法
掌握元组相关方法
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
掌握列表基础知识
列表的特点:
支持异构:一个列表中含不同类型的对象
支持嵌套:即列表中的元素可以是列表
可变:支持通过索引,切片,进行修改
如何定义列表:
方法一:[];例:list1=[1,3,5]
方法二:使用内置函数list():内建函数list(a_sequence)可以将一个序列转为列表
例1:
>>>str1="dddgf"
>>>list1=list(str1)
>>>list1
['d','d','d','g','f']
例2:(后面讲)
>>>tuple1=(1,2,1)
>>>list1=list(tuple1)
>>>list1
[1,2,1]
例3:
掌握列表相关方法:
append():向列表中追加元素
例如:
extend():追加可迭代对象中所有元素
例1:list2=[1,2,3]
list3=[]
(list2)
例2
insert():在指定索引位置插入
列表也支持索引,例如:
插入例子:
pop():按照索引弹出元素,返回值为该元素。默认弹出最后一个元素。
例如:
remove():按照元素值弹出第一个匹配项
例如:
count():统计指定值出现的次数
index():某个值第一次出现的位置
例如:
reverse():反向存放
例如:
查询遍历:
forIinlist
fori,kenument(list)
sort():排序
掌握序列类型操作:序列类型包括:字符串、列表、元组
+连接*重复
例如:
max():求最大值、min():求最小值
例如:
掌握列表生成式
列表生成式,是Python内置的一种极其强大的生成list的表达式。
第一章用于:基于已有列表生成新列表
第二章语法结构:
列表生成式的书写格式:[x*xforxinrange(1,11)]
第一:把要生成的元素x*x放到前面
第二:后面跟上for循环
这样就可以把list创建出来。
for循环后面还可以加上if判断
第三章举例:
1到10之间的偶数平方再除以2作为新列表元素
1到10之间的偶数,作为新列表元素
第四章特点:一次性生成新列表,如果列表数据过大,会消耗大量资源。
掌握元组类型
定义元组:
方法一:()
例:tuple1=(1,3,4)
方法二:使用内置函数tuple():将可迭代对象中所有元素作为元组元素
例:
>>>list1=[1,2,3]
>>>t1=tuple(list1)
>>>t1
(1,2,3)
元组的特点
支持异构;
支持嵌套;
不可变:不支持通过索引、切片,进行修改
元组的遍历
例如:
掌握元组相关方法
index():返回指定元素第一次出现的索引位置
count():指定元素出现的次数
例如:
二、上机练习
练习:
三、本课小结
列表基础知识、列表相关方法、序列类型操作、生成器、元组类型、元组相关方法
学生完成实例操作
课后
反思
时间:
课题
运维平台计算机管理实例
教
学
目
标
登录模块实现
添加计算机
删除计算机
查询可管理计算机
教学重点
登录模块实现
教学难点
查询可管理计算机
主要教法
讲授演示法+上机操作
教学过程
一、学习任务
运维平台计算机管理实例任务要求与注意事项
二、上机练习
学生上机实操:
提示:
三、任务展示与评价
学生进行展示,完成互评与老师点评
项目
分值
评价标准
得分
自评
组评
师评
程序设计
20
编程技巧
30
调试过程
运行结果
30
搭建合理稳固
小组配合
20
小组成员分工及配合方面
总体得分
课后
反思
时间:
课题
python字典和集合
教
学
目
标
掌握字典类型
掌握字典相关方法
掌握字典的遍历
掌握集合类型
掌握集合相关方法
教学重点
掌握字典相关方法
掌握字典的遍历
掌握集合类型
教学难点
掌握字典的遍历
掌握集合相关方法
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
掌握字典类型
字典的特点
无序:通过键实现元素存取,故无序
可变:可以通过键进行改变
异构:支持多种数据类型
嵌套:可以在键值对中的值部分出现字典
定义字典:
方法一:{key1:value1,key2:value2,...}
方法二:dict()内置函数:指定键值
例:d2=dict(name="jerry",age="45",gender="m")
关键点:
键与值用冒号“:”分开;
项与项用逗号“,”分开;
字典中的键必须是唯一的,而值可以不唯一
掌握字典相关方法
更新或添加元素:dict1[key]=value
例如:
items():变量解包:即将字典转化为键、值作为元组的列表
例如:
keys();键列表
例如:
values():值列表
例如:
has_key():判断是否存在某个键,返回结果true或false
例如:
del删除元素:调用python自身函数删除
例如:
len():取得字典中键值对个数
例如:
update():在原字典上合并字典,键相同时会被覆盖。
例如:
get():取得某个键对应的值
例如:
pop():弹出指定键对应的值
popitem():随机弹出键值对
clear():清除所有元素
例如:
掌握字典的遍历:
掌握集合类型
什么是集合
无序、互异,
集合的功能及特点
支持成员关系判断
支持迭代
不支持索引,切片
元素唯一
定义集合set
方法一:{元素}
方法二:内置函数set()
例:
集合相关方法:
len():元素个数
例如:
add():添加元素
例如:
remove():删除元素
例如:
update():合并集合
例如:
pop():随机弹出某个元素
例如:
集合关系操作
s|t:s和t的并集
例如:
s&t:s和t的交集
例如:
s-t:求差集,存在于s集合而不存在于t集合中的
例如:
s^t:求对称差集
例如:
二、上机练习
学生上机完成字典类型、字典相关方法、字典的遍历、集合类型、集合相关方法的案例练习。
三、本课小结
字典类型、
字典相关方法、
字典的遍历、
集合类型、
集合相关方法
课后
反思
时间:
课题
python文件处理
教
学
目
标
掌握如何创建文件对象
掌握open()三种基本模式
掌握open()的附加模式
掌握文件对象的相关方法
掌握文件对象的相关属性
教学重点
掌握如何创建文件对象
掌握open()三种基本模式
掌握open()的附加模式
教学难点
掌握文件对象的相关方法
掌握文件对象的相关属性
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
掌握如何创建文件对象
内置函数open()同file():用于打开文件和创建文件对象,返回文件对象
with打开文件:withopen('password')asf:#f=file('password')
语法格式:open(文件名,模式)
例如:
掌握open()三种基本模式
r:只读,如果文件不存在,会发生异常
例:
w:写入(覆盖原有内容),如果文件不存在,会创建文件
例1:password文件内容不为空,以w模式打开:
结果:
创建passwd文件
a:附加(从文件尾部追加),如果文件不存在,会创建文件
例如:
掌握open()的附加模式
+:表示同时支持读写aa
a+可读写模式,写只能写在文件末尾处
w+可读写,与a+的区别是要清空文件内容
r+可读写,与a+的区别是可以写到文件任何位置
掌握文件对象的相关方法
readline():返回一行
readlines():列表类型返回所有行内容
read():指定从文件读取多少字节,不指定字节数则读取全部内容,以字符串形式显示。
tell():当前指针在文件中的位置(多少个字节的位置)
seek():定义文件指针的偏移量
(偏移量,选项)
write():将字符串写入文件
writelines():将字符序列写入
flush():刷新,将数据从缓存区写入文件
sldkjalsjaslkjd
close():关闭文件
例如:
例2:
掌握文件对象的相关属性
mode:文件打开模式
name:返回文件名
closed:显示文件是否已关闭掉
例如:
二、上机练习
学生上机完成创建文件对象、open()三种基本模式、open()的附加模式、文件对象的相关上机练习,熟练完成Python创建文件对象的方法。
三、本课小结
如何创建文件对象、
open()三种基本模式、
open()的附加模式、
掌握文件对象的相关方法
掌握文件对象的相关属性
课后
反思
时间:
课题
函数式编程一
教
学
目
标
掌握什么是函数
掌握函数的定义
掌握函数的调用
掌握函数形参和实参的区别
了解函数的作用域:什么是作用域、作用域分类
掌握函数的参数:默认参数、关键字参数、可变参数
教学重点
掌握函数的调用
掌握函数形参和实参的区别
教学难点
了解函数的作用域:什么是作用域、作用域分类
掌握函数的参数:默认参数、关键字参数、可变参数
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
掌握什么是函数function功能def
函数是python为了代码重用和最小化代码冗余而提供的基本程序结构。
函数将相关功能打包并参数化,将复杂的系统分解成可管理的部件。
掌握函数的定义
在这里说明几点:
在Python中采用def关键字进行函数的定义,不用指定返回值的类型。
函数参数params可以是零个、一个或者多个,同样的,函数参数也不用指定参数类型,因为在Python中变量都是弱类型的,Python会自动根据值来维护其类型。
return语句是可选的,它可以在函数体内任何地方出现,表示函数调用执行到此结束;如果没有return语句,会自动返回NONE,如果有return语句,但是return后面没有接表达式或者值的话也是返回NONE。下面看例子:
例1:
例2:
例3:
掌握函数的调用
函数调用的方法:函数名(实际参数)
在Python中不允许前向引用,即在函数定义之前,不允许调用该函数例如下面的错误:
掌握函数形参和实参的区别
形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数。
实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数
例如:
了解函数的作用域
什么是作用域
变量的作用域:即变量能够使用的范围
作用域分类
本地作用域:定义在函数体内的变量(局部变量)
在Python中,会为每个层次生成一个符号表,里层能调用外层中的变量,而外层不能调用里层中的变量,并且当外层和里层有同名变量时,外层变量会被里层变量屏蔽掉,例如:
在函数function中,while循环外面和while循环里面都有变量x,此时,while循环外面的变量x会被屏蔽掉。注意在函数内部定义的变量作用域都仅限于函数内部,在函数外部是不能够调用的,一般称这种变量为局部变量。
全局作用域:定义在主程序的变量(全局变量)
它是在函数外部定义的,作用域是整个文件。全局变量可以直接在函数里面应用,但是如果要在函数内部改变全局变量,必须使用global关键字进行声明
掌握函数的参数
默认参数:定义函数时,“name=value”的形式设置参数默认值
在Python中默认的是采用位置参数来传参。这样调用函数必须严格按照函数定义时的参数个数和位置来传参,从左至右进行匹配,否则将会出现预想不到的结果调用函数时
默认参数放后边
关键字参数:调用函数时,使用“name=value”的形式通过参数名指定
通过指定参数名字传递参数的时候,参数位置对结果是没有影响的。关键字参数最厉害的地方在于它能够给函数参数提供默认值,
参数指定了默认值后,如果传参时不指定参数名,则会从左到右依次进行传参,关键参数要放在普通参数后面。
例如:
可变参数
例1:*args,我们要定义一个函数的时候,必须要预先定义这个函数需要多少个参数(或者说可以接受多少个参数)。一般情况下这是没问题的,但是也有在定义函数的时候,不能知道参数个数的情况在Python里,带*的参数就是用来接受可变数量参数的,这里接收的是元组数据
例2:**kwargs,字典作为参数:定义函数时使用**开头的参数,调用时使用“name=value”的形式,作为传递进来字典的键值对
二、上机练习
学生上机完成函数式编程任务,教师巡视指导。
三、本课小结
什么是函数
函数的定义
函数的调用
函数形参和实参的区别
函数的作用域:什么是作用域、作用域分类
函数的参数:默认参数、关键字参数、可变参数
课后
反思
时间:
课题
函数式编程二
教
学
目
标
递归函数
掌握lambda表达式
enumerate函数序列化
yield函数(迭代)
装饰器
教学重点
递归函数
教学难点
掌握lambda表达式
enumerate函数序列化
yield函数(迭代)
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
递归函数:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数;
例1
例2
掌握lambda表达式
lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的
语法:lambda参数:表达式
lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象
举例:
f1=lambdax,y:x+y
f1(2,3)
和map函数共同使用:
Map()第一个参数接收一个函数名,第二个参数接收一个可迭代对象
例如:
Lambda和map共同使用
enumerate函数用于遍历序列中的元素以及它们的下标
yield函数:yield的作用就是把一个函数变成一个generator,带有yield的函数不再是一个普通函数,Python解释器会将其视为一个generator
例如:
装饰器
装饰器就是为已经存在的对象添加额外的功能。
比如1:
例如2:
其中@语法糖:相当于run=login(run)
二、上机练习
学生上机完成本节函数式编程任务,教师巡视指导。
三、本课小结
递归函数
掌握lambda表达式
enumerate函数序列化
yield函数(迭代)
装饰器
课后
反思
时间:
课题
常用模块一
教
学
目
标
了解什么是模块
了解模块和文件
掌握导入模块:模块搜索路径、import语句导入模块、from语句导入模块
os模块及方法:系统相关、目录相关、路径相关、文件相关、查询相关
教学重点
了解模块和文件
教学难点
掌握导入模块
os模块及方法:
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
了解什么是模块
模块是一个包含定义的变量,函数和类的文件,其后缀名是.py。模块可以被其他程序导入,以使用该模块中的变量,函数和类。
了解模块和文件
if__name__=="__main__":print‘xxxx’
如果作为程序文件独立执行,__name__变量值为__main__,则执行if__name__=="__main__":后的语句。
如果作为模块导入其他文件,__name__变量值为模块名,则不执行if__name__=="__main__":后的语句,在导入进的文件中调用时才对应执行。
掌握导入模块
模块搜索路径:
importsys
print查看以列表显示的搜索路径
例如:
import语句导入模块
importmodule导入模块
importmoduleasmodule_alias以别名导入模块
from语句导入模块
frommodulesimportnames导入模块的指定属性或方法
掌握os模块常用方法(实现跨平台的操作系统应用接口)
指示正在使用的平台;如果是window则用'nt'表示,对于Linux/Unix用户,它是'posix'例如:
调用系统命令的方法
():调用操作系统的命令;例如
()调用系统命令,但结果是返回对象
例如:
目录相关的方法:
getcwd():查看当前目录。即python脚本工作的目录路径;例如:
chdir():切换目录;例如:
():遍历目录树walk(top,topdown=True,onerror=None)
listdir():列出指定目录下文件及子目录;如:
显示c盘文件和目录:
mkdir():创建目录;如:
makedirs():创建多层级目录;如:
rmdir():删除空目录;例如:
removedirs():删除多层级空目录;例如:
路径相关的方法:
:函数返回一个路径的目录名和文件名;例如:
;如:
,例如:
,例如:
;例如:
,例如:
文件相关的方法:
remove():删除文件,如:
rename():重命名文件,如
查询相关方法
函数用来检验给出的路径是否真地存在,如:
例如:
islink():是否为链接文件
文件信息相关方法:
stat():查看文件状态信息
getatime():访问时间
getctime():状态改变时间(例如权限等)
getmtime():修改时间
,
二、上机练习
学生上机完成本节模块与文件的上机编程任务,教师巡视指导。
三、本课小结
什么是模块
模块和文件
掌握导入模块:模块搜索路径、import语句导入模块、from语句导入模块
os模块及方法:系统相关、目录相关、路径相关、文件相关、查询相关
课后
反思
时间:
课题
常用模块二
教
学
目
标
掌握Random模块
掌握MD5加密模块
掌握Time模块
掌握Sys模块
教学重点
掌握Random模块
教学难点
掌握MD5加密模块
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
random模块
1)
()的函数原型为:(a,b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n:a<=n<=b
print(12,20)#生成的随机数n:12<=n<=20
print(20,20)#结果永远是20
#print(20,10)#该语句是错误的。下限必须小于上限。
2)([start],stop[,step])
从指定范围内,按指定基数递增的集合中获取一个随机数。如:
(10,100,2),结果相当于从[10,12,14,16,...96,98]序列中获取一个随机数
Md5加密模块
Time模块
Sys模块
实例
importsys
defreadfile(filename):#从文件中读出文件内容
'''''Printafiletothestandardoutput.'''
f=file(filename)
whileTrue:
line=()
iflen(line)==0:
break
printline,#noticecomma分别输出每行内容
()
#Scriptstartsfromhere
iflen<2:
print'Noactionspecified.'
()
if[1].startswith('--'):
option=[1][2:]
#fetch[1]butwithoutthefirsttwocharacters
ifoption=='version':#当命令行参数为--version,显示版本号
print'Version'
elifoption=='help':#当命令行参数为--help时,显示相关帮助内容
print'''''/
Thisprogramprintsfilestothestandardoutput.
Anynumberoffilescanbespecified.
Optionsinclude:
--version:Printstheversionnumber
--help:Displaythishelp'''
else:
print'Unknownoption.'
()
else:
forfilenamein[1:]:#当参数为文件名时,传入readfile,读出其内容
readfile(filename)
二、上机练习
学生上机完成本节Random模块、MD5加密模块、Time模块、Sys模块的上机编程任务,教师巡视指导。
三、本课小结
Random模块
MD5加密模块
Time模块
Sys模块
课后
反思
时间:
课题
错误与异常和正则表达式
教
学
目
标
了解什么是错误
了解什么是异常
掌握python中的常见异常
掌握检测和处理异常
掌握处理异常的特殊方法:断言、抛出异常、
掌握re模块
教学重点
掌握python中的常见异常
教学难点
掌握检测和处理异常
掌握处理异常的特殊方法:断言、抛出异常
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
了解什么是错误
错误分为:语法错误和逻辑错误
了解什么是异常
异常:
当python检测到错误(语法错误或者逻辑错误等)时,导致解释器无法继续执行下去,这时候就出现了异常.
异常抛出:
为程序开发人员提供了一种在运行时发现错误,进行恢复处理,继续执行的能力。
掌握python中的常见异常
NameError---------使用一个还未赋予对象的变量
SyntaxError-------语法出错
IOError-----------输入/输出操作失败,基本是无法打开文件
ImportError-------无法导入模块或者包,基本是路径问题
IndentationError--语法错误,代码没有正确的对齐(缩进错误)
IndexError--------下标索引超出序列边界
TypeError---------传入的对象类型与要求不符
AttributeError----对象没有这个属性,试图访问一个对象没有的属性或是方法
掌握检测和处理异常
python编程_Python异常机制try:代码段except异常类型,e:异常处理代码段,如果不知道异常类型,可以使用try:代码段exceptExcept,e:异常处理代码段;Except是通用异常类型
try:
语句-->捕捉这里语句的异常
exceptException1[,reason]:-->异常判断语句
语句-->异常处理语句
exceptException2[,reason]:-->异常判断语句
语句-->异常处理语句
except:-->空except语句用于捕捉其他异常
语句
else: -->未发生异常时执行
语句
finally: -->无论是否发生异常都执行
语句
5,掌握处理异常的特殊方法
5.1断言
语法:assertexpression[,reason]
assert是断言的关键字。执行该语句的时候,先判断表达式expression,如果表达式为真,则什么都不做;如果表达式不为真,则抛出异常
1)了解什么是正则表达式
正则表达式(RE)是由普通字符和特殊符号组成的字符串,描述了这些字符的某种组合方式,因此能按某种模式匹配一组有相似特征的字符串.
2)了解什么是re模块
Python的re模块用于实现正则表达式。
3)掌握正则表达式中的特殊字符
\d匹配任何数字
\D匹配非数字字符
\w匹配字母,数字,下划线
\W匹配不是字母,数字,下划线的字符
\s匹配空白字符
\S匹配不是空白的字符
4)掌握re模块的常用方法
compile()
功能:编译正则表达式
用法:compile(pattern,flags=0)
findall()
功能:取得每个()中正则匹配的内容(没有()则整个正则匹配的部分),返回匹配列表
用法:findall(pattern,string[,flags])
match()
匹配:从字符串的开头对模式进行匹配,如果成功,则返回一个对象;如果失败,则返回None。
用法:match(pattern,string)
search()
搜索:search会检查字符串任意位置与给定正则表达式的搜索情况。如果搜索到成功的匹配,会返回一个匹配对象,否则返回None。
用法:search(pattern,string)
split()
功能:正则表达式作为分隔符把字符串分割为一个列表,返回列表,最多分割max次(默认是分割所有匹配的地方)
用法:split(pattern,string,max=0)
importre
a=
print('\.',a)
sub()和subn()
功能:将某字符串中匹配正则表达式模式的部分进行替换。
subn()和sub()一样,但它还返回一个表示替换次数的数字;替换后的字符串和表示替换次数的数字作为一个元组返回。
用法:sub(pattern,repl,string,max=0)
5)掌握匹配或搜索返回对象的常用的方法
group()返回整个正则表达式匹配的字符串,同group(0)
group(i)正则表达式中第i个“()”括起来部分正则表达式匹配的内容
groups()返回各个()括起来的正则表达式匹配的字符串组成的元组
start()返回匹配开始的位置
end()返回匹配结束的位置
span()返回匹配开始和结束的位置
二、上机练习
学生上机完成本节python中的常见异常、检测和处理异常、处理异常的特殊方法、re模块的上机编程任务,教师巡视指导。
三、本课小结
什么是错误、什么是异常
python中的常见异常
检测和处理异常
处理异常的特殊方法:断言、抛出异常、
re模块
课后
反思
时间:
课题
与数据库交互
教
学
目
标
掌握数据库连接方法
掌握数据库模块方法
学会数据库操作:增加数据、删除数据、修改数据、查询数据
掌握数据库关闭方法
教学重点
数据库操作:增加数据、删除数据、修改数据、查询数据
教学难点
数据库模块方法
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
数据库的连接
mysqldb解决依赖性
yuminstallpython-develmysql-develzlib-developenssl-devel
导入模块
建立连接
常见参数
数据库模块方法
commit()提交
rollback()回滚
看一个简单的查询示例如下:
cursor方法执行与返回值
cursor方法提供两类操作:1.执行命令,2.接收返回值。
cursor用来执行命令的方法
execute(self,query,args)
fetchall(self)
果size的值大于返回的结果行的数量,则会返回条数据
fetchmany(self,size=None)
................................
user_id="test"
password="password123"
('insertintoLoginvalues("%s","%s")'%\
????????????(user_id,password))
..................................
数据库查询操作
以查询EMPLOYEE表中salary(工资)字段大于1000的所有数据为例:
代码如下:
#!/usr/bin/python
#encoding:utf-8
importMySQLdb
#打开数据库连接
db=("localhost","root","361way","test")
#使用cursor()方法获取操作游标
cursor=()
#SQL查询语句
sql="SELECT*FROMEMPLOYEE\
??????WHEREINCOME>'%d'"%(1000)
try:
??#执行SQL语句
??(sql)
??#获取所有记录列表
??results=()
??forrowinresults:
?????fname=row[0]
?????lname=row[1]
?????age=row[2]
?????sex=row[3]
?????income=row[4]
?????#打印结果
?????print"fname=%s,lname=%s,age=%d,sex=%s,income=%d"%\
????????????(fname,lname,age,sex,income)
except:
??print"Error:unabletofecthdata"
#关闭数据库连接
()
以上脚本执行结果如下:
fname=Mac,lname=Mohan,age=20,sex=M,income=2000
definput_value():
FIRST_NAME=raw_input("FIRST_NAME_DELET:")
sql="""
deletefromemployeewhereFIRST_NAME='%s'
"""%(FIRST_NAME)
returnsql
数据库更新操作
更新操作用于更新数据表的的数据,以下实例将test表中的SEX字段全部修改为'M',AGE字段递增1:
代码如下:
#encoding:utf-8
#!/usr/bin/python
importMySQLdb
#打开数据库连接
db=("localhost","root","361way","test")
#使用cursor()方法获取操作游标
cursor=()
#SQL更新语句
sql="UPDATEEMPLOYEESETAGE=AGE+1
?????????????????????????WHERESEX='%c'"%('M')
try:
??#执行SQL语句
??(sql)
??#提交到数据库执行
??()
except:
??#发生错误时回滚
??()
#关闭数据库连接
()
删除记录语句
sql="DELETEFROMEMPLOYEEWHEREAGE>'%d'"%(20)
try:
??#执行SQL语句
??(sql)
??#向数据库提交
??()
except:
??#发生错误时回滚
??()
对于支持事务的数据库,在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。
二、上机练习
学生上机完成本节python中的数据库连接、数据库操作、数据库关闭的上机编程任务,教师巡视指导。
三、本课小结
数据库连接
数据库模块方法
数据库操作:增加数据、删除数据、修改数据、查询数据
数据库关闭
课后
反思
时间:
课题
Python实例:监测服务器硬盘、cpu、内存使用率
教
学
目
标
完成教学任务实例:具体如下
硬盘监控
cpu监控
内存监控
网卡监控
进程监控
教学重点
硬盘监控
cpu监控
内存监控
网卡监控
进程监控
教学难点
进程监控
主要教法
讲授演示法+上机操作
教学过程
一、学习任务
学习任务:监测服务器硬盘、cpu、内存使用率任务。要求与注意事项
完成教学任务实例:具体如下
硬盘监控
cpu监控
内存监控
网卡监控
进程监控
二、上机练习
学生上机实操:
提示:
Psutil可以获取系统运行的进程、CPU、内存、磁盘、网络等信息,主要应用于系统监控,分析和限制系统资源以及进程的管理,它实现了类似一下ps、top、lsof、pmap、who、iotop等命令功能,并且跨平台支持32、64位操作系统,还支持到版本的python版本
监控服务器硬盘使用率
代码如下:
#psutilmemoryinformations内存使用率
#磁盘使用率
disk=()
foriindisk:
print"磁盘:%s分区格式:%s"%,
disk_use=
print"使用了:%sM,空闲:%sM,总共:%sM,使用率\033[1;31;42m%s%%\033[0m,"%1024/1024,1024/1024,1024/1024,
#网络使用率
监控服务器cpu使用率
defcpu():
whileTrue:
(1)
cpu_liyonglv=()
print"当前cpu利用率:\033[1;31;42m%s%%\033[0m"%cpu_liyonglv
ifcpu_liyonglv>:
baojing()
defbaojing():
i=0
whilei<10:
i+=1
("ALARM8",
cpu()
监控服务器内存使用率
memory=()
ab=float/float*100
print"%.2f%%"%ab
print()
监控服务器网卡使用率
#网络使用率
count=()
print"发送字节数:\033[1;31;42m%s\033[0mbytes,接收字节数:\033[1;31;42m%s\033[0mbytes,发送包数:%s,接收包数%s"%,,,
users=()
print"当前登录用户:",users[0].name
#时间
curent_time=()
curent_time_1=("%Y-%m-%d%H:%M:%S",(curent_time))
printcurent_time_1
进程监控
脚本如下:
#读取进程pid,名称,可执行路径
pid=()
fork,iinenumerate(pid):
try:
proc=(i)
printk,i,"%.2f%%"%()),"%",(),()
except:
print""
三、任务展示与评价
学生进行展示,完成互评与老师点评
项目
分值
评价标准
得分
自评
组评
师评
程序设计
20
编程技巧
30
调试过程
运行结果
30
搭建合理稳固
小组配合
20
小组成员分工及配合方面
总体得分
课后
反思
时间:
课题
监控服务模块开发监控与apache服务实例开发制作
教
学
目
标
socket模块
Socket?类型
Socket?函数
socket编程思路
Socket编程之服务端代码
Socket编程之客户端代码
监控apache服务实例开发制作
教学重点
socket模块
监控apache服务实例开发制作
教学难点
监控apache服务实例开发制作
主要教法
讲授演示法+上机操作
教学过程
一、新课讲授
SOCKET:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
Socket的英文原义是“孔”或“插座”。作为BSDUNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信
socket模块
Python提供了两个基本的socket模块。
??第一个是Socket,它提供了标准的BSDSocketsAPI。
??第二个是SocketServer,它提供了服务器中心类,可以简化网络服务器的开发。
Socket?类型
套接字格式:
socket(family,type[,protocal])?使用给定的地址族、套接字类型、协议编号(默认为0)来创建套接字。
socket类型
描述
只能够用于单一的Unix系统进程间通信
服务器之间网络通信
IPv6
流式socket,forTCP
数据报式socket,forUDP
原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。
可靠的连续数据包服务
创建TCPSocket:
s=,
创建UDPSocket:
s=,
Socket?函数
注意点:
1)TCP发送数据时,已建立好TCP连接,所以不需要指定地址。UDP是面向无连接的,每次发送要指定是发给谁。
2)服务端与客户端不能直接发送列表,元组,字典。需要字符串化repr(data)。
socket函数
描述
服务端socket函数
(address)
将套接字绑定到地址,?在AF_INET下,以元组(host,port)的形式表示地址.
(backlog)
开始监听TCP传入连接。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。
()
接受TCP连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据。address是连接客户端的地址。
客户端socket函数
(address)
连接到address处的套接字。一般address的格式为元组(hostname,port),如果连接出错,返回错误。
(adddress)
功能与connect(address)相同,但是成功返回0,失败返回errno的值。
公共socket函数
(bufsize[,flag])
接受TCP套接字的数据。数据以字符串形式返回,bufsize指定要接收的最大数据量。flag提供有关消息的其他信息,通常可以忽略。
(string[,flag])
发送TCP数据。将string中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于string的字节大小。
(string[,flag])
完整发送TCP数据。将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据。成功返回None,失败则抛出异常。
(bufsize[.flag])
接受UDP套接字的数据。与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址。
(string[,flag],address)
发送UDP数据。将数据发送到套接字,address是形式为(ipaddr,port)的元组,指定远程地址。返回值是发送的字节数。
()
关闭套接字。
()
返回连接套接字的远程地址。返回值通常是元组(ipaddr,port)。
()
返回套接字自己的地址。通常是一个元组(ipaddr,port)
(level,optname,value)
设置给定套接字选项的值。
(level,optname[.buflen])
返回套接字选项的值。
(timeout)
设置套接字操作的超时期,timeout是一个浮点数,单位是秒。值为None表示没有超时期。一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如connect())
()
返回当前超时期的值,单位是秒,如果没有设置超时期,则返回None。
()
返回套接字的文件描述符。
(flag)
如果flag为0,则将套接字设为非阻塞模式,否则将套接字设为阻塞模式(默认值)。非阻塞模式下,如果调用recv()没有发现任何数据,或send()调用无法立即发送数据,那
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目十七 数字艺术的应用与发展趋势
- 人教版六年级下学期语文期末考试试题以及答案
- 学前教育研究方法
- 人教版(2024)七年级下册英语Unit 7 A Day to Remember Section A 1a-1d 教案
- 硫磺精制提纯及罐区扩建项目可行性研究报告模板申批拿地用
- 2025年国家广播电视总局直属事业单位招聘310人笔试模拟试题及答案
- 关键部件创新研发与中试制造中心项目可行性研究报告模板-立项拿地
- 2025年江苏省综合评标评审专家库专家考试(住建专业知识)模拟试题及答案
- 2025年广播电视编辑记者资格考试(广播电视业务)能力提高训练试题库(四川广安)
- 2025年江苏省综合评标评审专家库专家考试(住建专业知识)综合试题及答案
- 《火力发电企业电力监控系统商用密码应用技术要求》
- 2025年石家庄市市属国有企业招聘笔试考试试题(含答案)
- 肺占位待诊-教学查房
- 中山大学自主招生个人陈述自荐信范文
- 【MOOC】知识创新与学术规范-南京大学 中国大学慕课MOOC答案
- 人教版九年级全册英语中考复习Unit1-Unit14共14个单元知识点总结与练习题汇编(含答案)
- WS-T 491-2024 梅毒非特异性抗体检测指南
- 安全生产月安全知识手册
- 探索心理学的奥秘智慧树知到期末考试答案章节答案2024年北京大学
- 关键质量控制点培训
- 《器官移植》课件
评论
0/150
提交评论