日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python基礎(chǔ)知識(shí)大全:集合用法、文件操作、字符編碼轉(zhuǎn)換、函數(shù)

人工智能時(shí)代,該學(xué)學(xué)python了!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比萬柏林網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式萬柏林網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋萬柏林地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

既然確定學(xué)習(xí)Python了,那么就要一步一步從基礎(chǔ)開始學(xué)習(xí)嘛~!

下面我們來看看基礎(chǔ)知識(shí)

集合(Set)及其函數(shù)

集合是一個(gè)無序的、無重復(fù)元素的序列。

  
 
 
 
  1. list = {1, 3, 6, 5, 7, 9, 11, 3, 7} # 定義集合方式一 
  2. list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7]) # 定義集合方式二 
  3. list2 = set() # 定義一個(gè)空集合 
  4. print(list1, list) # 打印后可看到,集合中的元素已自動(dòng)去重 
  5. print(3 in list) # 判斷一個(gè)元素是否在集合中,返回bool值 
  6. print(20 not in list1) # 判斷一個(gè)元素是否不在集合中,返回bool值 
  7. list1.add(99) # 新增元素 
  8. list1.update([10, 20, 30, 2]) # 新增多項(xiàng) 
  9. list1.remove(3) # 刪除一個(gè)元素,若元素不存在則報(bào)錯(cuò) 
  10. print(list1.discard(8)) # 刪除一個(gè)元素,若元素不存在則不做任何操作 
  11. print(len(list1)) # 計(jì)算集合中元素的個(gè)數(shù) 
  12. print(list1.pop()) # 從集合中隨機(jī)彈出一個(gè)元素 
  13. list.clear() # 清空集合 

集合的運(yùn)算

  
 
 
 
  1. list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7]) 
  2. list2 = set([2, 4, 6, 8, 3, 5]) 
  3. print(list1, list2) 
  4. # 交集 
  5. print(list1.intersection(list2)) 
  6. print(list1 & list2) 
  7. # 并集 
  8. print(list1.union(list2)) 
  9. print(list1 | list2) 
  10. # 差集 
  11. print(list1.difference(list2)) 
  12. print(list1 - list2) 
  13. # 對稱差集 
  14. print(list1.symmetric_difference(list2)) 
  15. print(list1 ^ list2) 
  16. # 是否為子集 是否為父集 
  17. list3 = set([9, 11]) 
  18. print(list3.issubset(list1)) 
  19. print(list1.issuperset(list3)) 
  20. # 若兩個(gè)集合的交集為空 返回true 
  21. list4 = set([20, 30]) 
  22. print(list1.isdisjoint(list4)) 
  23. print(list1.isdisjoint(list2)) 

文件(File)操作

在開發(fā)中經(jīng)常會(huì)有讀寫文件的需求,相關(guān)的代碼實(shí)現(xiàn)如下:

文件的打開模式

