python初學隨記

語言特點:開源、跨平臺,擴展性強、類庫多
主流開發工具:pycharm
學習版本:python3.6.5

基礎:
註釋用“#”
基本數據類型(4種):
整數 int
浮點數float
字符串str
布爾值bool (True、False)

序列(3種):
字符串
列表[1, 2, 3] 存儲的內容可以變更 增加append() 移除remove()
元組(“1”, “2”, “3”)存儲的內容不可以變更
序列的基本操作 成員關係in / not in 連接+ 重複* 切片[:]
瞭解方法: filter() list() len()

字典
{1:2, 2:3, 3:4}

分支
if 表達式:
xxx
elif 表達式:
xxx
else:
xxx
瞭解方法:input() 接受用戶輸入

循環
while 表達式:
循環內容
for 迭代變量 in 可迭代對象:
循環內容

break\continue
range(startNum,endNum)
time.sleep(1)

與操作:and
列表推導式: [i *i for i in range(1,11) if i%2 ==0]
字典推導式:{i : 0 for i in [1,2]}

文件操作
file1 = open(“a.txt”, “w/r”) 打開文件
file1.read() 輸入
file1.readLine() 輸入一行 readLines()逐行讀取
file1.seek() 讀取位置移動
file1.tell() 當前指針位置
file1.write(‘hello world’) 輸出
file1.close() 關閉文件

import datatime
datetime.datetime.now()

異常
try:
監控代碼
except Exception [reason]
異常處理
finally:
都會執行

函數
def 函數名(參數):
函數體
return 返回值
import re
re.findall(‘a’,“abc”)
關鍵字參數 print(“1111”, end = “a”)
可變長參數 def func(first, *other)

變量作用域:
默認同一個變量在函數外有一個作用域,在函數內有另一個作用域,互不干擾
要保持統一需要在函數內部聲明變量global var 變成全局變量,之後再去改變變量的值
迭代器方法 iter()、next()
生成器關鍵字: yield 運行到yield會暫停並且記錄當前值,在此運行會從記錄的值開始

lambda表達式
lambda 參數:返回值表達式

內建函數
filter(function,iterable) 過濾iterable中滿足條件function,可以用list()轉換結果
map(function,*iterable) 對iterable中的元素進行function操作,可以用list()轉換結果
reduce(function,sequence[, initial]) 對iterable中的元素 依次進行function操作
from functools import reduce
a = [1, 2, 3, 4, 5, 6, 7]
print(reduce(lambda x, y: x * y, a, 2))

zip(iter1 [,iter2 […]]) 對iter1進行合併

閉包:內部函數引用外部函數的變量
裝飾器: 內部函數引用外部函數的變量作爲函數調用
可以多層嵌套函數
上下文管理器:with

模塊導入方式:
import mode
import mode as m
from mode import func

編碼規範 PEP8, pycharm可以添加擴展工具Autopep8

類的定義
class 類名’()’:
def init (self):
xxxx
def print_desc(self, a, b)
self每個方法裏都要有,如果屬性不被外部訪問要使用用__開頭
pass 可以先不寫類的實現,同時不會報錯
isInstance(1,object) 判斷1是否是object的類型
with 語句會在初始時候調用函數的 enter(self)方法 結束會調用函數的__exit__()方法
累的繼承 class A(B)

多線程編程:
threading Queue
實現函數在線程裏調用:
t = threading.Thread(target = 方法名,args = (參數…))
t.start()
t.join() 在主線程之前調用
用自定義線程子類:
class myThread(threading.Thread):
def fun(self):

Python中常用的標準庫
re: 文字處理
time\datetime 日期類型
math\random 數字和數學類型
pathlib\os.path 文件和目錄訪問
tarfile 數據壓縮和歸檔
os\logging\argparse 通用操作系統
threading\queue 多線程
base64\json\urllib Internet數據處理工具
unitest 開發工具
timeit 調試工具
venv 軟件包發佈
main 運行服務
日期與時間庫 time datetime
數學相關庫 math random
文件夾操作庫 os pathlib

正則表達式:
t = re.compile(‘ca*t’) 匹配的字符
t.match(‘caaaaaat’) 要匹配的字符
t.search(‘caaaaaat’) 要搜索的字符
re.sub(‘被替換的c’,‘替換爲d’,‘原串’) 替換
. 匹配一個字符,可以…
^ 匹配開頭的字符
$ 匹配結尾的字符

  • 出現0次或者多次字符
    +出現1次或者多次字符
    ?出現0次或者1次
    {n} 出現n次
    {n,m} 出現n次到m次
    [] 匹配指定字符
    \d 匹配數字
    \D 非數字
    \s 空白字符
    () 分組
    | 左右
    ^¥空行
    .*? 不使用貪婪模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章