Python基础语法

上传人:沈*** 文档编号:93431241 上传时间:2022-05-20 格式:DOC 页数:27 大小:201.50KB
收藏 版权申诉 举报 下载
Python基础语法_第1页
第1页 / 共27页
Python基础语法_第2页
第2页 / 共27页
Python基础语法_第3页
第3页 / 共27页
资源描述:

《Python基础语法》由会员分享,可在线阅读,更多相关《Python基础语法(27页珍藏版)》请在装配图网上搜索。

1、Python 的特点1. 简单Python 是一种代表简单思想的语言。2. 易学Python 有极其简单的语法。3. 免费、开源Python 是 FLOSS (自由/开放源码软件)之一。4. 咼层语言使用 Python 编写程序时无需考虑如何管理程序使用的内存一类的底层细节。5. 可移植性Python 已被移植到很多平台,这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/39O、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStati

2、on、Sharp Zaurus、Windows CE 甚至还有 PocketPC。6. 解释性可以直接从源代码运行。在计算机内部,python 解释器把源代码转换为字节码的中间形式,然后再把它翻译成计算机使用的机器语言。7. 面向对象Python 既支持面向过程编程也支持面向对象编程。8. 可扩展性部分程序可以使用其他语言编写,如C/C+。9. 可嵌入型可以把 Python 嵌入到 c/c+程序中,从而提供脚本功能。10. 丰富的库Python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、操作。电子邮件、XML、XM

3、L-RPC、HTML、WAV 文件、密码系统、 GUI (图形用户界面)、 Tk 和其他与系统有关的- 分割线- 以下是 Python 的基本语法 -、基本概念1. python 中数有四种类型:整数、长整数、浮点数和复数。整数,如 1长整数 是比较大的整数浮点数女口 1.23、3E-2复数 女口 1 + 2j、 1.1 + 2.2j2. 字符串(字符的序列)python 中单引号和双引号使用完全相同。使用三引号(”或”)可以指定一个多行字符串。转义符自然字符串,通过在字符串前加 r 或 R。如 rthis is a line with n则n 会显示,并不是换行。pytho n 允许处理 u

4、n icode 字符串,加前缀 u 或 U ,女口this is an uni code stri ng。字符串是不可变的。按字面意义级联字符串,如this is string会被自动转换为 this is string。3. 标识符的命名第一个字符必须是字母表中字母或下划线_。标识符的其他的部分有字母、数字和下划线组成。标识符对大小写敏感。4. 对象python 程序中用到的任何“东西”都成为“对象”。5. 逻辑行和物理行物理行是我们在编写程序时看到的,逻辑行则是python 看到的。python 中分号;标识一个逻辑行的结束,但是实际中一般每个物理行只写一个逻辑行,可以避免使用分号。 多个

5、物理行中可以写一个逻辑行,如下:s = peter is writi ng this article上面 的使用被称为明确的行连接,又如:print peter6.缩进空白在 python 是非常重要的,行首的空白是最重要的,又称为缩进。行首的空白(空格和制表符)用来决定操作。逻辑行的缩进层次,从而决定语句分组。这意味着同一层次的语句必须有相同的缩进,每一组这样的语句称为一个块。注意:不要混合使用空格和制表符来缩进,因为在跨越不同的平台时无法正常工作。二、运算符与表达式1.运算符与其用法运算符名称 说明 例子+ 力口 两个对象相加3 + 5 得到 8。a + b得至 U ab。- 减 得到负数

6、或是一个数减去另一个数-5.2 得到一个负数。50 - 24 得到 26。* 乘 两个数相乘或是返回一个被重复若干次的字符串2 * 3 得到 6。la * 3 得到lalala。幂返回 x 的 y 次幕3 * 4 得至 U 81 (即 3 * 3 * 3 * 3 )/ 除 x 除以 y 4/3 得到 1 (整数的除法得到整数结果)。4.0/3 或 4/3.0 得到 1.3333333333333333/ 取整除返回商的整数部分4 / 3.0 得到 1.0% 取模返回除法的余数8%3 得到 2。-25.5%2.25 得到 1.5左移把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制

