Python學習一之基礎(待完善)

2021-10-24 16:07:25 字數 3128 閱讀 8577

一、 基礎數字型別:

python執行效率(動態語言)

變數和資料型別

(1) int、float:2//2=2(int)=>//自動轉化為整型;

(2) bool、複數complex

(3) python把0、空字串和none看成false,其他數值和非空字串都看成true。

(4) str:可運算

(5) 原始字串:r』』:單行字串(無法包括「」、『』);』』』…』』』:多行字串。

(6) format字元模板

(7) 字串切片[x:y],0開始,不包括y

(8) print(x, end=』 『):end=『 』為不換行輸出

(9) 引入模組和函式:

a) 模組:input 模組名

b) 匯入某個模組的函式:from 模組名 input 函式

c) 匯入多個函式:from 模組名 input 函式1,函式2……

控制流程

(1) if x>0:

(2) if: …else:

(3) if: …elif: …else:

(4) for x in y:

(5) while …:

tuple元組容器

(1) tuple(x, y, z):tuple資料不可變,效能高於list;可運算

(2) tuple.count(x):統計x出現的次數

(3) tuple.index(x):返回指定元素的下標;

(4) tuple中的list可以變。

set集合容器

(1) 不可重複且無序;

(2) s = ;不可查,可運算

(3) 空集合:set()

(4) 判斷值是否存在:『value』 in set;

(5) 單個新增:s.add(『value』);

(6) 批量新增:a.update(『x』, 『y』…);

(7) 刪除:s.remove(『』),刪除不存在的會報錯;

(8) 其他方法:

i. 不會報錯的刪除方法:s.discard()

ii. 清除所有元素:s.clear();

iii. 集合的子集:s.issubset();

iv. 超集:s.issuperset();

v. 是否重合:s.isdisjoint()

函式(1) 定義乙個函式要使用 def 語句,依次寫出函式名、括號()、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用 return 語句返回:

(2) 遞迴:fact(n)=n*fact(n-1);

(3) isinstance()函式,可以判斷引數型別,它接收兩個引數,第乙個是需要判斷的引數,第二個是型別(可以元組,加入多種型別);

運算子優先順序:

優先順序:()->算術運算子->比較運算子->身份運算子->成員運算子->邏輯運算子

二、 class類:

變數----9章1小時

a) 類變數:

i. 呼叫類變數???

b) 例項變數

i. 呼叫例項變數需要self.***;(self當前物件元素)

ii. __dict __():字典能夠查詢物件中所有例項變數;

方法a) 例項方法:

i. 第乙個變數需要為self(最好用self,也可用其他)

ii. 通過物件名.***呼叫

b) 類方法:

i. 裝飾器@:@classmethod

ii. 第乙個變數需要為預設cls(這個類)

iii. 通過類名.***呼叫

c) 靜態方法:

i. 裝飾器@staticmethod

ii. 類和物件都可以呼叫

iii. 無法呼叫例項變數

建構函式

a) 初始方法:__init __(),初始化物件

公開/私有:

a) 私有:變數名前加上雙下劃線:__變數名

物件a) 可以通過『物件名.變數名』來動態新增例項變數,僅對己物件有用;

物件導向特性

a) 繼承

i. 乙個模組乙個class類

ii. 繼承方式一:

匯入:from 模組名 import 父類

類引數加入父類名

python允許多繼承(慎用)

iii. 繼承方式二:常用

super(子類名, self).__init __(父類變數)

iv. 子類重寫父類 __init __(),需要帶上父類的變數self

b) 封裝性

c) 多型性

三、 正規表示式

四、 高階(一切皆物件)

a) 閉包=函式+環境變數

b) 環境變數具有記憶功能;

五、 函式

a) 匿名函式:lambda 表示式

i. lambda parameter_list: expression(lambda 變數:表示式)----eg:lambda x,y:x+y

ii. 呼叫:通過將匿名函式賦值給變數

b) 三元表示式:

i. 條件為真時返回的結果if條件判斷else條件為假時的返回結果

ii. r = x if x > y else y

iii. 常用語lambda表示式

c) map:

i. map(函式/lambda表示式,list(可傳入多列表))->list中的每個元素都會進入函式

d) reduce

i. 需引入functions

ii. 連續計算,連續呼叫函式;

e) fileter(函式或none,數列)

i. 過濾器:過濾元素

ii. 需要判斷元素true或者flase

六、 裝飾器(模式)

a) @裝飾器名

C Linux之程序間通訊小結 待完善

此博文,待日後完善 程序通訊方式 1.管道通訊 匿名管道 命名管道 2.訊息佇列 3.共享記憶體 4.訊號量 1.管道通訊 無名管道用於具有親緣關係程序間的通訊 管道是半雙工的,資料只能單向流動 雙方通訊需建立兩個管道 管道只能用於父子程序或兄弟程序之間 管道對於管道兩端的程序而言就是乙個檔案,並單...

ACM課程學習總結自製目錄(待完善)

數論 一.第一周 遞迴演算法 二.第二週 貪心演算法 三.第三週 貪心做題感悟 四.第四周動態規劃 學習感悟 1.動態規劃相關習題全部 2.本週疑難雜症 記憶化搜尋 矩陣模型 最長單調子串行 最長公共子串行 lcs 排列計數 牛跳躍問題 五.第五周動態規劃 學習感悟 本週疑難雜症 不嚴格遞增 走迷宮...

linux命令之壓縮與解壓zip(待完善)

語法 1 壓縮 zip r zip檔名稱 要壓縮檔案的路徑 例 zip r a.zip usr local a 把 usr local下的a檔案壓縮成名稱為a.zip的檔案,a.zip儲存的路徑是執行壓縮命令的路徑 2 解壓zip檔案 unzip 要解壓的zip檔案的路徑 例 unzip usr l...