ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:23.54KB ,
资源ID:5866492      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5866492.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(python学习笔记.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

python学习笔记.docx

1、python学习笔记问题词法与VB语言通用的关键字If/if not/else/ for/while/returnBreak/continuefor i in range(1,3): print I #i= 1,2逻辑运算:Or, and,函数形参数值传递与C语言一样,形参的变化不影响实参数组-N下标表示取倒数第N个键,不能越界line = 1234print line0 + line1 + line2 + line3print line-1 + line-2 + line-3 + line-412344321全局变量myVariable=1def aFunction(): global my

2、Variable myVariable = myVariable * 2 print myVariable在函数中使用是要加global关键字特别的词法Def 函数定义定义一个用户函数def readFile(file, addr):它的返回只是通过return的。也可以没有返回值。当空行且不在def的缩进之内的代码出现即表示函数结束。(没有返回值的函数,其实返回的是None)def getFile(addr):Try: finally异常处理机制。在try作用域的代码中,如果出现异常,会直接跳到finally处理。如果没有出现异常,在try结束后也会跑到finally里面通常finally里

3、面都是一些回退操作,比如文件的close等。模块importPython可以引用已经写好的模块或者其它py文件中的函数与变量只要import就可以了把全局变量定义在一个单独的模块中:#gl.pygl_1 = hellogl_2 = world在其它模块中使用#a.pyimport gldef hello_world() print gl.gl_1, gl.gl_2自定义模块把全局变量定义在一个单独的模块中:#gl.pygl_1 = hellogl_2 = world在其它模块中使用#a.pyimport gldef hello_world() print gl.gl_1, gl.gl_2Pyt

4、hon文件调用另一文件execfile(python filename) 或者import osos.system(python filename)/可以传入参数或者os.popen(python filename)/可以获取输出系统模块OsSys字典的使用字典就是有N个键的一个集合,类似与结构,但是成员没有类型只说。一个键可以在字符型、字符串、数据型之间来回切换。但是一个时刻只有一种值型(被赋值的类型)它的成员个数是可变的。创建字典dict1 = m1 : m2 #创建一个具有两个键的字典,键之间使用:隔开,用定义字典dict1 = y: -1, x: -1#创建一个具有两个键的字典,键的初

5、始化值都是-1(这里分开的是,)dict1 = .fromkeys(m1, m2), -1)#创建一个具有两个键的字典,键的初始化值都是-1dict1 = #创建一个空字典,键后续可以随意添加删除字典del dict1 #之后dict1就不可以再用了,并须重新定义字典定义分行写与注释dict = m1: #sss m2 #sss 添加一个键dict1m3 = 3 #如果原来没有m3键,则m3键会被添加且赋值dict1.setdefault(m3,2) #使用setdefault函数增加一个键并赋值上面两种方法本质上都是给键设值删除一个键del dict1m3 #之后键m3就不可以再用了,并须重

6、新添加clear删除所有键dict1.clear() #所有的键都被清除,并须重新添加常用的字典方法dict1 = dict1m1 = 1dict1m2 = 2dict1m3 = MM3列举字典的所有键以及其值print dict1.items()#列举全部键及值(m1, 1), (m3, MM3), (m2, 2)print dict1.keys()#列举全部键m1, m3, m2print dict1.values()#列举全部值1, MM3, 2获取字典键个数print ItemNum = %d%(len(structVal.keys()print ItemNum = %d%(len(s

