Python基础教程(自学记录)_第1页
Python基础教程(自学记录)_第2页
Python基础教程(自学记录)_第3页
Python基础教程(自学记录)_第4页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

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/20。1 欢迎下载精品文档>>> 1.0/20.5>>> 1.0/2.00.0>>>

2、10%31>>> 9*(1/2)1>>> 9*(1.0/2)3.0>>> 2.75%0.50.25>>> -9%43>>> -3%21>>> -3/2-2长整数普通整数不能大于 2147483647 也不能小于 -2147483648,若更大的数,可以使用长整数。长整数结尾有个 L,理论上小写也可以,不过为了便于识别,尽可能用大写。2 欢迎下载精品文档十六进制和八进制0XAF返回 175 ,十六进制;010 返回 8,八进制>>> 0xAF175>>>

3、 01081.5 变量包含字母、数字和下划线。首字母不能是数字开头。1.8 函数Pow计算乘方: pow(2,3 ),2*3 均返回 8;pow 等标准函数称为内建函数。Abs(-10) 求绝对值,返回 10;round(1.0/2.0 )返回 1.0 ,把浮点数四舍五入为最接近的整数值。>>> pow(2,3)8>>> 2*38>>> abs(-10)10>>> round(1.0/2.0)1.0。3 欢迎下载精品文档>>> round(8.06,2)8.06>>> round(8.0

4、6,1)8.11.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命令之后,就可以直接使用函数, 而不需要使用模块名最为前缀了。但是要注意在不同模块引用

5、,可能导致函数冲突。4 欢迎下载精品文档>>> from math import sqrt>>> sqrt(9)3.0>>>和复数nan-not a number返回的结果Cmath即 complex math 复数模块>>> import cmath>>> cmath.sqrt(-1)1j返回的 1j 是个虚数,虚数以 j 结尾;这里没有使用 from cmath import sqrt ,避免与 math 的 sqrt 冲突。注释符号: #1.11 字符串,使用 ”可以进行转义。拼接字符串>&g

6、t;> 'Hello, ' 'World' 'Hello, World'>>> 'Hello,' 'World' 'Hello,World'>>> 'Hello, '+'World' 'Hello, World'>>> 'Hello, '+5。5 欢迎下载精品文档Traceback (most recent call last):File "<pyshell#4

7、3>", line 1, in <module>'Hello, '+5TypeError: cannot concatenate 'str' and 'int' objects>>>需要保证两边是一样的字符串,而有其他格式要报错的字符串表示 str和 repr-两个均为函数,事实上 str是一种类型Str 会将值转换为合理形式的字符串。另外一种是通过repr函数,创建一个字符串。Repr(x) 也可以写作 x 实现(注意: 是反引号),python3.0 中已经不适用反引号了>>>

8、print 'hello,world' hello,world>>> print repr('hello,world') 'hello,world'>>> print str('hello,world') hello,world>>> print 1000L。6 欢迎下载精品文档1000>>> 1000L1000L>>> print repr(1000L) 1000L>>> print str(1000L) 1000>

9、>> tmp=42>>> print 'The number is:'+tmpTraceback (most recent call last):File "<pyshell#55>", line 1, in <module>print 'The number is:'+tmpTypeError: cannot concatenate 'str' and 'int' objects>>> print 'The number is:&

10、#39;+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。7 欢迎下载精品文档和 raw_input的比较>>> name=input("What's your name:") What's your name:GumbyTraceback (most recent cal

11、l last):File "<pyshell#60>", line 1, in <module>name=input("What's your name:")File "<string>", line 1, in <module>NameError: name 'Gumby' is not defined>>> name=input("What's your name:") What's your name:&

12、#39;Gumby'后面输入的字符串增加了引号不报错。>>> input('Enter a number:') Enter a number:33>>> name=input("What's your name:") What's your name:'Gumby'>>> raw_input("What's your name:") What's your name:Gumby 'Gumby'>>>

13、; raw_input("What's your name:")。8 欢迎下载精品文档What's your name:Gumby'Gumby'>>> raw_input('Enter a number:') Enter a number:3'3'>>>长字符串、原始字符串和 unicode(1)长字符串使用三引号;转义的反斜杠用于行尾>>> print 'hello, world!'hello, world!>>> pri

14、nt '''hello,world!'''hello,world!>>> 1+2+3+410(2)原始字符串,对于反斜线并不会特殊对待,以r 开头,注意字。9 欢迎下载精品文档符串尾部>>> print 'c:nowhere'c: owhere>>> print r 'c:nowhere' SyntaxError: invalid syntax>>> print 'c:nowhere'c:owhere>>> p

