python學(xué)習(xí)筆記_第1頁
python學(xué)習(xí)筆記_第2頁
python學(xué)習(xí)筆記_第3頁
python學(xué)習(xí)筆記_第4頁
python學(xué)習(xí)筆記_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1) Python lstrip() 方法用于截掉字符串左邊的空格或指定字符。2) Python strip() 方法用于移除字符串頭尾指定的字符(默認為空格)。3) Python endswith() 方法用于判斷字符串是否以指定后綴結(jié)尾,如果以指定后綴結(jié)尾返回True,否則返回False。可選參數(shù)"start"與"end"為檢索字符串的開始與結(jié)束位置。4) str.endswith(suffix, start, end)5) 不需要用split啊,split是分割用replace(src, des)#des為需要替換成的目標字串,src為需要替換的源

2、字串如:>>> str = "My name is xxx, and yours? .">>> print strMy name is xxx, and yours? .>>> str = str.replace(',','')>>> print strMy name is xxx and yours? .6) list.append(obj)arr = 1,2,3,4,5,6· 1· 取第一列的值v = x0 for x in arr >>

3、;> a=1,2,3,4,5,6>>> a0 #取一行1, 2, 3>>> a:,0 #嘗試用數(shù)組的方法讀取一列失敗TypeError: list indices must be integers or slices, not tuple· 1· 2· 3· 4· 5 我們需要用列表解析的方法讀取一列:>>> b=x0 for x in a>>> print(b)1, 4 而對于數(shù)組,可以直接讀?。?gt;>> import numpy as n

4、p>>> a=np.array(1,2,3,4,5,6)>>> a:,0array(1, 4)pop() 函數(shù)用于移除列表中的一個元素(默認最后一個元素),并且返回該元素的值。語法pop()方法語法:list.pop(obj=list-1)參數(shù)· obj - 可選參數(shù),要移除列表元素的對象。返回值該方法返回從列表中移除的元素對象。實例以下實例展示了 pop()函數(shù)的使用方法:#!/usr/bin/pythonaList = 123, 'xyz', 'zara', 'abc'print "A

5、List : ", aList.pop();print "B List : ", aList.pop(2);以上實例輸出結(jié)果如下:A List : abcB List : zarapython 判斷字符串是否為空用什么方法?s=' 'if s.strip()='': print 's is null'或者if not s.strip(): print 's is null'這是從網(wǎng)上搜索的一篇也的還可以的Python進制轉(zhuǎn)換,經(jīng)過驗證可以使用。下面貼出它的實現(xiàn)代碼:?12345678910111213

6、141516171819202122232425262728293031323334353637383940414243444546474849505152535455#!/usr/bin/env python # -*- coding: utf-8 -*- # 2/10/16 base trans. wrote by srcdog on 20th, April, 2009 # ld elements in base 2, 10, 16.   import os,sys   # global definition # base = 0, 1, 2, 3,

7、 4, 5, 6, 7, 8, 9, A, B, C, D, E, F base = str(x) for x in range(10) + chr(x) for x in range(ord('A'),ord('A')+6)   # bin2dec # 二進制 to 十進制: int(str,n=10)  def bin2dec(string_num):   return str(int(string_num, 2)   # hex2dec # 十六進制 to 十進制 def hex2dec

8、(string_num):   return str(int(string_num.upper(), 16)   # dec2bin # 十進制 to 二進制: bin()  def dec2bin(string_num):   num = int(string_num)   mid =   while True:     if num = 0: break    num,rem = divmod(num,

9、 2)     mid.append(baserem)     return ''.join(str(x) for x in mid:-1)   # dec2hex # 十進制 to 八進制: oct()  # 十進制 to 十六進制: hex()  def dec2hex(string_num):   num = int(string_num)   mid =   while True:  

10、;   if num = 0: break    num,rem = divmod(num, 16)     mid.append(baserem)     return ''.join(str(x) for x in mid:-1)   # hex2tobin # 十六進制 to 二進制: bin(int(str,16)  def hex2bin(string_num):   r

