




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 快速改造:基础知识 1.2交互式解释器 在IDLE编辑器,在提示符后输入help然后按回车;也可以按下 F1获得有关IDLE的帮助信息 1.4数字和表达式 1/2返回0,整除除法;1.0/2返回0.5,用一个或者多个包含小数 点的数字参与计算。另外改变除法的执行方式:from_future_import division 可以实现整除,1.0/2.0返回0.0 %取余数;*幕运算; 1/2 1.0/2 0.5 1.0/2.0 0.0 10%3 1 9*(1/2) 1 9*(1.0/2) 3.0 2.75%0.5 0.25 -9%4 3 -3%2 1 -3/2 -2 1.4.1 长整数
2、普通整数不能大于 2147483647 也不能小于 -2147483648,若更大 的数,可以使用长整数。长整数结尾有个 L ,理论上小写也可以,不 过为了便于识别,尽可能用大写。 1.4.2 十六进制和八进制 0XAF 返回 175 ,十六进制; 010 返回 8,八进制 0 xAF 175 010 8 1.5 变量 包含字母、数字和下划线。首字母不能是数字开头。 1.8 函数 Pow 计算乘方: pow(2,3),2*3 均返回 8;pow 等标准函数称为 内建函数。 Abs(-10)求绝对值,返回10; round (1.0/2.0)返回1.0,把浮点数四 舍五入为最接近的整数值。 po
3、w(2,3) 8 2*3 8 abs(-10) 10 round(1.0/2.0) 1.0 round(8.06,2) 8.06 round(8.06,1) 8.1 1.9 模块 import import math math.floor(8.8) 向下取整 8.0 math.ceil(8.8)向上取整 9.0 int(math.ceil(32.1) 33 int(32.9) 32 flo=math.floor flo(33.9) 33.0 使用了 from 模块 import 函数 ,这种方式的 import 命令之后,就可 以直接使用函数, 而不需要使用模块名最为前缀了。 但是要注意在不
4、同模块引用,可能导致函数冲突。 from math import sqrt sqrt(9) 3.0 1.9.1 cmath和复数 nan- not a number返回的结果 Cmath 即 complex math 复数模块 import cmath cmath.sqrt(-1) 1j 返回的 1j 是个虚数,虚数以 j 结尾;这里没有使用 from cmath import sqrt,避免与 math的sqrt冲突。 1.10.3 注释符号: # 1.11字符串,使用 ”可以进行转义。 1.11.2 拼接字符串 Hello, World Hello, World Hello, World
5、Hello,World Hello, +World Hello, World Traceback (most recent call last): File , line 1, in Hello, +5 TypeError: cannot concatenate str and int objects 需要保证两边是一样的字符串,而有其他格式要报错的 1.11.3 字符串表示 str 和 repr- 两个均为函数, 事实上 str 是一种类型 Str 会将值转换为合理形式的字符串。另外一种是通过 repr 函数,创 建一个字符串。 Repr(x)也可以写作x实现(注意: 是反引号),pytho
6、n3.0中已经不 适用反引号了 print hello,world hello,world print repr(hello,world) hello,world print str(hello,world) hello,world print 1000L 1000 1000L 1000L print repr(1000L) 1000L print str(1000L) 1000 tmp=42 print The number is:+tmp Traceback (most recent call last): File , line 1, in print The number is:+tm
7、p TypeError: cannot concatenate str and int objects prin t The nu mber is:+tmp The number is:42 print The number is:+str(tmp) The number is:42 print The number is:+repr(tmp) The number is:42 1.11.4 input 和 raw_input 的比较 name=input(Whats your name:) Whats your name:Gumby Traceback (most recent call l
8、ast): File , line 1, in name=input(Whats your name:) File , line 1, in NameError: name Gumby is not defined name=input(Whats your name:) Whats your name:Gumby 后面输入的字符串增加了引号不报错。 input(Enter a number:) Enter a number:3 3 name=input(Whats your name:) Whats your name:Gumby raw_input(Whats your name:) Wh
9、ats your name:Gumby Gumby raw_input(Whats your name:) Whats your name:Gumby Gumby raw_i nput(E nter a nu mber:) En ter a nu mber:3 3 1.11.5长字符串、原始字符串和un icode (1) 长字符串 使用三引号;转义的反斜杠用于行尾 prin t hello, world! hello, world! prin t hello, world! hello, world! 1+2+3 +4 10 W1 hatas= =dwaxd, jci3n database
10、耳禹Gjmy1. 2| , 5tin Ssitii , 50: 2.2通用序列操作 包括:索引,分片,加,乘以及检查某个元素是否属于序列的成 员,除此之外还有计算长度,找出最大元素和最小元素的内建函数。 迭代:依次对序列中的每个元素重复执行某些操作。 221索引 从0开始,最后一个元素可以使用-1.索引访问的单个元素 greeti ng二Hello greeti ng0 H greeti ng-1 o four二raw_i nput( Year:)3 Year:2005 four 5 g二已已匕i.ng : 3 ; greeting-1 + o four=zaw_inp Yeaz ; J 3
11、賞巳己=:2005 four 2.2.2分片 冒号:第一个元素包含在分片内,第二个元素不包含在分片内,是分 片之后剩余部分的第一个元素编号。 num=1,2,3,4,5,6,7,8,9,10 num3:6 4, 5, 6 num0:1 1 num7:10 #索引 10指向第 11 个元素,这个元素不存在。 8, 9, 10 num-3:-1 8, 9 num-3:0 num-3: 8, 9, 10 num7: 8, 9, 10 num:3 1, 2, 3 num: # 复制整个序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 num0:10:2 1, 3, 5, 7, 9 nu
12、m3:6:3 4 num:4 1, 5, 9 num8:3:-1 9, 8, 7, 6, 5 num10:0:-2 10, 8, 6, 4, 2 num0:10:-2 num:-2 10, 8, 6, 4, 2 num5:0:-2 6, 4, 2 num:5:-2 10, 8 num5:-2 6, 4, 2 : IQ : 2 W5,9. 10 1, 3# 5 lr 9J 2 TTUITL: 3 : 6 n jm3 :; 3 ; 4f 5, 6 弓 TlJTftIO ! 1 rm:忙 1 1, 5r 9 THF.: 7 : 10 num 8 : 3 : -1 8# 101 6 J 6 5 113
13、 : -1) run 10 : D : 8. 9 10, Sr fl, 4r 2 run0 :10 : -2 【】 ( Tium - 3 : r;jm: : -2 8f 9f 10 10. S,仃 4r 2 W fiunf7: ndm5 : 0 ! - 2 | 影10 血乳2) Tiuin : 3 r/Jin ; ! 5 : -2 lr3 【16 S nujfl.* : ehh5 *-2 1, 2t 3f 时 5f 6f 7,叭 10) 疋F % 2) 223序列相加 两种相同类型的序列才能进行链接操作 1,2,3+4,5,6 1,2, 3, 4, 5, 6 hello, +world hel
14、lo, world hello, +1,2 Traceback (most rece nt call last): File vpyshell#122, li ne 1, in hello, +1,2 TypeError: cannot con cate nate str and list objects lf2,3 + 4f 1, 2r 3f 4, 5” 6) liello, + vorld1 1 hello world * W hello, + :lf2 T匸忌匚wkawk (兀oh匸1京营匸) File ,nr lize 1, in caod-ilo hllo, +1,2 TypeErz
15、or : canno匸 concatenate 耳匸r and. Lisr.* objects 224乘法 数字X乘以一个序列会生成新的序列,原序列被重复 X次 PH*3 PHPHPH 42*3 42, 42, 42 1,2*3 1,2, 1,2, 1, 2 none*3 #注意N需要大写,不然报错。None是一个内建值,它 的含义是“什么也没有” Traceback (most rece nt call last): File vpyshell#128, li ne 1, in non e*3 NameError: n ame none is not defi ned No ne*3 No
16、ne, None, None 42*3 42, 42, 42: 11,2 *3 1, 2, lr 2f 1, 2J 【1 none J *3 Tficeb File nf 二lt in vtuqU益二 noe*3 凶占 m亡E 二二 or; naxae none1 xs 匸口匸 defined Hemel *3 None, NoEe, tTonel 225成员资格in 检查一个值是否在一个序列中。条件为真返回True,条件未假返回 False pw=abc a in pw True x in pw False database二Joh n,42,Smith,36 john,42 in data
17、base # 大小写,要注意 False Joh n,42 in database True nu m=1,2,3,4,5 1,2 in num False 1 in num False 1 in num True pw=1ahcfh ditahase1 JoAn1T 42 r Smith1,36 * a. in pw 1 s c jin1 7 42 二二 dar-atiase Txue F且皀 x1 in pw 1 Jor.r.1 f 43 - database Flae Th迟 nuiu*l, 2 r 3r 3 1,2) xil num False (1 in num Falae 1 二二
18、 H14IU True 2.2.6长度、最小值和最大值 内建函数len、min和max nu m=1,8,3 len(num) 3 max(num) 8 min(num) h-jio= L r 2,3) len max Ceuih B wd_r. 1 A3 | 3 max跟min的参数并不一定是序列,而是以多个数字直接作为参数。 exm=h,12,e,2 max(exm) h exm=12,e,2,h max(exm) h max(A,1,1,a,z) z 这个有点意思了,需要以后注意查查,是根据ascii进行提取的吗? 2.3列表:Python的“苦力” 讨论列表不同于元组跟字符串的地方 2
19、.3.1 list 函数 ls=list(Hello) Is H, e, T, T, o ”.joi n( Is) Hello t (J 15 B x e1 U * h . join (13 Hello 232基本的列表操作 列表可以使用所有适用于序列的操作。而列表是可以修正的。本 节介绍可以改变列表的方法:元素赋值、元素删除、分片赋值以及列 表方法(请注意,并非所有的列表方法都真正地改变列表) 1、改变列表:元素赋值 x=1,1,1 x1=2 x 1, 2, 1 注意:不能为一个位置不存在的元素进行赋值。 2、删除元素del nu m=1,2,3,4 del num2 除了删除列表中的元素,
20、del还能用于删除其他元素。可以用于字 典元素甚至其他变量的删除操作。 3、分片赋值 nm=list(perl) nm p, e, r, T n m2:=list(ar) nm p, e, a,门 nm 2:=list(ckly) # 可以改变成长度 nm p, e, c, k, l, y nm-list (reil) rw Pr临 nm2:=list (ar) nra Pr 1 nm2: =-li匸(”匚口厂) ran lP1, W nm 二1,5 nm1:1=2,3,4 # 插入行的元素 nm 1,2, 3, 4, 5 nm1:4= #删除一段元素,与del的结果一样 nm 1, 5 nm
21、 二1,2,3,4,5 del nm1:4 nm 1, 5 1:1 = 2, Lm 2, 3, 4f 5 w ) ma li 5J nm- le 1 nm L n 口 5 可以根据实际步长进行其他操作,测试的时候貌似要注意对应的位置 元素个数。 nu m=1,2,3,4,5 nu m1:4:2=8,10 num 1, 8, 3, 10, 5 2.3.3列表方法 方法的调用方式:对象方法(参数) 1. append用于在列表末尾追加新的对象,直接修改原来的列表 lst=1,2,3 lst.appe nd(4) lst 1,2, 3, 4 lst=1,2,3 Ist.appe nd(4,5) Tr
22、aceback (most rece nt call last): File vpyshell#209, li ne 1, in lst.appe nd(4,5) TypeError: appe nd() takes exactly one argume nt (2 give n) lst.appe nd(4,5) lst 1,2, 3, 4, 5 1sl= 1, 2 r 3 1st., app已nd (4) 1st yyy i3t.= ir2r3 lsv dpgeiici (4# 51 Traceback: (most reaenu call last): File 口Nr line lr
23、in I 孚匚+ append 4,5) TypeErrar: append () 匸alre弓 exic匸ly one azQument (2 given) 1st* ipptndt 5 1st. 丄S釦【釘SJ 2. count方法,统计某个元素在列表中出现的次数: to,be,or, no t,to,be.cou nt(to) 2 x=1,2,1,1,2,1,1,2 x.cou nt(1,2) t c * f te1 J or1,门口匸匸c * r 口巳- count ( to 1 2 x-lf2lr2JJ K. U 口 二 ITE ( lf 2* 1 3. extend exte nd
24、方法可以在列表的末尾一次性追加另一个序列中的多个值。 换句话说,可以用新列表扩展原有的列表 a=1,2,3 b=4,5,6 a.extend(b) #extend扩展了原来的序列,即 a a 1,2, 3, 4, 5, 6 a+b #链接操作,仅仅返回一个全新的列表 1,2, 3, 4, 5, 6, 4, 5, 6 a 1,2, 3, 4, 5, 6 alen(a):=b #使用分片来实现相同的结果,但是代码的可读性不 女口 extend。 a 1,2, 3, 4, 5, 6, 4, 5, 6 a=a+b #此链接方法的效率要比 extend方法低 1,2, 3, 4, 5, 6, 4, 5,
25、 6, 4, 5, 6 a a=(l, 2,3) ti= f 5, 6 a .extend, (b) a 1/ 2t 3,饥 5, 6 a+b 1,益 3f h Sf 6, 4r 5,右 a 1,冇3r化和6 alen (a :l=b a 1, 2, 3r 4, 5,缶 X 5,切 w a=a+b a 1, 2f 3f b 5,五倂 5,6 4. index index方法用于从列表中找出某个值第一个匹配项的索引位置 phase二We,are,hero,! phase.i ndex(hero) 2 phase.i ndex(ero) Traceback (most rece nt call l
26、ast): File vpyshell#15, li ne 1, in phase.i ndex(ero) ValueError: ero is not in list piiase * We r * are1T hero* ! phase . lniex ( 1p 2 p-h a s e i i n ie ?c e r ) Tracetack (most, recenu call last): File -ipyshelllSV*1 flf in phsge iniex ( 1 ezro j 5. insert 用于将对象插入列表中 nu m=1,2,3,4,5,6,7 nu m.i nse
27、rt(3,fou。 num 1,2, 3, four, 4, 5, 6, 7 nu m=1,2,3,4,5,6,7 num3:3=four # 意外发现 num 1,2, 3, f, o, u, r, 4, 5, 6, 7 nu m=1,2,3,4,5,6,7 in sert num3:3=fou门#可以分片处理,依然是可读性不如 num 1,2, 3, four, 4, 5, 6, 7 1 f 2,3r 4, 5f 6,7 num., lnser-t t3r 1 f cj.r1) nujn. 2t 3, Tfour 们乳洛 7 nLLra.a:3)= fQu.z* xruiii 2f 3fm
28、J4, 5, 6f num- lf2j3f 4 f 5,67 nuifl.3 : 3 - f cu.r -XlujXl I, 2f 3f four,釘洛 7 6. pop pop方法会移出列表中的一个元素(默认是最后一个),并且返回 该元素的值。 pop方法是唯一一个既能修改列表又返回元素值(除了None)的 列表方法。 使用pop方法可以实现一种数据结构-栈。对于栈的两个操作(放 入和移出),pop跟append方法恰好相反。Python没有入栈方法,变 通使用append方法。 提示:对于先进先出的队列,可以使用 insert(0,)来代替append 方法。或者,也可以继续使用 appe
29、 nd方法,但必须使用pop(0)来代 替pop().更好的解决方案是使用collection模块中的deque对象。 x=1,2,3 x.pop() 3 x 1, 2 x.pop(0) 1 x 2 x=1,2,3 x.append(x.pop() x 1, 2, 3 沪12川 pop ( 3 x (1, 2l x. pop (0 1 x 2 X-lr2r3) x append x.paf() x 1, G 3 7. remove remove方法用于移出列表中某个值的第一个匹配项: x=to,be,or, not,to,be x.remove(be) x to, or, no t, to,
30、be x.remove(bee) Traceback (most rece nt call last): File vpyshell#37, li ne 1, in x.remove(bee) ValueError: list.remove(x): x not in list 注意:remove是一个没有返回值的原位置改变方法。 x* uo r te * r or1, not, re , te x. remove te ) x 1 to 1f 1 or1,noc111cc1, be 1 掘.repave ( Lse Tracetrack: (most recen匸 call lasx): fi
31、le nr, line 1, in x=1,2,3 x.reverse() x 3, 2, 1 牛 x=lf 2r3 A re verge () x (3,1 9. sort sort方法用于在原位置对列表进行排序。在“原位置排序”意味着要 改变原来的列表,从而让其中的元素能按一定的顺序排列,而不是返 回一个已经排序的列表副本。 x=4,6,2,1,7,9 x.sort() x 1,2, 4, 6, 7, 9 * x=4,6,2,1,7,9 y=x.sort() #因为sort方法修改了 x缺返回了空值 print y None x 1, 2, 4, 6, 7, 9 * x=4,6,2,1,7
32、,9 y=x: # 有效的复制整个列表的方法 y.sort() x 4, 6, 2, 1, 7, 9 y 1, 2, 4, 6, 7, 9 * x=4,6,2,1,7,9 y=x #简单的赋值是没有用的,仅仅让x跟y都指向同一个列表 y.sort() x 1, 2, 4, 6, 7, 9 y 1, 2, 4, 6, 7, 9 x=4,6,2,1f7,9 k.吕匚二七) x 2r J G 7, 51 ,2,1.7, 9J y=x耳or匸() y print y None y-x(: y. sere() X dr 乙爲乞7f 5 y ll. 2f 4, 6, lt 9 Xf1,7, 9 y=x(:
33、 Y- s=rt0 X 【4 6 2t 1, 7, 5 y dr b 6 % 町 x-114,6,2,1,7,9 y=x y.scrco x i, 2f 和 6, 7f 9 y 【S 2t 竹 6, J 9 另外一种获取已排序的列表副本的方法是,使用sorted函数 x=4,6,2,1,7,9 y二sorted(x) y 1,2, 4, 6, 7, 9 x 4, 6, 2, 1, 7, 9 sorted(Python) #sorted可以用于任何序列,却总是返回一个列表 P, h, n, o, t, y 如果要把一些元素按照相反的顺序排列,可以先使用sort或者 sorted,然后再调用res
34、erse方法,或者使用reverse参数。 Sorted(x).reverse(这样可以。 10. 高级排序 如果希望元素按照特定的方式进行排序,可以通过 compare(x,y)的方 式自定义比较函数。 Compare(x,y),xy 返回正数 ;x cmp(42,32) 1 cmp(99,100) -1 cmp(10,10) 0 num=5,2,9,7 num.sort(cmp) num 2, 5, 7, 9 cmp(42,32) 1 num=5,2,9,7 num.sort(cmp) num 2, 5, 7, 9 Sort方法还有另外两个参数-key和reverse如果要使用它们,那么
35、就要通过名字来指定。参数 key 与 cmp 类似必须提供一个在排序 过程中使用的函数。 然而该函数并不是直接用来确定对象大小, 而是 为每个元素创建一个键, 然后所有元素来排序。 那么如果根据元素的 长度进行排序,那么使用 len 作为键函数: x=3aaa,1a,4aaaa,0 x.sort(key=len) x 0, 1a, 3aaa, 4aaaa 另外一个关键字参数reverse是简单的布尔值(True或者false),用来 知名列表是否进行反向排序。 num=5,2,9,7 num.sort() num 2, 5, 7, 9 num.sort(reverse=True) num 9, 7, 5, 2 cmp,key,reverse参数都可以用于sorted函数。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鞋模具加工合同协议书
- 广告牌设计合同协议书
- Access数据查询与分析试题及答案
- 简易购销合同协议书范本
- 酒厂转让合同协议书模板
- 地摊转让合同协议书模板
- 私人建房大包合同协议书
- ktv外联合同协议书
- 汽车销售合同协议书范本
- 2025年计算机二级VFP考试路途总结试题及答案
- 2025年商法知识竞赛考试试卷及答案
- 2025年山东省临沂市平邑县中考一模语文试题(含答案)
- 2025年电子信息工程专业考试试题及答案
- 【威海】2025年山东省威海技师学院公开招聘工作人员29人笔试历年典型考题及考点剖析附带答案详解
- 2025年第六届全国国家版图知识竞赛题库及答案
- 机械租赁投标服务方案
- 2025年北京市朝阳区九年级初三一模英语试卷(含答案)
- Unit1-Unit2重点短语(背诵版+默写版)外研版英语新七年级下册
- 《抗休克药物治疗》课件
- 《2024 3572-T-424 重大活动食品安全保障规范 第 3 部分:供餐》知识培训
- 2025年中考语文总复习:八年级下册教材字词打卡练
评论
0/150
提交评论