15、rint r'c:nowhere' c:nowhere>>> print r"This is illegal"SyntaxError: EOL while scanning string literal>>> print r"This is illegal" This is illegal>>> print r"This is illegal" "" This is illegal。10 欢迎下载精品文档( 3)Unicode 在字符串前增加前缀

16、 U>>> print u'hello, world' hello, world第二章列表和元组序列中的每个元素被分配一个序号-即元素的位置,也被称为索引。第一个索引为0,最后一个元素可以使用-1 标记2.1 序列概览Python 包含 6 中内建的序列:列表,元组,字符串,unicode 字符串, buffer对象和 xrange 对象。列表和元组的主要区别:列表可以修改,元组则不能。内建函数返回元组。几乎所有情况下都可以使用列表代替元组。特殊情况之一:使用元组作为字典的键,因为键不可以更改,所以不能用列表。列表的各个元素通过逗号进行分隔,写在方括号内。&g

17、t;>> edward='Edward Gumy',42>>> john='John Smith',50。11 欢迎下载精品文档>>> database=edward,john>>> database'Edward Gumy', 42, 'John Smith', 50>>>2.2 通用序列操作包括:索引,分片,加,乘以及检查某个元素是否属于序列的成员,除此之外还有计算长度,找出最大元素和最小元素的内建函数。迭代:依次对序列中的每个元素重复执行某些

18、操作。索引从 0 开始,最后一个元素可以使用-1. 索引访问的单个元素>>> greeting="Hello">>> greeting0'H'>>> greeting-1'o'>>> four=raw_input('Year:')3 Year:2005>>> four'5'。12 欢迎下载精品文档分片冒号:第一个元素包含在分片内,第二个元素不包含在分片内,是分片之后剩余部分的第一个元素编号。>>> num

19、=1,2,3,4,5,6,7,8,9,10>>> num3:64, 5, 6>>> num0:11>>> num7:10 # 索引 10 指向第 11 个元素,这个元素不存在。8, 9, 10>>> num-3:-1 8, 9>>> num-3:0>>> num-3:8, 9, 10>>> num7:8, 9, 10。13 欢迎下载精品文档>>> num:31, 2, 3>>> num: #复制整个序列1, 2, 3, 4, 5, 6

20、, 7, 8, 9, 10>>> num0:10:21, 3, 5, 7, 9>>> num3:6:34>>> num:41, 5, 9>>> num8:3:-19, 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。14 欢迎下载精品文档>&g

21、t;> num5:-2 6, 4, 2>>>序列相加两种相同类型的序列才能进行链接操作>>> 1,2,3+4,5,6 1, 2, 3, 4, 5, 6>>> 'hello, '+'world' 'hello, world'>>> 'hello, '+1,2Traceback (most recent call last):File "<pyshell#122>", line 1, in <module>。15

22、欢迎下载精品文档'hello, '+1,2TypeError: cannot concatenate 'str' and 'list' objects>>>乘法数字 X 乘以一个序列会生成新的序列,原序列被重复X次>>> 'PH'*3'PHPHPH'>>> 42*3 42, 42, 42>>> 1,2*31, 2, 1, 2, 1, 2>>> >>> none*3 # 注意 N 需要大写,不然报错。 None

23、 是一个内建值,它的含义是“什么也没有”Traceback (most recent call last):File "<pyshell#128>", line 1, in <module>。16 欢迎下载精品文档none*3NameError: name 'none' is not defined>>> None*3 None, None, None>>>成员资格 in检查一个值是否在一个序列中。条件为真返回True,条件未假返回False>>> pw="abc&quo

24、t;>>> 'a' in pw True>>> 'x' in pw False>>> database='John',42,'Smith',36>>> 'john',42 in database #大小写,要注意False。17 欢迎下载精品文档>>> 'John',42 in database True>>> num=1,2,3,4,5>>> 1,2 in numFalse

25、>>> 1 in num False>>> 1 in num True长度、最小值和最大值内建函数 len 、min 和 max>>> num=1,8,3>>> len(num)3>>> max(num)8。18 欢迎下载精品文档>>> min(num)1>>> max(2,3)3max 跟 min 的参数并不一定是序列,而是以多个数字直接作为参数。>>> exm='h',12,'e',2>>> max

26、(exm)'h'>>> exm=12,'e',2,'h'>>> max(exm)'h'>>> max('A',1,'1','a','z')'z'这个有点意思了, 需要以后注意查查, 是根据 ascii进行提取的吗?2.3 列表: Python 的“苦力”讨论列表不同于元组跟字符串的地方。19 欢迎下载精品文档函数>>> ls=list("Hello")>&