7、数字,即0 和 1) 2 右移把一个数的比特向右移一定数目11 1 得到 5。一一 11 按比特表示为 1011,向右移动 1 比特后得到101,即十进制的 5。& 按位与数的按位与 5 & 3 得到 1。| 按位或 数的按位或 5 | 3 得到 7。A按位异或数的按位异或5A3 得到 6按位翻转x 的按位翻转是-(x+1) 5 得到 6。 小于 返回 x 是否小于 y。所有比较运算符返回 1 表示真,返回 0 表示假。这分别与特殊的变量 True 和 False 等价。注意,这些变量名的大写。5 3 返回 0 (即 False)而 3 5 返回 1 (即 True)。比较可以被任意连接: 3

8、 5 大于 返回 x 是否大于 y 5 3 返回 True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回 False。= 小于等于返回 x 是否小于等于 y x = 3; y = 6; x = 大于等于返回 x 是否大于等于 y x = 4; y = 3; x = y 返回 True。= 等于比较对象是否相等x = 2; y = 2; x = y 返回 True。x = str; y = stR; x = y 返回 False。x = str; y = str;x = y 返回 True。!= 不等于比较两个对象是否不相等x = 2; y = 3; x != y 返

9、回 True。not 布尔非” 如果 x 为 True,返回 False。如果 x 为 False,它返回 True。x = True; not y 返回 False。and 布尔与” 如果 x 为 False, x and y 返回 False,否则它返回 y 的计算值。x = False; y = True; x and y,由于 x是 False,返回 False。在这里,Python 不会计算 y,因为它知道这个表达式的值肯定是False (因为 x 是 False)。这个现象称为短路计算。or 布尔或” 如果 x 是 True,它返回 True,否则它返回 y 的计算值。x = Tr

10、ue; y = False; x or y 返回 True。短路计算在这里也适用。2.运算符优先级(从低到高)运算符描述lambda Lambda 表达式or 布尔“或”and 布尔“与”not x 布尔非”in, not in 成员测试 is, is not 同一性测试 ,=,!=,= 比较| 按位或A按位异或& 按位与 移位+,-加法与减法*,/,%乘法、除法与取余+x, -x 正负号x 按位翻转* 指数x.attribute 属性参考xi ndex下标xindex:index寻址段 f(argume nts.)函数调用(experessi on,.)绑定或元组显示expressi on,

11、列 表显示 key:datum,.字典显示expressi on,字符串转换3. python 控制台输出使用 printprint abc#打印 abc 并换行print abc%s % d#打印 abcdprint abc%sef%s % (d, g)#打印 abcdefg三、控制流1.if 语句 i = 10n = in t(raw_i nput(e nter a nu mber:)if n = i:prin t equalelif n %s % (key, value)#1 - one#2 - twodiet 函数如下:clear()-删除字典中所有元素di = 1:o ne, 2:t

12、wod1.clear()print di # copy()-返回字典的一个副本(浅复制)di = 1:o ne, 2:twod2 = d1.copy()print d2 #1: o ne, 2: twodict.fromkeys(seq,val=None)-创建并返回一个新字典,以序列 seq 中元素做字典的键,的初始值(默认为 None)I = 1,2, 3t = (1,2, 3)d3 = .fromkeys(l)print d3 #1: None, 2: No ne, 3: Noned4 = .fromkeys(t, default)print d4 #1: default, 2: def

13、ault, 3: defaultget(key,default) -返回字典 dict 中键 key 对应值,如果字典中不存在此键,则返回 默认值为 None)d5 = 1:o ne, 2:two, 3:threeprint d5.get(1) #oneprint d5.get(5) #No neprint d5.get(5, test) #testhas_key(key) -判断字典中是否有键 keyd6 = 1:o ne, 2:two, 3:threeprint d6.has_key(1)#Trueprint d6.has_key(5)#Falseval 为字典所有键对应default 的

