原创 狄克斯特拉算法

1、引入 上篇博文中講述了廣度優先搜索的算法,主要解決是否存在A->B和A->B路徑最短的問題。廣度優先搜索僅僅是解決了圖邊數最少的路徑,假如邊上附有權值,要找出最快的路徑,那此時可使用狄克斯特拉算法。 2、狄克斯特拉算法 關鍵理

原创 Python中協程

1、簡單理解 協程其實就是微線程,針對耗時操作,高效利用CPU。完成多任務操作,一般用於耗時操作:網絡請求 網絡下載(爬蟲) 文件讀寫 阻塞等。進程、線程、協程大致是一個"進程 > 線程 > 協程"關係。 2、生成器->協程 i

原创 Python中多繼承 & 類的搜索順序 & 多態

1、多繼承 Python中的多繼承跟java中的多繼承不一樣。Python中多繼承可以繼承多個基類。個人看法:Java多繼承類似傳統的繁殖模式(單個基類),Python符合現代的繁殖模式(基因工程,存在多個基類)。 示例: cla

原创 Python中has a與is a

可參考鏈接:is-a和has-a的區別 1、has a 關係 has a :一個類中使用了另外一種自定義的類型 類型: 系統類型 str、 int、 float、 list 、dict 、 tuple、 set

原创 Python中匿名函數及結合內置函數的應用

1、匿名函數 作用:簡化函數定義。 格式:lambda 參數1,參數2:運算 實例: # 1.簡單例子 s = lambda a,b: a+b print(s(1,2)) #輸出結果爲:3 # 2.匿名函數作爲參數 def fu

原创 Python中文件操作

1、文件類型 純文本文件:只有文字。 對應open函數model參數爲t。 純文本:圖片、音樂、電影等。對應open函數model參數爲b。 2、文件的讀取 #文件的讀取 stream = open('aa.txt','rt'

原创 Python中集合推導式 & 字典推導式

集合推導式和字典推導式類似列表推導式,首先可以參考Python中列表推導式 集合推導式,在列表推導式的基礎上添加了一個去重功能。 #集合推導式: {} 類似列表,在列表推導式的基礎上添加了一個去除重複項 list1 =

原创 Python中裝飾器

1、簡單定義 裝飾器:允許向一個現有的對象添加新的功能,同時又不改變其結構。(遵循開放封閉原則) 特點:只要使用裝飾器,就是拿函數地址作爲參數。並且要有閉包的特點。 2、單層裝飾函數(不帶參數) #定義一個裝飾器 def deco

原创 複製文件夾(python中os模塊應用)

1、文件夾中不含文件夾 import os #一個文件裏面含多個文件(不含文件夾) src_path = r'c:\p1' target_path = r'c:\p2' #封裝成函數 def copy(src,target):

原创 Python中異常機制

1、語法錯誤和異常 語法錯誤:寫的時候發現問題 異常:運行的時候發生錯誤 示例: #異常 def chu(a,b): sum = a/b return sum print(chu(1,0)) #ZeroDivisionEr

原创 Python中集合的用法

1、簡單定義 關鍵字:set 特點:元素無序、不重複(重點在不重複) 集合聲明: # 第一種 s1 = set() #第二種 s1 = {} #可以是字典,也可以是集合 應用:如何將一個列表快速去重 list1

原创 Python中內部函數 & 閉包

1、內部函數 def func(): # 聲明變量 n = 100 list1 = [1,2,3,4] #聲明內部函數 def inner_fnc(): #對列表list1裏

原创 Python中可變與不可變類型

不可變類型:int 、str 、float 、元組 a = 1 print(id(a)) a = 2 print(id(a)) #兩次刪除的結果不一樣 注: 由於兩地址不一樣,則表示不在原地址上修改,而是開闢了新空間。 可變類型

原创 Python中元組的用法

1、元組簡單定義 類似列表,當成容器使用 定義的符號爲:() 元組中內容不可修改(不可增、刪、改) 關鍵字爲:tuple 需要注意:當元組只有一個元素時,需要在此元素後加上逗號才爲元組數據類型。 t1 = ()

原创 Python的字符串常用內置函數

1、何謂字符串內建函數 只要創建了字符串,就默認可以調用內建函數(系統準備的一些函數)。 2、與大小寫相關 主要的函數有capitalize() 、title() 、upper() 、lower()等。 capitalize(