27、gt;> ls'H', 'e', 'l', 'l', 'o'>>> ''.join(ls)'Hello'>>>基本的列表操作列表可以使用所有适用于序列的操作。而列表是可以修正的。本节介绍可以改变列表的方法:元素赋值、元素删除、分片赋值以及列表方法(请注意,并非所有的列表方法都真正地改变列表)1、改变列表:元素赋值>>> x=1,1,1>>> x1=2>>> x1, 2, 1注意:不能为一个

28、位置不存在的元素进行赋值。2、删除元素 del>>> num=1,2,3,4。20 欢迎下载精品文档>>> del num2>>> num1, 2, 4除了删除列表中的元素,del还能用于删除其他元素。可以用于字典元素甚至其他变量的删除操作。3、分片赋值>>> nm=list('perl')>>> nm'p', 'e', 'r', 'l'>>> nm2:=list("ar")>>

29、;> nm'p', 'e', 'a', 'r'>>> nm2:=list("ckly") #可以改变成长度>>> nm'p', 'e', 'c', 'k', 'l', 'y'>>> nm=1,5>>> nm1:1=2,3,4 #插入行的元素>>> nm。21 欢迎下载精品文档1, 2, 3, 4, 5>>>

30、; nm1:4= # 删除一段元素,与 del 的结果一样>>> nm1, 5>>> nm=1,2,3,4,5>>> del nm1:4>>> nm1, 5可以根据实际步长进行其他操作, 测试的时候貌似要注意对应的位置元素个数。>>> num=1,2,3,4,5>>> num1:4:2=8,10>>> num1, 8, 3, 10, 5列表方法方法的调用方式:对象 . 方法(参数)1. append 用于在列表末尾追加新的对象,直接修改原来的列表。22 欢迎下载精品文档

31、>>> lst=1,2,3>>> lst.append(4)>>> lst1, 2, 3, 4>>> lst=1,2,3>>> lst.append(4,5)Traceback (most recent call last):File "<pyshell#209>", line 1, in <module>lst.append(4,5)TypeError: append() takes exactly one argument (2 given)>>

32、> lst.append(4,5)>>> lst1, 2, 3, 4, 52. count 方法,统计某个元素在列表中出现的次数:>>> 'to','be','or','not','to','be'.count('to')。23 欢迎下载精品文档2>>> x=1,2,1,1,2,1,1,2>>> x.count(1,2)13. extendextend 方法可以在列表的末尾一次性追加另一个序列中的多个值。换

33、句话说,可以用新列表扩展原有的列表>>> a=1,2,3>>> b=4,5,6>>> a.extend(b) #extend 扩展了原来的序列,即 a>>> a1, 2, 3, 4, 5, 6>>> a+b # 链接操作,仅仅返回一个全新的列表1, 2, 3, 4, 5, 6, 4, 5, 6>>> a1, 2, 3, 4, 5, 6>>> alen(a):=b #使用分片来实现相同的结果,但是代码的可读性不如 extend 。>>> a1, 2, 3

34、, 4, 5, 6, 4, 5, 6。24 欢迎下载精品文档>>> a=a+b # 此链接方法的效率要比extend 方法低>>> a1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 64. indexindex 方法用于从列表中找出某个值第一个匹配项的索引位置。>>> phase='We','are','hero','!'>>> phase.index('hero')2>>> phase.index('

35、;ero')Traceback (most recent call last):File "<pyshell#15>", line 1, in <module>phase.index('ero')ValueError: 'ero' is not in list。25 欢迎下载精品文档5. insert用于将对象插入列表中>>> num=1,2,3,4,5,6,7>>> num.insert(3,'four')>>> num1, 2, 3, &

36、#39;four', 4, 5, 6, 7>>>>>> num=1,2,3,4,5,6,7>>> num3:3='four' #意外发现>>> num1, 2, 3, 'f', 'o', 'u', 'r', 4, 5, 6, 7>>> num=1,2,3,4,5,6,7>>> num3:3='four' #可以分片处理,依然是可读性不如insert>>> num1,

37、2, 3, 'four', 4, 5, 6, 7。26 欢迎下载精品文档6. poppop 方法会移出列表中的一个元素(默认是最后一个) ,并且返回该元素的值。pop 方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。使用 pop 方法可以实现一种数据结构-栈。对于栈的两个操作(放入和移出),pop 跟 append方法恰好相反。Python 没有入栈方法,变通使用 append 方法。提示:对于先进先出的队列,可以使用 insert(0,) 来代替 append方法。或者,也可以继续使用append 方法,但必须使用pop(0) 来代替 pop(). 更好的解