14、值(defaultitems()-返回一个包含字典中(键,值)对元组的列表d7 = 1:o ne, 2:two, 3:threefor item in d7.items(): print item#(1, on e)#(2, two)#(3, three) for key, value in d7.items():prin t %s - %s % (key, value)#1 - one #2 - two#3 - threekeys()-返回一个包含字典中所有键的列表d8 = 1:o ne, 2:two, 3:threefor key in d8.keys(): print key#1#2#3

15、values。-返回一个包含字典中所有值的列表d8 = 1:o ne, 2:two, 3:threefor value in d8.values():print value#one#two#threepop(key, default)-若字典中 key 键存在,删除并返回dictkey,若不存在,且未给出default 值,引发KeyError 异常d9 = 1:o ne, 2:two, 3:three print d9.pop(1) #one print d9 #2: two, 3: threeprint d9.pop(5, No ne) #None try:d9.pop(5)# raise

16、 KeyErrorexcept KeyError, ke:print KeyError:, ke #KeyError:5popitem()-删除任意键值对,并返回该键值对,如果字典为空,则产生异常KeyErrord10 = 1:o ne, 2:two, 3:threeprint d10.popitem()#(1, on e)print d10#2: two, 3: threesetdefault(key,default) -若字典中有 key,则返回 vlaue 值,若没有 key,则加上该 key,值为 default,默 认 None d =1:o ne, 2:two, 3:threepr

17、int d.setdefault(1)#oneprint d.setdefault (5)#No neprint d #1: o ne, 2: two, 3: three, 5: Noneprint d.setdefault(6, six) #sixprint d #1: o ne, 2: two, 3: three, 5: None, 6: sixupdate(dict2)-把 dict2 的元素加入到 dict 中去,键字重复时会覆盖dict 中的键值d = 1:o ne, 2:two, 3:threed2 = 1:first, 4:forthd.update(d2)print d #1:

18、 first, 2: two, 3: three, 4: forthviewitems()-返回一个 view 对象,(key, value)pair 的列表,类似于视图。优点是,如果字典发生变化,view 会同步发生变化。在迭代过程中,字典不允许改变,否则会报异常d = 1:o ne, 2:two, 3:threefor key, value in d.viewitems():prin t %s - %s % (key, value)#1 - one#2 - two#3 - threeviewkeys()-返回一个 view 对象,key 的列表d = 1:o ne, 2:two, 3:th

19、reefor key in d.viewkeys():print key#1#2#3viewvalues()-返回一个 view 对象,value 的列表d = 1:o ne, 2:two, 3:threefor value in d.viewvalues():print value #one#two#three4. 序列序列类型是指容器内的元素从0 开始的索引顺序访问,一次可以访问一个或者多个元素;列表、元组和字符串都是序列;序列的两个主要特点是索引操作符和切片操作符;索引可以得到特定元素;切片可以得到部分序列;1 nu mbers = zero, on e, two, three, fou

20、r22 print nu mbers1 # one3 print nu mbers-1 # four4 #pri nt nu mbers5 # raise In dexError65 print nu mbers: # zero, on e, two, three, four6 print numbers3: # three, four7 print nu mbers:2 # zero, on e8print numbers2:4 # two, three9print numbers1:-1 # o ne, two, three切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒

21、号之后)表示切片到哪里结束。如果不指定第一个数,Python 就从序列首开始。如果没有指定第二个数,则Python 会停止在序列尾。注意,返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。可以用负数做切片。负数用在从序列尾开始计算的位置。5. 绑定当创建一个对象并给它赋一个变量的时候,这个变量仅仅“指向”那个对象,而不是表示这个对象本身!也就是说,变量名指向计算机中存储那个对象的内存,这被称作名称到对象的绑定。如果要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单对象),那么必须使用切片操作符来取得拷贝。七、面向对象编

22、程python 支持面向对象编程;类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实 例。对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域;对象也可以使用属于类的函数, 这样的函数称为类的方法;域和方法可以合称为类的属性。域有两种类型-属于实例的或属于类本身;它们分别被称为实例变量和类变量。类使用关键字 class 创建,类的域和方法被列在一个缩进块中。类的方法必须有一个额外的第一个参数, 但是在调用时不为这个参数赋值, 这个特殊变量指对象本身, 按照惯例 它的名称是 self,类似 C#中的 this。class Ani mal:pass #emp