7、tructVal.values ()print ItemNum = %d%(len(structVal.items ()has_key查找是否有某键有的话返回True,否则返回Falsedict1.has_key(m1) #=Truedict1.has_key(m4) /#=Falseget获取键的值dict1.get(m1) #=1 找到,返回其值dict1.get(m4)#找不到返回字符串Noneget与dict1x的区别是,如果没有x,后一种方法会异常终止脚步,前一种方法只是返回Nonesetdefault获取键值print dict1.setdefault(m1,100) #=1 对于

8、已经存在的键,第二个参数没有用print dict1.setdefault(m4,100) #=100 对于不存在的键,第二个参数则是初始值update两个字典键值添加dict1.update(dict2) #badict2中的键值全部添加到dict1中如果是dict1中没有的,则添加如果是dict1中有的,则覆盖(值为dict2中的值)如果是dict2中没有的,则不变Copy两个字典dict1 = dict2.copy()#badict2中的键值全部copy到dict1中dict1中的键与值都变为dict2一样的如果是dict2中没有的,则会被删除掉一键多值字典不可变键值方式dict1 =

9、.fromkeys(m1, m1), (-1,2) #创建一个两键字典,每个键一个列表,列表中的元素不可单个变,只可以作为整体编号上面的各种字典方法也一样可用引用键的某个值的方法是dict1m10 #=-1 OKdict1m10 = 10 # ERR不可单独变dict1m1 = 10 #OK,但是m1变为单值了数组可变键值方式dict = m1: (31,21), m2(21,22) #每个键都是一个数组,使用()方式,数组每个元素可变dictm10 = 32数组字典使用的技巧dict = m1: (1,21), #sss m2:(21,22)#sss for element in dict.

10、items():print element11这里每个element就是(m1, 1, 21) 和 (m2, (21, 22)所以element0是键名Element1是键值Element1x就是数组键值的第x个元素这样可以读取也可以赋值数组字典dict1 = .fromkeys(range(5),NONE) #创建一个数组字典,有5个元素0,1,2,3,4,初始值都是NONEprint dict0 #NONE注:数组字典的下标不能是负数数组的使用初始化A = 1,2,3A = 0 for I in Range(0, 100) /100个0的数组A = I for I in range(0,

11、100) /100个键分别是0,1,2,.,99A = f(i) for I in range(X,Y) /Y-X个键,值是i在X,Y)中取值为作为f(i)的输入的输出切片操作切片获取AN:M = AN,AM-1A = 1,2,3,4A1:3 = 2,3A0:1 = 1切片插入A = 0,1,2,3,4A1:1 = 5,6,7 #insert 3 elements at position 1A = 0,5,6,7,1,2,3,4aa = 1,1aa0:0 = 2,2print aa /=2,2, 1,1切片尾追加元素A-1:-1 = 5,6,7A= 0,1,2,3,4,5,6,7 #inser

12、t 3 elements at end切片替换A = 0,1,2,3,4A1:3 = 5,6,7 # 3 replace 2 at begin point of 1A = 0,5,6,7,3,4可以不等个数地替换切片删除A = 0,1,2,3,4A1:3 = # 2 replace with null, it is a delete operationA = 0,3,4切片生成新数组line = ABCDEline1:42 #=D键操作键排序A = 3,2,1A.sort()A = 1,2,3键逆序A = 1,2,3A.reverse()A = 3,2,1所以sort与reverse操作可以实

13、现大小排序插入一个键A = 3,2,1A.insert(1,4)A = 3,4,2,1尾部增加一个键A = 3,2,1A.append(4)A = 3,2,1,4多维数组动态添加L2CodeTable = for i in range(0, L2CodeTableNum0): L2CodeTable.append(0,0,0) #动态创建了多维数组 删除一个键A = 3,2,1Del A1A = 3,1函数File functions文件格式import msvcrt文本格式os.O_TEXT,二进制格式os.O_BINARYmsvcrt.setmode 改变一个文件描述符的模式主要解释一下W

14、indows系统中text模式和binary模式的区别(Unix系统无此差别):text模式读取时,会将rn中的回车符去掉,变为n, 输出时会将n变为rn。而binary模式不做转换,和Unix中表现一样。二进制文件读取Unpackmsvcrt.setmode(0,os.O_BINARY) outFile = open(coreName, rb)strings = outFile.readline()aa = struct.unpack(l,strings0:4) #读取二进制数据,这里必须通过unpack进行解压获取print aa = %x%(aa)packa = 20 b = 400 s

15、tr = struct.pack(ii, a, b) #转换后的str虽然是字符串类型,但相当于其他语言中的字节第一个参数:格式序列第2到第N+1个参数,为要压缩的参数。如果后面有N个参数,则前面格式序列字符窜中就要有N个格式关键字把a,b两个数字压缩为int int格式的字符流因为两个数字都压缩为int了,都为4B,所以一共为8BPack/unpack格式关键字注,下面数字返回的是一个具有一个元素的数组下面是字符和unpack出来的数据类型的关系。x pad byte no value c char string of length 1 b signed char integer B uns

16、igned char integer ? _Bool bool (1) h short integer H unsigned short integer i int integer I unsigned int integer or long l long integer L unsigned long long q long long long (2) Q unsigned long long long (2) f float float d double float s char string p char string P void * longOpen & closedatFile =

17、 open(file, r)datFile.close()readline & readlinesdatFile = open(file, r)datFile.readline()1. readlinea) 第一次读取时是从文件的头开始的b) 读取文件一行,读取的最后一个字符是n (所以直接打印出来会自动换行)i. 读到n则会返回读取的字符串c) 读取后,会记录下次读取的起始位置i. 所以读取是顺序向后读取的2. readlinesa) 读取整个文件Write(x)datFile = open(file, r)datFile.write(x)1. 把x写入文件中a) 第一次写时,是从文件的头开

