2018/1/22-2018/1/28
這周開始學習python的集合、檔案、轉碼以及部分函式的應用。
(1)集合
集合的基本格式:list =
set([1,
23,68,
5,9,
8,745,2])
在列表加上set(),就能夠將**變為集合;以下為集合的幾種用法:
#交集(intersection)
print(list_1 & list_2)
#並集(union)
print(list_1 | list_2 )
#差集(difference)
print(list_1 - list_2)
#對稱差集(symmetric_difference)
print(list_1 ^ list_2)
#增加list_1.add(999) #新增一項
list_1.update([232,998,44]) #新增多項
#刪除list_1.remove(9) #刪除一項
(2)檔案
檔案的應用主要包括以下內容:
f = open("file_op","r",encoding="utf-8") #唯讀
f = open("file_op","r+",encoding="utf-8") #讀寫,但只能在原始檔往後追加
f = open("file_op","w",encoding="utf-8") #只寫,但會覆蓋原始檔,記得備份原始檔
f = open("file_op","a",encoding="utf-8") #追加
f.close() #最後要加這句話關閉檔案
f = open("file_op","rb/wb/ab",encoding="utf-8") #把檔案以二進位制格式讀寫出來,windows系統與lunix系統的檔案切換開啟需要用到,encoding="??"這句話是必須的,表明原始檔的預設字符集。
由於不同的國家之間所採用的字符集都不一樣,因此程式或者**需要經過解碼+編碼才能重新工作,否則會出現亂碼現象。
python3.x版本的預設字符集是unicode(萬國碼,支援部分中文),python2.x版本的預設字符集是ascii碼,由於ascii碼不支援中文所以想要在程式上插入中文的話,必須新增以下宣告:
# -*- coding:utf-8 -*-
如果預設字符集是"utf-8","gb2312","gbk"之類的,要運用到decode()函式先解碼轉換成"unicode",在然後運用encode()函式編碼成"ascii"或者其他國家的字符集。
在日後程式設計過程中如果遇到亂碼的情況,可以參考這個解決思路是否合適。
(4)函式
函式的基本格式:
def func_(arg1,arg2,arg3):
func_(2,4,6) #位置引數,能根據排位順序確定值,
func_(arg2=4,arg1=2,arg3=6) #關鍵引數,根據引數名確定值,要注意的是關鍵引數和位置引數不能重複,關鍵引數必須在位置引數後面。
func_(arg1,arg2,arg3=6) #預設引數,如果函式內部不對引數作出定值則按照預設值來算。
def func_(arg1,arg2,arg3,*arg,**args):#*args為多個引數定值,輸出為元祖
#**args為多個引數定值,輸出為字典、列表(5)區域性變數與全域性變數
區域性變數如何變為全域性變數,在上面一行加global(不建議用)
(6)遞迴函式
#必須設定終止條件,否則只能迴圈999次
def calc(n):
print(n)
if n > 1:
return calc(n/2)
calc(10)
遞迴函式的三大特徵:
1、明確的結束條件。
2、問題規模每一次遞迴都應該比上一次的有所減少。
3、效率低下。
(7)高階函式
把乙個函式當作另乙個函式的引數代入。
(8)函式式程式設計
不需要變數,沒有***。python不適合使用函式式程式設計。
c 中的轉碼函式
iconv open函式 iconv open 申請乙個字符集轉換的描述符 include iconv t iconv open const char tocode,const char fromcode 描述 iconv open 函式申請乙個轉換描述符,轉換字串行從編碼 fromcode 到編碼...
利用base64函式,對檔案進行轉碼加密
設計此種編碼是為了使二進位制資料可以通過非純 8 bit 的傳輸層傳輸,例如電子郵件的內容就是通過base64轉碼後傳輸的。base64 encoded後,資料要比原始資料多占用 33 左右的空間。利用base64加密檔案 寫檔案路徑 file url upload iampdf.pdf file ...
利用base64函式,對檔案進行轉碼加密
設計此種編碼是為了使二進位制資料可以通過非純 8 bit 的傳輸層傳輸,例如電子郵件的內容就是通過base64轉碼後傳輸的。base64 encoded後,資料要比原始資料多占用 33 左右的空間。利用base64加密檔案 0102 0304 0506 0708 0910 1112 1314 151...