11、eturn dec2bin(hex2dec(string_num.upper()   # bin2hex # 二進制 to 十六進制: hex(int(str,2)  def bin2hex(string_num):   return dec2hex(bin2dec(string_num)在Python 中怎么同時循環(huán)索引和元素阿751凡達 | 瀏覽 204 次 |舉報我有更好的答案2017-02-12最佳答案試試這個方法:>>> data100, 94, 88, 82, 76, 70, 64,

12、58, 52, 46, 40, 34>>> data.index(76)python文件讀寫小結(jié)讀文件打開一個文件用open()方法(open()返回一個文件對象,它是可迭代的):>>> f = open('test.txt', 'r')r表示是文本文件,rb是二進制文件。(這個mode參數(shù)默認值就是r)如果文件不存在,open()函數(shù)就會拋出一個IOError的錯誤,并且給出錯誤碼和詳細的信息告訴你文件不存在:>>> f=open('test.txt', 'r')Traceb

13、ack (most recent call last): File "<stdin>", line 1, in <module>FileNotFoundError: Errno 2 No such file or directory: 'test.txt'文件使用完畢后必須關(guān)閉,因為文件對象會占用操作系統(tǒng)的資源,并且操作系統(tǒng)同一時間能打開的文件數(shù)量也是有限的>>> f.close()由于文件讀寫時都有可能產(chǎn)生IOError,一旦出錯,后面的f.close()就不會調(diào)用。所以,為了保證無論是否出錯都能正確地關(guān)閉文件,我

14、們可以使用try . finally來實現(xiàn):try: f = open('/path/to/file', 'r') print(f.read()finally: if f: f.close()但是每次都這么寫實在太繁瑣,所以,Python引入了with語句來自動幫我們調(diào)用close()方法:with open('/path/to/file', 'r') as f: print(f.read()python文件對象提供了三個“讀”方法: read()、readline() 和 readlines()。每種方法可以接受一個變量以限制每

15、次讀取的數(shù)據(jù)量。· read() 每次讀取整個文件,它通常用于將文件內(nèi)容放到一個字符串變量中。如果文件大于可用內(nèi)存,為了保險起見,可以反復(fù)調(diào)用read(size)方法,每次最多讀取size個字節(jié)的內(nèi)容。· readlines() 之間的差異是后者一次讀取整個文件,象 .read() 一樣。.readlines() 自動將文件內(nèi)容分析成一個行的列表,該列表可以由 Python 的 for . in . 結(jié)構(gòu)進行處理。· readline() 每次只讀取一行,通常比readlines() 慢得多。僅當沒有足夠內(nèi)存可以一次讀取整個文件時,才應(yīng)該使用 readline()

16、。注意:這三種方法是把每行末尾的'n'也讀進來了,它并不會默認的把'n'去掉,需要我們手動去掉。In2: with open('test1.txt', 'r') as f1: list1 = f1.readlines()In3: list1Out3: '111n', '222n', '333n', '444n', '555n', '666n' 去掉'n'In4: with open('test1.txt'

17、, 'r') as f1: list1 = f1.readlines()for i in range(0, len(list1): list1i = list1i.rstrip('n')In5: list1Out5: '111', '222', '333', '444', '555', '666'對于read()和readline()也是把'n'讀入了,但是print的時候可以正常顯示(因為print里的'n'被認為是換行的意思)In7

18、: with open('test1.txt', 'r') as f1: list1 = f1.read()In8: list1Out8: '111n222n333n444n555n666n'In9: print(list1)111222333444555666In10: with open('test1.txt', 'r') as f1: list1 = f1.readline()In11: list1Out11: '111n'In12: print(list1)111一個python面試題的例子

19、:有兩個文件,每個都有很多行ip地址,求出兩個文件中相同的ip地址:# coding:utf-8import bisectwith open('test1.txt', 'r') as f1: list1 = f1.readlines()for i in range(0, len(list1): list1i = list1i.strip('n')with open('test2.txt', 'r') as f2: list2 = f2.readlines()for i in range(0, len(list2):

20、 list2i = list2i.strip('n')list2.sort()length_2 = len(list2)same_data = for i in list1: pos = bisect.bisect_left(list2, i) if pos < len(list2) and list2pos = i: same_data.append(i)same_data = list(set(same_data)print(same_data)要點就是:(1)用with (2)處理行末的'n' (3)使用二分查找提高算法效率。(4)使用set快速去重

21、。 寫文件寫文件和讀文件是一樣的,唯一區(qū)別是調(diào)用open()函數(shù)時,傳入標識符'w'或者'wb'表示寫文本文件或?qū)懚M制文件:>>> f = open('test.txt', 'w') # 若是'wb'就表示寫二進制文件>>> f.write('Hello, world!')>>> f.close()注意:'w'這個模式是醬紫:如果沒有這個文件,就創(chuàng)建一個;如果有,那么就會先把原文件的內(nèi)容清空再寫入新的東西。所以若不想清

22、空原來的內(nèi)容而是直接在后面追加新的內(nèi)容,就用'a'這個模式。我們可以反復(fù)調(diào)用write()來寫入文件,但是務(wù)必要調(diào)用f.close()來關(guān)閉文件。當我們寫文件時,操作系統(tǒng)往往不會立刻把數(shù)據(jù)寫入磁盤,而是放到內(nèi)存緩存起來,空閑的時候再慢慢寫入。只有調(diào)用close()方法時,操作系統(tǒng)才保證把沒有寫入的數(shù)據(jù)全部寫入磁盤。忘記調(diào)用close()的后果是數(shù)據(jù)可能只寫了一部分到磁盤,剩下的丟失了。所以,還是用with語句來得保險:with open('test.txt', 'w') as f: f.write('Hello, world!')

23、python文件對象提供了兩個“寫”方法: write() 和 writelines()。· write()方法和read()、readline()方法對應(yīng),是將字符串寫入到文件中。· writelines()方法和readlines()方法對應(yīng),也是針對列表的操作。它接收一個字符串列表作為參數(shù),將他們寫入到文件中,換行符不會自動的加入,因此,需要顯式的加入換行符。f1 = open('test1.txt', 'w')f1.writelines("1", "2", "3")

24、# 此時test1.txt的內(nèi)容為:123f1 = open('test1.txt', 'w')f1.writelines("1n", "2n", "3n")# 此時test1.txt的內(nèi)容為:# 1# 2 # 3 關(guān)于open()的mode參數(shù):'r':讀'w':寫'a':追加'r+' = r+w(可讀可寫,文件若不存在就報錯(IOError))'w+' = w+r(可讀可寫,文件若不存在就創(chuàng)建)'a+&

25、#39; =a+r(可追加可寫,文件若不存在就創(chuàng)建)對應(yīng)的,如果是二進制文件,就都加一個b就好啦:'rb''wb''ab''rb+''wb+''ab+' file_obj.seek(offset,whence=0)file_obj.seek(offset,whence=0)方法用來在文件中移動文件指針。offset表示偏移多少。可選參數(shù)whence表示從哪里開始偏移,默認是0為文件開頭,1為當前位置,2為文件尾部。舉例:f = open("test1.txt", "a+")print(f.read()f.write('1')f.seek(0, 0)# 把文件指針從末尾移到開頭,沒有這句話下面的read()就讀不到正確的東西print(f.read()f.close()注意:這個文件指針的改變只是作用于'r',對'w'和'a'不會起作用,如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論