38、决方案是使用collection模块中的 deque 对象。>>> x=1,2,3>>> x.pop()3>>> x1, 2。27 欢迎下载精品文档>>> x.pop(0)1>>> x2>>> x=1,2,3>>> x.append(x.pop()>>> x1, 2, 3>>>7. removeremove 方法用于移出列表中某个值的第一个匹配项:>>> x='to','be',

39、9;or','not','to','be'>>> x.remove('be')>>> x'to', 'or', 'not', 'to', 'be'>>> x.remove('bee')。28 欢迎下载精品文档Traceback (most recent call last):File "<pyshell#37>", line 1, in <

40、;module>x.remove('bee')ValueError: list.remove(x): x not in list注意: remove 是一个没有返回值的原位置改变方法。8. reversereverse 方法将列表中的元素反方向存放:>>> x=1,2,3>>> x.reverse()>>> x3, 2, 19. sortsort方法用于在原位置对列表进行排序。在“原位置排序”意味着要改变原来的列表, 从而让其中的元素能按一定的顺序排列,而不是返回一个已经排序的列表副本。>>> x=4

41、,6,2,1,7,9。29 欢迎下载精品文档>>> x.sort()>>> x1, 2, 4, 6, 7, 9*>>> x=4,6,2,1,7,9>>> y=x.sort() # 因为 sort 方法修改了 x 缺返回了空值>>> print yNone>>> x1, 2, 4, 6, 7, 9*>>> x=4,6,2,1,7,9>>> y=x: # 有效的复制整个列表的方法>>> y.sort()>>> x4, 6

42、, 2, 1, 7, 9>>> y1, 2, 4, 6, 7, 9*>>> x=4,6,2,1,7,9>>> y=x # 简单的赋值是没有用的, 仅仅让 x 跟 y 都指向同一个列表。>>> y.sort()。30 欢迎下载精品文档>>> x1, 2, 4, 6, 7, 9>>> y1, 2, 4, 6, 7, 9>>>另外一种获取已排序的列表副本的方法是,使用sorted 函数>>> x=4,6,2,1,7,9>>> y=sorte

43、d(x)>>> y1, 2, 4, 6, 7, 9>>> x。31 欢迎下载精品文档4, 6, 2, 1, 7, 9>>> sorted('Python') #sorted可以用于任何序列,却总是返回一个列表。'P', 'h', 'n', 'o', 't', 'y'如果要把一些元素按照相反的顺序排列,可以先使用sort或者sorted ,然后再调用reserse方法,或者使用reverse参数。Sorted(x).reverse(

44、)这样可以。10. 高级排序如果希望元素按照特定的方式进行排序,可以通过compare(x,y) 的方式自定义比较函数。Compare(x,y),x>y返回正数 ;x<y返回负数;x=y 返回 0(根据你的定义)。定义号该函数,可以提供给 sort 方法作为参数了。内建函数 cmp提供了比较函数的默认实现方式:>>> cmp(42,32)1>>> cmp(99,100)-1>>> cmp(10,10)0>>> num=5,2,9,7>>> num.sort(cmp)>>> n

45、um2, 5, 7, 9。32 欢迎下载精品文档>>> cmp(42,32)1>>> num=5,2,9,7>>> num.sort(cmp)>>> num2, 5, 7, 9Sort 方法还有另外两个参数 -key和 reverse 。如果要使用它们,那么就要通过名字来指定。 参数 key 与 cmp类似 -必须提供一个在排序过程中使用的函数。然而该函数并不是直接用来确定对象大小,而是为每个元素创建一个键,然后所有元素来排序。 那么如果根据元素的长度进行排序,那么使用len 作为键函数:>>> x=&#

46、39;3aaa','1a','4aaaa','0'>>> x.sort(key=len)>>> x'0', '1a', '3aaa', '4aaaa'另外一个关键字参数reverse 是简单的布尔值 (True 或者 false),用来知名列表是否进行反向排序。>>> num=5,2,9,7>>> num.sort()>>> num2, 5, 7, 9>>> num.sort(reverse=True)。33 欢迎下载精品文档>>> num 9, 7, 5, 2>>>cmp,key,reverse 参数都可以用于 sorted 函数。在多数情况下,为cmp或 key 提供自定义函数是非常有用的。2.4 元组:不可变序列用逗号分隔了一些值,即使仅有一个值,也必须有逗号。元组跟列表一样,也是一种序列。唯一的不同是元组不能修改。(字符串也是如此)。创建元组的语法很简单: 使用逗号分隔一

温馨提示

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

评论

0/150

提交评论