18、始的b) 写完后会记录下次写的位置c) 所以是顺序向后写的2. 与readline的处理方式类似file = open(testfile.txt, w)file.write(1n)file.write(12n)file.write(123n)file.close()112123Writelinesfile.writelines(12,34)一次写入多个字符串。等效与write与+号结合它与write函数是串行顺序写入的,即也是接着彼此的写指针往后写的file=open(aaa.txt,w)file.writelines(12n,34n)file.writelines(56n,78n)file.

19、write(9an+bcn)file.close()123456789abc文件名修改import osos.rename(bbb.txt, ccc.txt) #把文件bbb.txt重命名为ccc.txt文件的行操作import linecachefile=open(3_2.txt,r)lines = file.readlines()获取行数linecount=len(lines)#get file line number获取某行的内容linecache.clearcache()# clear cacheline = linecache.getline(3_2.txt,5)#get line5

20、 1, MAX-Line或者Line = linesi #i = 0, MAX-Line - 1删除某行的内容linesx = 或者del linesx替换某行的内容linesx = XXXXXn写入所有行到文件file=open(aaa.txt,w)file.writelines(12n,34n)file.writelines(56n,78n)file.write(9an+bcn)file.close()文件copyfile=open(aaa.txt,r)lines = file.readlines()file.close()file=open(bbb.txt,w)file.write(.j

21、oin(lines)file.close()字符串处理函数常用简单操作linex.split(x) 分割1. 以指定的字符或者字符串为分割符,把字符串分成N个段,变为一个数组列2. 如果不指定分割符,则默认通过空格分割a) 不指定分割符时,则是以1个或者N个连续的空格为分割符。空格个数是动态的。b) 如果指定分割,即使指定的是空格,则按照指定的空格个数严格匹配c) 所以,不指定分割符,对于空格分割更有通用性line = 11211121111elements = line.split(2)print elements0print elements1print len(elements)elem

22、entsx = linex.split()#get its elementsbeginAddr = long(0x+elementsx2, 16)111113linex.replace(x, y) 替换把字符或者字符串x替换为字符或字符串y,产生并返回此新的字符串如果y为空则表示删除字符串中的x,line = 123321print lineline = line.replace(33,)print line1233211221ASCII以及进制转换Test 1 - upper case character bin converter(A, bin)Bin: 01000001 Test 2 -

23、 lower case character bin converter(a, bin)Bin: 01100001Test 3 - number bin converter(2, bin)Bin: 00110010Test 4 - special character bin converter($, bin)Bin: 00100100Test 5 - special character bin converter(%, bin)Bin: 00100101Test 6 - upper case character oct converter(A, oct)Oct: 101Test 7 - lowe

24、r case character oct converter(a, oct)Oct: 141Test 8 - number oct converter(2, oct)Oct: 062Test 9 - special character oct converter(, oct)Oct: 076Test 10 - special character oct converter(?, oct)Oct: 077可以直接赋值赋值即覆盖line = abcdline2 = qwertyline = line2print line /qwerty+相当于catnewLine = lines0newLine

25、+= lines1newLine += lines2数组化以及与数组的区别字符串可以作为字符数组使用line = 1234print line0print line1print line-1124区别:可以切片,但是不可以对切边赋值也不可以对单个元素赋值修改字符串list化把字符串完成安装list处理line = line-1:-1 = XXXXprint lineItem = len(line)FileX = open(0000.txt,w)for i in range(0,Item): FileX.write(linei)FileX.close()优点可以对单个字符进行任意操作,也可以添加

26、,替换某个或某段字符缺点打印和保存到文件中是,必须一个一个字符进行写入。因为它本质不是字符串Sring组件使用import string可以有很多特别的定义hexdigits = string.hexdigits #16进制数字的字符序列if x not in hexdigits: 如果x不是16进制的字符序列digits = string.digits #10进制数字的字符序列string.join#连接字符串还有大写字符,小写字符等功能UserString组件使用定义一个可变字符串out_str = UserString.MutableString()out_str += XXXout_s

27、tr0 = Cprint out_str /= CXX一般的字符串是不可以这样去修改某一个字符的。缺点:不能写成文件.不如数组化处理可变字符串数组处理strx = #空数组strx += 12345678#则为字符串数组print strx #1, 2, 3, 4, 5, 6, 7, 8strFF = struct.pack(B, 0xFF)strx0 = strFFstrx1 = strFFprint strx#xff, xff, 3, 4, 5, 6, 7, 8print len(strx)#8FileBin = pBinFile.openBinFile(0000.bin,w)for i in range(0, len(strx): FileBin.write(strxi)FileBin.closeFileBin = pBinFile.openBinFile(0000.bin,r)strx = FileBin.readlines()print strx0#?345678print len(strx0)#0aa =

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1