程序设计思想与方法python讲义(第四至五章).ppt
《程序设计思想与方法python讲义(第四至五章).ppt》由会员分享,可在线阅读,更多相关《程序设计思想与方法python讲义(第四至五章).ppt(93页珍藏版)》请在三一办公上搜索。
1、程序设计思想与方法45章,潘理,字符串处理,文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理,文本数据,计算机应用从科学计算转向信息管理.信息管理中大量的数据都是文本数据.如姓名,地址,简历等等计算机中用字符串来表示文本数据.,3,字符串类型,字符串:字符序列字符串字面值:用一对引号(单或双)标明.“hello world”!#$%&*“汉字也是字符”字符串中包含引号怎么办?包含单引号:串用双引号括住包含双引号:串用单引号括住两者都有:更一般的方法是串中用转义字符print“Alice said,“Hello,Bob”,Lu Chaojun,SJTU,4,字符串处理,文本
2、数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理,字符串的输入,普通变量的输入num=input(“Enter a number:“)Enter a number:5.6变量num得到值 5.6如果用同样的方法输入字符串str=input(“Enter a string:“)Enter a string:JohnPython会输出出错信息原因:input()是把输入当成表达式来计算的!,Lu Chaojun,SJTU,6,字符串的正确输入,输入时加上引号str=input(“Enter a string:“)Enter a string:JohnEnter a string:
3、“John”使用raw_input()str=raw_input(“Enter a string:“)Enter a string:John,input与raw_input,x=input()x=raw_input()“John”Johnx xJohn Johnx=input()x=raw_input()3*4+2 3*4+2x x14 3*4+2,Lu Chaojun,SJTU,8,字符串赋值,字符串可以直接赋值Str=abcdeStrabcde,取字符,字符串是字符序列,可通过位置索引访问每个字符.对长度为n的字符串,索引可以是大于0的数:自左向右为0 n1,或者是负数:自右向左为1,2,
4、3,n 例如:若str=“Hello Bob”,则str0或str9是Hstr5或str4是 str8或str1是bstr9或str10越界出错,取子串,切段:取一个索引范围内的字符.:所取子串:位置索引从start end1start或/和end可省略,缺省值为串的首尾例如:若str=“Hello Bob”,则str0:3是Helstr5:9是 Bobstr:5即str0:5str5:即str5,9str:即str0:9,连接,两字符串的连接+例如:“Hello”+“Bob”得到“HelloBob”一个字符串的重复例如:3*“Hi”和“Hi”*3都得到“HiHiHi”串长度函数len(),编
5、程实例:获得每个月份的缩写,在一个数据表里查找目标def main():months=“JanFebMarAprMayJunJulAugSepOctNovDec”n=input(“Enter month number(1-12):”)pos=(n-1)*3monthAbbr=monthspos:pos+3print“The month abbreviation is”,monthAbbr+”.”这是简单查找:利用位置规律来定位.若是月份全称怎么办?,字符串处理,文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理,字符串的机内表示,与数值一样,计算机内用二进制数表示每一个字符
6、因此操作字符串本质上仍然是数值运算.表示字符的这个数值称为字符的编码.每个字符用什么编码?对这个问题的不同回答就导致了许多不同的字符编码系统例如:字符集只包含AZ,分别用126表示.“8 5 12 12 15”是什么意思?,编码标准,不同计算机若用不同编码体系,则彼此无法沟通。标准化ASCII:单字节编码只用到7位:0-12796个可打印字符,32个控制字符利用8位可扩充ASCII:0-255GB2312:两字节(6763个汉字)GB18030:最多四字节(70244个汉字)Unicode:最多四字节.,字符与编码,求给定字符的编码:ord()ord(a)可得97求给定编码的字符:chr()c
7、hr(97)可得a可见Python 2.7支持ASCII.支持中文编码吗?print“你好”,字符串处理,文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理,编码,编码:输出一串字符对应的内码def main():message=raw_input(Enter the message to encode:)for ch in message:print ord(ch),main()执行时Enter the message to encode:abcdef97 98 99 100 101 102,解码,输出一串数字对应的字符串称为解码import stringdef main
8、():code=raw_input(Enter the code of message:)message=for numStr in string.split(code):num=eval(numStr)message=message+chr(num)print the decoded message is:,messagemain()运行时Enter the code of message:97 98 99 100the decoded message is:abcd,几个函数,字符串与数字的相互转换eval(字符串):将字符串转换成数字。例如:eval(“500”)返回500str(表达式
9、):将数值当作字符串。例如str(3+4*5)string.split:string库中的函数,字符串库,Python提供的string库包含了很多有用的字符串处理函数例如split():将字符串拆分成子串string.split(“Hello string library!”)返回结果:Hello,string,library!string.split(“32,24,25,57”,”,”)返回结果:32,24,25,57,字符串库的常用函数,capitalize(s):使字符串s的首字母大写capwords(s):使字符串s中的每个单词首字母大写center(s,width),ljust(s
10、,width),rjust(s,width):使s变成width宽度且居中/左对齐/右对齐count(s,sub):sub在s中出现次数find(s,sub),rfind(s,sub):在s中找sub的首次/末次出现join(seq):将串序列中的串合并成一个串,分隔符默认为空格lower(s),upper(s):将串变成小写/大写lstrip(s),rstrip(s):删除打头/收尾的空格replace(s,oldsub,newsub):在s中用新子串替换旧子串,字符串与密码,字符串在机内使用一个数字序列表示。如果不知道采用什么编码,只看这个数字序列是猜不出表示的是什么字符串。这就是一种加密
11、机制,称为替换法。字符编码都是工业标准,不是为了保密目的,从编码到密码,密码:为了保密而对信息进行编码.加密是计算机的一个重要应用,凯撒密码(Caesar cipher),a-D、b-E、c-F、d-G、e-H s-V、z-C eg.明文:access control 可变为:DFFHVV FRQWURO,字符串处理,文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理,格式化输出,格式化运算符%语法%()语义:模板串中用%标记“空位”,输出时用实际值填入.例如print“The price is$%0.2f”%(100)The price is$100.00,格式描述,%.
12、三种类型字符:decimal,float,string宽度:用多少位置显示数值.省略或指定为0:根据值的实际长度显示.宽度超出值的长度时:右对齐显示宽度前加负号:左对齐.对浮点数用超长宽度会怎样?试试精度:指示浮点数值的小数位数.省略:按系统默认的小数位数显示.print“%f”%(math.pi),浮点数如何精确化?,浮点数的机内表示是近似值.银行应用要求精确表示金额,故不宜用浮点数及浮点运算.解决办法:以“分”为单位,用整数表示金额.设金额是x分,输出时利用x/100和x%100分别得到“元”和“角分”.print“You have%d.%02d”%(x/100,x%100)02d:不足2
13、位用0填充:语句换行继续,字符串处理,文本数据简单的字符串处理字符串的机内表示字符串和密码格式化输出文件处理,文件处理,文件:存储在磁盘上的数据序列.典型的文件结构:基本数据项:可为任何类型若干数据项构成记录若干记录构成文件例如:学生基本数据项:学号,姓名,年龄一个学生记录:学号,姓名,年龄文件:全体学生记录,Lu Chaojun,SJTU,32,文本文件,文件中是文本数据文本文件可视为存储在磁盘上的字符串.单行字符串多行字符串行尾(EOL):用特殊字符,如新行(newline)字符.Python用n表示新行字符,该字符在显示时被解释成新行字符.例:print“first linensecon
14、d line”,33,文件处理:打开文件,程序不能直接与外存储器交互信息,必须通过内存进行交流打开文件:将磁盘文件与一个程序变量关联,做好读写准备.=open(,):“r”或“w”例如infile=open(“myfile”,“r”)outfile=open(“myfile”,“w”)写打开时小心文件名!因为可能破坏现有文件,34,文件处理:读写文件,读文件:读出文件内容.read():将整个文件作为一个字符串读入.readline():读入一行.readlines():读入所有行点表示法:文件是对象!写文件:将新内容写入文件.write()若想写多行内容,需写入n,35,文件处理:关闭文件,
15、关闭文件:取消文件变量与磁盘文件的关联.close()关闭文件时,系统会将内存中文件内容输出到磁盘.,Lu Chaojun,SJTU,36,将整个文件作为一个字符串,#file0.pydef main():infile=open(encode.py,r)str=infile.read()print str infile.close()main(),读入文件的前5行,#file1.pydef main():infile=open(encode.py,r)for i in range(5):str=infile.readline()print str infile.close()main(),读入
16、某个文件的所有行,#file3.pydef main():infile=open(encode.py,r)for line in infile.readlines():print line infile.close()main(),39,END,面向对象与图形编程,面向对象的思想图形化编程图形对象的使用未知值的图形化处理坐标系的选择图形交互图形模块介绍,42,42,42,数据与操作:传统观点,数据类型某种值的集合运算(操作)的集合计算就是对数据进行操作数据与操作分离数据是被动的,操作是主动的例如:string类型的值是abc等,对串的操作有+,*,len()等,43,43,数据与操作:面向对象
17、观点,对象(Object):集数据与操作于一身.对象知道一些信息对象能对那些信息进行处理计算:向对象发出请求操作的消息.主动的数据类型面向对象(Object-Oriented):软件系统由各种对象组成,对象之间通过消息进行交互.现代软件系统几乎都是OO设计和实现.,44,44,44,OO基本概念,类(class):描述同类对象的共性包含的数据:任何类型的数据,甚至可以是对其他对象的引用.能执行的操作(方法)对象(object):类的实例(instance)同类的不同对象可有不同的数据值(实例变量),但能执行的操作是一样的创建对象:使用类的构造器(constructor)初始化对象(,,)消息:
18、请求对象执行它的方法.(,,),对象的方法,不同类型的对象当然提供不同的操作对象一般都提供读取它的实例变量值的方法,统称为accessor。例如Point对象的getX()和getY(),Line对象的getP1()和getP2()。对象一般也提供修改其实例变量的方法,统称为mutator。例如所有图形对象都有move(dx,dy)方法。,45,面向对象与图形编程,面向对象的思想图形化编程图形对象的使用未知值的图形化处理坐标系的选择图形交互图形模块介绍,图形界面,命令行界面通过输入一个个命令名字让计算机去做某项特定的工作。如DOS系统。使用复杂,需要记住一个个命令。图形用户界面(GUI)利用窗
19、口、图标、按钮和菜单等方式驱动程序的执行。如window系统。使用方便,图形编程框架,现代编程语言大都提供图形化变成的工具Python有自带的Tkinter本书作者写的图形库:graphics.py放入文件夹:Python26Libsite_packagesimport graphics或 from graphics import*后者可使引用库函数更方便,48,面向对象与图形编程,面向对象的思想图形化编程图形对象的使用未知值的图形化处理坐标系的选择图形交互图形模块介绍,创建和关闭窗口,图形窗口:画图的地方创建一个窗口对象用import graphicswin=graphics.GraphWi
20、n()win=graphics.GraphWin(窗口的名字,行像素数,列像素数)用from graphics import*win=GraphWin()win=GraphWin(窗口的名字,行像素数,列像素数)关闭窗口:win.close(),50,图的内部表示,数字图像的表示:用像素(pixel)表示,像素越多,质量越好。黑白图像的像素需要一个bit表示。如1表示白,0表示黑。如需要表示灰度和彩色,则需要多于1个bit。每个像素占用的bit越多,图像质量越好。分辨率:图象中的像素数。图形库创建的窗口默认的分辨率是200*200,图形对象的操作,小测验:窗口中有哪几类对象?创建一个对象各类对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 思想 方法 python 讲义 四至

链接地址:https://www.31ppt.com/p-6011243.html