文件的讀操縱、寫操作、追加操作、按行讀取文件

  
 
 
 
  1. # read 直接讀文件全文 
  2. f = open('test', 'r', encoding='utf-8') # 文件句柄 
  3. data = f.read() 
  4. print(data) 
  5. # write 向文件中寫 
  6. f = open('test1', 'w', encoding='utf-8') 
  7. f.write('我愛北京天安門, 
  8. 天安門上太陽升') 
  9. # append 在文件***追加內(nèi)容 
  10. f = open('test1', 'a', encoding='utf-8') 
  11. f.write('呀呼嘿') 
  12. # loop 按行讀取文件 
  13. # high bigger 將文件作為迭代器 讀一行打印一行 內(nèi)存中只緩存一行 
  14. f = open('test', 'r', encoding='utf-8') 
  15. count = 0 
  16. for l in f: 
  17.  if count == 9: 
  18.  print('----------') 
  19.  count += 1 
  20.  continue 
  21.  print(l.strip()) 
  22.  count += 1 
  23. # low loop 將文件內(nèi)容全部讀取至內(nèi)存,效率低 
  24. f = open('Sonnet', 'r', encoding='utf-8') 
  25. for index, line in enumerate(f.readlines()): 
  26.  if index == 9: 
  27.  print('------------') 
  28.  continue 
  29.  print(line.strip()) 

文件的函數(shù)

  
 
 
 
  1. f = open('test', 'r', encoding='utf-8') # 文件句柄 讀模式打開文件 
  2. print(f.tell()) # 獲取當(dāng)前光標(biāo)位置 
  3. print(f.readline()) 
  4. print(f.readline()) 
  5. print(f.tell()) 
  6. print(f.readline()) 
  7. f.seek(10) # 跳轉(zhuǎn)光標(biāo)到第10個(gè)字符 
  8. print(f.readline()) 
  9. print(f.encoding) # 獲取文件編碼 
  10. print(f.fileno()) # i don't know what it is 
  11. print(f.isatty()) # 判斷文件是否是tty終端 
  12. print(f.readable()) # 判斷文件是否是可讀 
  13. print(f.writable()) # 判斷文件是否是可寫 
  14. print(f.seekable()) # 判斷文件是否是可跳轉(zhuǎn)光標(biāo) (tty不可跳轉(zhuǎn) 
  15. f.flush() # 當(dāng)用寫模式打開文件時(shí) 并不是寫一句系統(tǒng)就會(huì)調(diào)用一次io 若需要及時(shí)刷新硬盤中的文件內(nèi)容 可以調(diào)用該函數(shù) 
  16. f.close() # 關(guān)閉文件 
  17. print(f.closed) # 判斷文件是否關(guān)閉 

文件的修改

  
 
 
 
  1. # 文件的修改 直接修改文件本身比較困難 可以將修改寫入另一個(gè)文件中 如有需求可以再寫回文件本身 
  2. f = open('test', 'r', encoding='utf-8') 
  3. f_new = open('test.bak', 'w', encoding='utf-8') 
  4. for line in f: 
  5.  if '我曾千萬次夢見' in line: 
  6.  line = line.replace('我曾千萬次夢見', '我不想千萬次夢見') 
  7.  f_new.writelines(line) 
  8. f.close() 
  9. f_new.close() 

一個(gè)進(jìn)度條實(shí)例 用于理解flush函數(shù)的機(jī)制 該實(shí)例可以實(shí)現(xiàn)進(jìn)度條效果

  
 
 
 
  1. import sys 
  2. import time 
  3. f = open('Sonnet1', 'w', encoding='utf-8') # 文件句柄 寫模式打開文件 會(huì)新建一個(gè)文件 若同名文件存在 則直接覆蓋 
  4. for i in range(10): 
  5.  sys.stdout.write('#') 
  6.  sys.stdout.flush() 
  7.  time.sleep(0.2) 

字符編碼轉(zhuǎn)換

字符編碼轉(zhuǎn)換最重要的一點(diǎn)就是,切記unicode是編碼之間的中轉(zhuǎn)站,若unicode不是目標(biāo)編碼或者原始編碼,那么任何兩個(gè)編碼相互轉(zhuǎn)換都需要經(jīng)過unicode(見下圖)。

需要注意的是,python的默認(rèn)編碼是ASCII,python3的默認(rèn)編碼是unicode。

在python3中encode,在轉(zhuǎn)碼的同時(shí)還會(huì)把string變成bytes類型,decode在解碼的同時(shí)還會(huì)把bytes變回string。

函數(shù)

函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。python提供了許多內(nèi)建函數(shù)(如print());也可以自己創(chuàng)建函數(shù),即用戶自定義函數(shù)。

定義一個(gè)有自己想要功能的函數(shù),需要遵循以下規(guī)則:

  • 函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào) ()。
  • 任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間,圓括號(hào)之間可以用于定義參數(shù)。
  • 函數(shù)的***行語句可以選擇性地使用文檔字符串——用于存放函數(shù)說明。
  • 函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。
  • return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

待補(bǔ)充知識(shí):函數(shù)的參數(shù)、變量作用域、遞歸、高階函數(shù)。


網(wǎng)站名稱:Python基礎(chǔ)知識(shí)大全:集合用法、文件操作、字符編碼轉(zhuǎn)換、函數(shù)
瀏覽地址:http://m.5511xx.com/article/cdohjpi.html