Studing Day4 - python基礎4

來源:互聯網
上載者:User

標籤:encoding   開啟   coding   代碼塊   過多   變數   span   擴充   全域   

2018.3.7

一、列表作用

1、去重

去除列表中重複的元素並且變成一個集合list = set(list)

 

2、關係測試

取list1和list2列表的交集 list1.intersection=(list2)

取list1和list2列表的並集 list1.union=(list2)

取list1和list2列表的差集 list1.difference=(list2)

(取出list1裡面有,list2裡面沒有的)

取list1和list2列表的對稱差集

list1.symmetric_difference(list2)

判斷list1是否是list2的子集list1.issubset(list2)

判斷list1是否是list2的父集list1.issuperset(list2)

判斷list1和list2列表是否沒有交集list1.isdisjoint(list2)

用運算子表達

交集 list1 & list2    並集 sslist1 | list2

差集 list1 - list2     對稱差集list1 ^ list2

 

集合增刪改查

list1.add(999)  集合沒有插入,只有增加,並且是無序的

list1.update([888,7,5]) 添加多項

list1.remove(1)刪除  

判斷key是否在字典裡  key in list1

判斷key是否不是在字典裡 key not in list1

二、檔案操作

f = open(“yesterday”, ‘a’,encoding = “utf-8”)

檔案控制代碼

a  (append)添加

w  (write)寫,如果檔案不存在,建立新檔案寫入

r+ (讀寫入模式)以讀和追加(追加在檔案尾)的模式開啟

w+ 先建立一個檔案,再寫,最後再讀

rb 二進位讀檔案

rb應用地方

1、python3.0中網路傳輸只能用二進位

2、一行一行的讀檔案,在第二行加入分割線

(f.readlines只適合讀小檔案)

迴圈檔案讀出來,

for index, line in enumerate(f.readlines()):

    if index == 2:

        print("-----分割線-----")

        continue

    print(line.strip())

處理大檔案,一行一行的讀,讀完一行就刪除

#進階寫法

count = 0

for line in f:

    if count == 1:

        print("-----分割線-----")

        count += 1

        continue

    print(line.strip())

    count += 1

f.seek(0)檔案游標回到最開始

檔案的一些操作

f.name()         檔案名稱字

f.flush()         即時重新整理

f.truncate(10)    從第10個字元開始截斷,後面的清空

 

**類似於進度條建立**

import sys,time

sys.stdout.write(‘*’)

sys.stdout.flush()

time.sleep(0.1)

 

檔案修改


建立一個新檔案,再逐行寫入,遇到需要修改的地方進行修改再寫入,達到修改檔案的目的

with 語句 (with代碼塊執行完畢時,內部會自動關閉並釋放檔案資源)
with open(‘log, r) as f:

 

三、字元編碼與轉碼

轉碼先要decode轉換成unicode碼再encode轉換成目標編碼形式

例:gbk轉utf8

decode(“本身的編碼格式”)

encode(“目標編碼格式”)

gbk_to_utf8 = s_gbk.decode(“gbk”)

gbk_to_utf8 = gbk_to_gbk.encode(“utf8”)

 

五、函數與函數式編程

1.物件導向:類(class)

2.面向過程:過程(def)

3.函數式編程:函數(def)

 

函數是邏輯結構化和過程化的一種編程方法

使用函數的三大特點

1.代碼重用    2.保持一致性   3.可擴充

 

函數傳回值:

    傳回值數=0;返回none

    傳回值數=1;返回object

    傳回值數>1;返回tuple

傳回值是返回函數執行完畢的結果,用於後面程式執行方式判斷

 

參數:

1.形參和實參

2.位置參數和關鍵字參數(標準調用:實參位置與形參位置一一對應,關鍵字調用:位置無固定,關鍵字必須在位置參數後面)

3.預設參數

4.參數組:*數組名(把N個未知參數轉成元組的方式)

**字典名(把N個關鍵字參數轉成字典的方式)

函數內局部變數只能在函數內生效

不應該在函數內部更改全域變數,非要改,用“global 全域變數”

除了字串和整數不能再函數內改全域變數,列表、字典等都可以更改

*遞迴*

如果一個函數在內部調用自己,叫遞迴函式

特性:

1.必須有個明確的結束條件

2.每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少

3.遞迴效率不高,遞迴層次過多會導致棧溢出

 

*函數式編程*

輸入是確定的,輸出就是確定的

 

*高階函數*

變數可以指向函數,函數的參數能接受變數,那麼一個函數可以接收另一個函數作為參數,這種函數就稱之為高階函數

 

作業:實現刪除,建立,查詢功能

 

 

 

Studing Day4 - python基礎4

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.