23、ty block_i nit_方法在类的一个对象被创建时调用该方法;相当于 C+中的构造函数。_de方法在类的对象被销毁时调用该方法;相当于 C+中的析构函数。在使用 del 删除一个对象时也就调用_del_ 方法。Python 中所有的类成员(包括数据成员)都是 public 的;只有一个例外,如果使用的数据成员以双下划线为前缀,则为私有变量。class Pers on:Cou nt = 0def _init_(self, n ame, age):Pers on.Count += 1self. name = n ameself._age = agep = Perso n(peter, 25)

24、p1 = Perso n(joh n, 20)print Pers on .Co unt #2print p.n ame #peterprint p._age #AttributeError: Pers on in sta nee has no attribute _age继承:为了使用继承,基类的名称作为一个元组跟在类名称的后面;python 支持多重继承。下面是一个关于继承的例子:1 class SchoolMember:2Represe nt any school member.3def _init_(self, n ame, age):4self. name = n ame5self.

25、age = age6prin t I nitializ ing a school member.77def tell(self):8Tell my details9prin t Name: %s, Age: %s, % (self. name, self.age),1110 class Teacher(SchoolMember):11Represe nt a teacher.12def _init_(self, n ame, age, salary):13SchoolMember._init_(self, n ame, age)14self.salary = salary15prin t I

26、nitializ ing a teacher1816def tell(self):17SchoolMember.tell(self)18prin t Salary: %d % self.salary2219 class Stude nt(SchoolMember):20Represe nt a stude nt.21def _init_(self, n ame, age, marks):22SchoolMember._init_(self, n ame, age)23self.marks = marks24prin t I nitializ ing a stude nt2925def tell

27、(self):26SchoolMember.tell(self)27prin t Marks: %d % self.marks3328 print SchoolMember._doc_29 print Teacher._doc_30 print Student._doc_3731 t = Teacher(Mr. Li, 30, 9000)32 s = Stude nt(Peter, 25, 90)4033 members = t, s4234 for m in members:35m.tell()程序输出如下:Represe nt any school member.Represe nt a

28、teacher.Represe nt a stude nt.In itializ ing a school member.In itializ ing a teacherIn itializ ing a school member.In itializ ing a stude ntName: Mr. Li, Age: 30, Salary: 9000Name: Peter, Age: 25, Marks: 90八、输入/输出程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用raw_input 和 print,也可使用 str 类。raw_input(xxx)输入 xx

