收藏 分销(赏)

Python基础教程(自学记录).doc

上传人:快乐****生活 文档编号:4809723 上传时间:2024-10-13 格式:DOC 页数:38 大小:252.89KB
下载 相关 举报
Python基础教程(自学记录).doc_第1页
第1页 / 共38页
Python基础教程(自学记录).doc_第2页
第2页 / 共38页
Python基础教程(自学记录).doc_第3页
第3页 / 共38页
Python基础教程(自学记录).doc_第4页
第4页 / 共38页
Python基础教程(自学记录).doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

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.0/20.5 1.0/2.00.0 10%31 9*(1/2)1 9*(1.0/2)3.0 2.75%0.50.25 -9%43 -3%21 -3/2-21.4.1长整数普通整数不能大于214748364

2、7也不能小于-2147483648,若更大的数,可以使用长整数。长整数结尾有个L,理论上小写也可以,不过为了便于识别,尽可能用大写。1.4.2十六进制和八进制0XAF返回175 ,十六进制;010返回8,八进制 0xAF175 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 round(8.0

3、6,2)8.06 round(8.06,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命令之后,就可以直接使用函数,而不需要使用模块名最为前缀了。但是要注意在不同模块引用,可能导致函数冲突。 from math import sqrt sqrt(9)3.01.9.1 cmath和复数 nan-not a

4、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, WorldHello, World Hello, WorldHello,World Hello, +WorldHello, World Hello, +5Traceback (most recent call last): File , line

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

6、lo,world print 1000L1000 1000L1000L print repr(1000L)1000L print str(1000L)1000 tmp=42 print The number is:+tmpTraceback (most recent call last): File , line 1, in print The number is:+tmpTypeError: cannot concatenate str and int objects print The number is:+tmpThe number is:42 print The number is:+

7、str(tmp)The number is:42 print The number is:+repr(tmp)The number is:421.11.4 input和raw_input的比较 name=input(Whats your name:)Whats your name:GumbyTraceback (most recent call last): File , line 1, in name=input(Whats your name:) File , line 1, in NameError: name Gumby is not defined name=input(Whats

8、your name:)Whats your name:Gumby后面输入的字符串增加了引号不报错。 input(Enter a number:)Enter a number:33 name=input(Whats your name:)Whats your name:Gumby raw_input(Whats your name:)Whats your name:GumbyGumby raw_input(Whats your name:)Whats your name:GumbyGumby raw_input(Enter a number:)Enter a number:331.11.5长字符

9、串、原始字符串和unicode(1)长字符串 使用三引号;转义的反斜杠用于行尾 print hello, world!hello, world! print hello,world!hello,world! 1+2+3 +410(2)原始字符串,对于反斜线并不会特殊对待,以r开头,注意字符串尾部 print c:nowherec:owhere print r c:nowhereSyntaxError: invalid syntax print c:nowherec:owhere print rc:nowherec:nowhere print rThis is illegalSyntaxErro

10、r: EOL while scanning string literal print rThis is illegalThis is illegal print rThis is illegal This is illegal(3)Unicode在字符串前增加前缀U print uhello, worldhello, world第二章 列表和元组序列中的每个元素被分配一个序号-即元素的位置,也被称为索引。第一个索引为0,最后一个元素可以使用-1标记2.1序列概览Python包含6中内建的序列:列表,元组,字符串,unicode字符串,buffer对象和xrange对象。列表和元组的主要区别:列

11、表可以修改,元组则不能。内建函数返回元组。几乎所有情况下都可以使用列表代替元组。特殊情况之一:使用元组作为字典的键,因为键不可以更改,所以不能用列表。列表的各个元素通过逗号进行分隔,写在方括号内。 edward=Edward Gumy,42 john=John Smith,50 database=edward,john databaseEdward Gumy, 42, John Smith, 502.2通用序列操作包括:索引,分片,加,乘以及检查某个元素是否属于序列的成员,除此之外还有计算长度,找出最大元素和最小元素的内建函数。迭代:依次对序列中的每个元素重复执行某些操作。2.2.1索引从0开

12、始,最后一个元素可以使用-1.索引访问的单个元素 greeting=Hello greeting0H greeting-1o four=raw_input(Year:)3Year:2005 four52.2.2分片冒号:第一个元素包含在分片内,第二个元素不包含在分片内,是分片之后剩余部分的第一个元素编号。 num=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:-18, 9 num-3:0 num-3:8, 9, 10 num7:8, 9, 10 num:31, 2,

13、 3 num: #复制整个序列1, 2, 3, 4, 5, 6, 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:-210, 8, 6, 4, 2 num0:10:-2 num:-210, 8, 6, 4, 2 num5:0:-26, 4, 2 num:5:-210, 8 num5:-26, 4, 22.2.3序列相加两种相同类型的序列才能进行链接操作 1,2,3+4,5,61, 2, 3, 4, 5, 6 hello, +worldhello, world hel

14、lo, +1,2Traceback (most recent call last): File , line 1, in hello, +1,2TypeError: cannot concatenate str and list objects2.2.4乘法数字X乘以一个序列会生成新的序列,原序列被重复X次 PH*3PHPHPH 42*342, 42, 42 1,2*31, 2, 1, 2, 1, 2 none*3 #注意N需要大写,不然报错。None是一个内建值,它的含义是“什么也没有” Traceback (most recent call last): File , line 1, in

15、 none*3NameError: name none is not defined None*3None, None, None2.2.5成员资格 in检查一个值是否在一个序列中。条件为真返回True,条件未假返回False pw=abc a in pwTrue x in pwFalse database=John,42,Smith,36 john,42 in database # 大小写,要注意False John,42 in databaseTrue num=1,2,3,4,5 1,2 in numFalse 1 in numFalse 1 in numTrue2.2.6 长度、最小值和

16、最大值内建函数len、min和max num=1,8,3 len(num)3 max(num)8 min(num)1 max(2,3)3max 跟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.3.1 list函数 ls=list(Hello) lsH, e, l, l, o .join(ls)Hello 2.3.2 基本的列表操

17、作列表可以使用所有适用于序列的操作。而列表是可以修正的。本节介绍可以改变列表的方法:元素赋值、元素删除、分片赋值以及列表方法(请注意,并非所有的列表方法都真正地改变列表)1、 改变列表:元素赋值 x=1,1,1 x1=2 x1, 2, 1注意:不能为一个位置不存在的元素进行赋值。2、 删除元素 del num=1,2,3,4 del num2 num1, 2, 4除了删除列表中的元素,del还能用于删除其他元素。可以用于字典元素甚至其他变量的删除操作。3、 分片赋值 nm=list(perl) nmp, e, r, l nm2:=list(ar) nmp, e, a, r nm2:=list(

18、ckly) # 可以改变成长度 nmp, e, c, k, l, y nm=1,5 nm1:1=2,3,4 # 插入行的元素 nm1, 2, 3, 4, 5 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, 52.3.3 列表方法方法的调用方式: 对象.方法(参数)1. append 用于在列表末尾追加新的对象,直接修改原来的列表。 lst=1,2,3 lst.a

19、ppend(4) lst1, 2, 3, 4 lst=1,2,3 lst.append(4,5)Traceback (most recent call last): File , line 1, in lst.append(4,5)TypeError: append() takes exactly one argument (2 given) lst.append(4,5) lst1, 2, 3, 4, 52. count 方法,统计某个元素在列表中出现的次数: to,be,or,not,to,be.count(to)2 x=1,2,1,1,2,1,1,2 x.count(1,2)13. ex

20、tendextend方法可以在列表的末尾一次性追加另一个序列中的多个值。换句话说,可以用新列表扩展原有的列表 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, 4, 5, 6, 4, 5, 6 a=a+b #此链接方法的效率要比extend方法低 a1, 2, 3, 4, 5, 6,

21、 4, 5, 6, 4, 5, 64. indexindex方法用于从列表中找出某个值第一个匹配项的索引位置。 phase=We,are,hero,! phase.index(hero)2 phase.index(ero)Traceback (most recent call last): File , line 1, in phase.index(ero)ValueError: ero is not in list5. insert用于将对象插入列表中 num=1,2,3,4,5,6,7 num.insert(3,four) num1, 2, 3, four, 4, 5, 6, 7 num=

22、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, 2, 3, four, 4, 5, 6, 76. poppop方法会移出列表中的一个元素(默认是最后一个),并且返回该元素的值。pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。使用pop方法可以实现一种数据结构-栈。对于栈的两个操作(放入和移出),pop跟append方法恰好相反。Python没有入栈方法,变通使用appe

23、nd方法。提示:对于先进先出的队列,可以使用insert(0,)来代替append方法。或者,也可以继续使用append方法,但必须使用pop(0)来代替pop().更好的解决方案是使用collection模块中的deque对象。 x=1,2,3 x.pop()3 x1, 2 x.pop(0)1 x2 x=1,2,3 x.append(x.pop() x1, 2, 37. removeremove方法用于移出列表中某个值的第一个匹配项: x=to,be,or,not,to,be x.remove(be) xto, or, not, to, be x.remove(bee)Traceback (

24、most recent call last): File , line 1, in 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,6,2,1,7,9 x.sort() x1, 2, 4, 6

25、, 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, 2, 1, 7, 9 y1, 2, 4, 6, 7, 9* x=4,6,2,1,7,9 y=x #简单的赋值是没有用的,仅仅让x跟y都指向同一个列表。 y.sort() x1, 2, 4, 6, 7, 9 y1, 2, 4, 6, 7, 9另外一种获取已排序的列表副本的方法是,使用sorted函数 x=4,6,2,1,7,9 y=s

26、orted(x) y1, 2, 4, 6, 7, 9 x4, 6, 2, 1, 7, 9 sorted(Python) #sorted可以用于任何序列,却总是返回一个列表。P, h, n, o, t, y如果要把一些元素按照相反的顺序排列,可以先使用sort或者sorted,然后再调用reserse方法,或者使用reverse参数。Sorted(x).reverse()这样可以。10. 高级排序如果希望元素按照特定的方式进行排序,可以通过compare(x,y)的方式自定义比较函数。Compare(x,y),xy 返回正数;x cmp(42,32)1 cmp(99,100)-1 cmp(10,

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

28、一个关键字参数reverse是简单的布尔值(True或者false),用来知名列表是否进行反向排序。 num=5,2,9,7 num.sort() num2, 5, 7, 9 num.sort(reverse=True) num9, 7, 5, 2cmp,key,reverse参数都可以用于sorted函数。在多数情况下,为cmp或key提供自定义函数是非常有用的。2.4 元组:不可变序列用逗号分隔了一些值,即使仅有一个值,也必须有逗号。元组跟列表一样,也是一种序列。唯一的不同是元组不能修改。(字符串也是如此)。创建元组的语法很简单:使用逗号分隔一些值,那么就自动创建了元组。大部分时候,元组是

29、通过圆括号括起来的。 1,2,3(1, 2, 3) (1,2,3) #大部分时候是通过圆括号括起来的(1, 2, 3) ()#空元组() 42 #不是元组42 42,#必须加个逗号,即时只有一个值(42,) (42,)(42,) (42) #等同于42,非元组。422.4.1 tuple函数序列转元组tuple函数的功能跟list函数基本上一致:以一个序列作为参数并把它转换为元组。如果参数就是元组,那么该参数就会被原样返回。 tuple(1,2,3)(1, 2, 3) tuple(abc)(a, b, c) tuple(1,2,3)(1, 2, 3) tuple(1,2,3) #注意参数Tra

30、ceback (most recent call last): File , line 1, in tuple(1,2,3)TypeError: tuple() takes at most 1 argument (3 given)2.4.2 基本元组操作元组的分片还是元组,就像列表的分片还是列表一样。除了创建元组和访问元组元素外,也没有太多其他操作,可以参考序列来实现: x=1,2,3 x12 x0:3(1, 2, 3) x1:1=cTraceback (most recent call last): File , line 1, in x1:1=cTypeError: tuple objec

31、t does not support item assignment x=1,2,3 #序列可以修改 x1:1=c x1, c, 2, 3本章函数:cmp(x,y);len(seq);list(seq);max(args);min(args);reversed(seq);sorted(seq);tuple(seq)第三章 使用字符串本章将介绍如何使用字符串格式化其他的值,并简单了解一下用字符串的分割、连接、搜索等方法能够做哪些。3.1 基本字符串操作序列的基本操作(索引,分片,乘法,判断成员资格,求长度,取最小值和最大值)对字符串同样适用,但是字符串是不可以改变的,分片赋值是不合法的。3.2 字符串格式化:精简版字符串格式化使用字符串格式化操作符:即百分号%来实现(注意%也可以做去摸运算符)在%的左侧放置一个字符串(格式化字符串),而右侧则放置希望被格式化的值。第四章

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服