29、x 然后读取用户的输入并返回。1.文件输入/输出可以使用 file 类打开一个文件,使用 file 的 read、readline 和 write 来恰当的读写文件。 对文件读写能力取决于打开文件时使用的模式,常用模式有读模式(门、写模式(W)、追加模式(a),文件操作之后需要调用close 方法来关闭文件。1 test = ”2 This is a program about file I/O.33 Author: Peter Zhange4 Date: 2011/12/255 ”76 f = file(test.txt, w) # ope n for writ ing, the file

30、will be created if the file does nt exist7 f.write(test) # write text to file8f.close() # close the file119f = file(test.txt) # if no mode is specified, the default mode is reado nly.1310 while True:11line = f.readli ne()12if len (li ne) = 0:# zero len gth in dicates the EOF of the file13break14prin

31、 t li ne,1915 f.close()2.存储器python 提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python 对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和 pickle 完全一样,只不过它是用c 写的,要比 pickle 速度快(大约快 1000 倍)。import cPickledatafile = data.datan amelist = peter, joh n, k in gf = file(datafile, w)cPickle.dump( namelist, f)f.close()del

32、 n amelistf = file(datafile)stored namelist = cPickle .lo ad(f) print stored namelist #peter, john, ki ng九、异常当程序中出现某些异常的状况时,异常就发生了。python 中可以使用 try . except 处理。try:print 1/0except ZeroDivisi on Error, e:print eexcept:prin t error or excepti on occurred.#in teger divisio n or modulo by zero可以让 try .

33、except 关联上一个 else,当没有异常时则执行else。我们可以定义自己的异常类,需要继承Error 或 Exception。class Shortin putExceptio n( Excepti on): A user-defi ned excepti on class def _init_(self, le ngth, atleast):Exception._init_(self) selfen gth = len gth self.atleast = atleast try:s = raw_in put(e nter somet in g-)if len (s) 3:raise

34、 Short in putExcepti on (le n( s), 3)except EOFError:prin t why you in put an EOF?except Short in putExcepti on, ex:prin t The len ght of in put is %d, was expect ing at the least %d % (ex .len gth, ex.atleast) else:print no excepti on#The len ght of in put is 1, was expect ing at the least 3try.fi

35、nallytry:f = file(test.txt)while True:li ne = f.readli ne()if len (I ine) = 0:breaktime.sleep(2)print line,fin ally:f.close()prin t Clea ning up.十、Python 标准库Python 标准库是随 Pthon 附带安装的,包含了大量极其有用的模块。1. sys 模块sys 模块包含系统对应的功能sys.argv-包含命令行参数,第一个参数是 py 的文件名sys.platform-返回平台类型sys.exit(status) -退出程序,可选的statu

36、s(范围:0-127): 0 表示正常退出,其他表示不正常,可抛异常事件供捕获sys.path-程序中导入模块对应的文件必须放在sys.path 包含的目录中,使用sys.path.append 添加自己的模块路径sys.modules -This is a dictio nary that maps module n ames to modules which have already bee n loadedsys.stdin,sys.stdout,sys.stderr-包含与标准 I/O 流对应的流对象s = sys.std in. readli ne()sys.stdout.write

37、(s)2. os 模块该模块包含普遍的操作系统功能os.name 字符串指示你正在使用的平台。比如对于Windows,它是nt,而对于 Linux/Unix 用户,它是posixos.getcwd()函数得到当前工作目录,即当前 Python 脚本工作的目录路径os.getenv()和 os.putenv()函数分别用来读取和设置环境变量os.listdir()返回指定目录下的所有文件和目录名os.remove()函数用来删除一个文件os.system()函数用来运行 shell 命令os.linesep 字符串给出当前平台使用的行终止符。例如,Windows 使用rn, Linux 使用n而

38、 Mac 使用ros.sep 操作系统特定的路径分割符os.path.split()函数返回一个路径的目录名和文件名os.path.isfile()和 os.path.isdir()函数分别检验给出的路径是一个文件还是目录os.path.existe ()函数用来检验给出的路径是否真地存在十一、其他1. 一些特殊的方法名称 说明_ini t_(self,.)这个方法在新建对象恰好要被返回使用之前被调用。_de(self)恰好在对象要被删除之前调用。_str_(self)在我们对对象使用print 语句或是使用 str()的时候调用。t_(self,other)当使用 小于运算符( 等等)都有特

39、殊的方法。_getitem_(self,key)使用 xkey索引操作符的时候调用。_len_(self)对序列对象使用内建的 len()函数的时候调用。下面的类中定义了上表中的方法:class Array:list =def _init_(self):prin t c on structordef _del_(self):prin t destructordef _str_(self):return this self-defi ned array classdef _getitem_(self, key): return self._listkeydef _len_(self):retur

40、n len(self._list)def Add(self, value):self._list.appe nd(value)def Remove(self, in dex):del self._listi ndexdef DisplayItems(self): prin t show all items- for item in self._list: print itemarr = Array()#con structorprint arr#this self-defi ned array classprin t le n(arr)#0arr.Add(1)arr.Add(2)arr.Add

41、(3)prin t le n(arr)#3print arr0 #1 arr.Displayltems() #show all items #1 #2#3arr.Remove(1)arr.DisplayItems()#show all items#1#3#destructor2.综合列表通过列表综合,可以从一个已有的列表导出一个新的列表。listl = 1,2, 3, 4, 5Iist2 = i*2 for i in listl if i 3prin t listl#1,2, 3, 4, 5prin t Iist2 #8, 103.函数接收元组/列表/字典当函数接收元组或字典形式的参数的时候,

42、有一种特殊的方法,使用*和*前缀。该方法在函数需要获取可变数量的参数的时候特别有用。由于在 args 变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args 中。如果使用的是*前缀,多余的参数则会被认为是一个字典的键/值对。def powersum(power, *args):total = 0for i in args:total += pow(i, power)return totalprint powersum(2, 1,2, 3)#14 def displaydic(*args):for key,value in args.items():prin t key:%s;valu

43、e:%s % (key, value)displaydic(a=on e, b=two, c=three)#key:a;value: one#key:c;value:three#key:b;value:two4. lambdalambda 语句被用来创建新的函数对象,并在运行时返回它们。lambda 需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。注意,即便是 print 语句也不能用在 lambda 形式中,只能使用表达式。func = lambda s: s * 3print fun c(peter )#peter peter peter func2 = la

44、mbda a, b: a * bprint fun c2(2, 3)#65. exec/evalexec 语句用来执行储存在字符串或文件中的Python 语句;eval 语句用来计算存储在字符串中的有效达式。cmd = pri nt hello worldexec cmd #hello worldexpression = 10 * 2 + 5print eval(expressi on)#256. assertassert 语句用来断言某个条件是真的,并且在它非真的时候引发一个错误-AssertionError。Python 表flag = Trueassert flag = Truetry:

45、assert flag = Falseexcept Assertion Error, err:prin t failedelse:prin t pass7. repr 函数repr 函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有 eval(repr(object) = object。可以通过定义类的_repr_方法来控制对象在被repr 函数调用的时候返回的内容。arr = 1,2, 3print arr #1,2, 3print repr(arr) #1,2, 3十二、练习实现一个通讯录,主要功能:添加、删除、更新、查询、显示全部联系人。1 i

46、mport cPickle2 import os3 import sys44 class Con tact:5def _init_(self, n ame, phone, mail):6self. name = n amedef display(self):print n ame:%s, phon e:%s, mail:%s % (self. name, self.ph one, self.mail)181920 # begin2121 # file to store con tact data22 data = os.getcwd() + os.sep + con tacts.data242

47、3 while True:24print - 25operati on = raw_ in put(i nput your operati on( add/delete/modify/search/all/exit):)2826if operati on = exit:27sys.exit()3128if os.path.exists(data):29if os.path.getsize(data) = 0:30con tacts = 31else:32f = file(data)33con tacts= cPickle.load(f)34f.close()35else:36con tacts

48、 = 4137if operati on = add:38flag = False39while True:40n ame = raw_i nput(i nput n ame(exit to back choose operati on):)41if n ame = exit:42flag = True43break44if n ame in con tacts:45prin t the n ame already exists, please in put ano ther or in put exit to back choose operati on46con ti nue47else:

49、48phone = raw_i nput(i nput phon e:)49mail = raw_ in put(i nput mail:)50c = Con tact (n ame, phone, mail)51con tacts name = c52f = file(data, w)101112131415self.ph one = phoneself.mail = maildef Update(self, n ame, phone, mail):self. name = n ame self.ph one= phone self.mail = mail1617cPickle.dump(c

50、 on tacts, f)f.close()prin t add successfully.breakelif operati on = delete:n ame = raw_in put(i nput the n ame that you want to delete:)if n ame in con tacts:del con tacts namef = file(data, w)cPickle.dump(c on tacts, f)f.close()prin t delete successfully.else:prin t there is no pers on n amed %s %

51、 n ameelif operati on = modify:while True:n ame = raw_i nput(i nput the n ame which to update or exit to back choose operati on:) if n ame = exit:breakif not n ame in con tacts:prin t there is no pers on n amed %s % n amecon ti nueelse:phone = raw_i nput(i nput phon e:)mail = raw_i nput(i nput mail:

52、)con tacts name.Update( name, phone, mail)f = file(data, w)cPickle.dump(c on tacts, f)f.close()prin t modify successfully.breakelif operati on = search:n ame = raw_in put(i nput the n ame which you want to search:)if n ame in con tacts:con tacts n ame.display()else:prin t there is no pers on n amed %s % n ameelif operati on = all:for n ame, con tact in con tacts.items():con tact.display()else:print unknown operatio n585960616263646566676869707172737475767778798081828384858687888990919293949596979899

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!