目錄
一、 Python安裝與運行 3
1、python安裝 3
2、 集成開發環境pycharm安裝 3
二、 變數與物件 3
1、 常見資料-數字 3
2、 數字的運算 4
3、 Python語法主要點 4
三、 字串、串列、元組 5
1、 字串 5
2、 串列 5
3、 元組 5
4、 變數 6
5、 序列sequence 6
四、 布爾運算式和條件判斷 6
1、 布爾運算式 6
2、 條件判斷 7
五、 函式、物件的方法 7
1、 流程控制 7
2、 函式 7
3、 函式的拓展 8
4、 物件的方法 9
5、 查看檔案 9
六、 字串的格式化 10
1、 % 方法 10
2、 format方法 10
3、 f’’方法 10
七、 檔案的讀寫 10
1、 檔案的打開 10
2、 檔案的讀寫 11
八、 回圈嵌套和演算法 11
1、 while回圈 11
2、 for回圈 12
3、 Break 12
4、 Continue 12
5、 注釋 12
6、 回圈嵌套 12
7、 冒泡排序 13
九、 字典 13
1、 字典的定義 13
2、 字典的使用 13
3、 字典的遍歷 14
十、 模塊與包 14
1、 模塊的概念 14
2、 模塊的使用 14
3、 聯合使用 14
15
十一、 面向物件 15
1、 定義 15
2、 實體化 15
3、 方法 15
十二、 例外 16
1、 例外 16
2、例外發生 16
十三、 字符編碼 16
1、 字符編碼 16
2、 Python對中文的處理 17
十四、 外部程式呼叫 19
1、 Windows命令列打開程式 19
2、 Python呼叫外部程式 19
十五、 裝飾器 20
1、裝飾器的概念 20
2、范例 20
十六、 多執行緒 21
1、 執行緒的概念 21
一、Python安裝與運行
1、python安裝
·python官網: https://www.python.org
·點擊Downloads--找到Python3.6以上版本任一行并點擊Download--點擊Windows x86 executable installer
·安裝時要勾選add path選項
2、集成開發環境pycharm安裝
·下載地址: https://www.jetbrains.com/pycharm/download
·安裝時選擇勾選 64-bit launcher 不要勾選 .py
二、變數與物件
1、常見資料-數字
·整數
·Python語言里一切資料都是物件
·1,2,3
·-1,-2133
·Python 2 int 和long(長整數)兩種型別
·范圍:32bit 64bit
·Python 3 中只有int 沒有long
·浮點數float
·3.14 3.0 -3.2
·精度限制
·type()可以獲取資料的型別:print(type(100))
·id():存盤地址
2、數字的運算
·加法
·運算子號:+
·減法
·運算子號:-
·乘法
·運算子號:*
·除法
·取商
·Python2 9/2=2
·Python3 9/4=2.25
·Python 9//4=2
·取余數 Python2和2一樣
·9%4=1
·次方
·運算子號:**
·混合運算:有括號先算括號,后面乘除,再加減
3、Python語法主要點
·Python第一行代碼前面要頂格寫
·Python是通過縮進區別代碼塊
·代碼建議縮進4個空格(一個TAB鍵)[規范]
三、字串、串列、元組
1、字串
·語法:’ ’ “ ” ‘’’ ‘’’ “”” “””
·三引號可以做多行注釋
·單行注釋/取消注釋: # 或 crtl+/
·class str型別
·字串里面包含引號字符:”name is ‘tom’ ”
·字串不能改變元素的值
·字串是一種sequence型別,有下標
·由一個個元素組成
·每個元素是一個字符
·切片
·注意事項:
·切片操作對被切物件不影響
·被切物件是什么,切完后物件型別不改變
·正負下標都可以切片
·切片的核心:下標
·取中間段:
·str1[start:end],從start開始,到end結束,但不包括end
·等價于str1[start:start+切的內容長度]
·取前面一段:
·str1[:end]從第一個字符開始,到end位置結束,但不包括end
·取后面一段:
·str1[start:]從start開始,到字串結束
·正負下標切片的選擇
2、串列
·定義:[] list
·串列也是一種sequence型別
·可以存盤任何型別的資料,每個元素是任意型別
·下標
·切片
·串列可以改變內容(值/元素的個數)
3、元組
·定義:() tuple (1,)
·元組也是一種sequence型別
·下標
·切片
·元組的值是不能改變的(內容和元素的數量)
·可以存盤任意型別
·冒泡排序不能用元組,串列卻可以
4、變數
·變數可以改變
·變數命名
·數字不能打頭
·組成元素:字母、數字、下劃線(_)
·不建議用中文命名變數
·不用關鍵字:有特殊用途
·內置函式名不能使用:若使用該函式將失去作用
·沒有任何變數參考的物件,會被Python解釋器定期清除
·變數的賦值:
·a=a+1或者a+=1
5、序列sequence
·由多個元素組成
·有編號:下標index
·正下標:從左到右 0 1 2
·負下標:從右到左 -3 -2 -1
·超出長度報越界
四、布爾運算式和條件判斷
1、布爾運算式
·布爾型別(bool)
·True
·False
·布爾運算式
·關系運算子:
· > ; < ; == ; != ;>= ;<= ;==
·= 為賦值 ; == 為關系等價
·全部都是英文符號
·數值的比較
·字串的比較
·比較的不是字串的長度(len())
·比ASCII值(十進制) a 97 A 65
·從第一個元素依次對比
·==比較的是值
2、條件判斷
·條件組合-邏輯關系
·且 and a and b
·如果 a==True b要進行判斷,只有a和b同時為T其結果才為T
·如果 a==False b不需要判斷,結果為F
·或 or a or b
·如果a==True b不需要判斷
·如果a==False b要判斷
·其中一個為T,結果就 為T
·不/非 not
·not True 等價F
·優先級: not > and > or ()的優先級更高
五、函式、物件的方法
1、流程控制
·順序結構:依次執行
·條件判斷--選擇結構--選擇分支結構
·if
·if else
·if elif elif else
·else可以預設
·if嵌套
·if后面只有不是:0(數值),字串’’,串列[],元組(),都是為True
·回圈:while for
·pass 空陳述句:避免語法保存
2、函式
·概念:封裝一段代碼
·定義:def func():
·代碼不重復
·修改方便
·函式的效果類似變數
·變數:一個物件的名字
·函式:一段代碼的名字
·函式在呼叫的時候才能執行函式體里面的代碼
·函式的定義一定要在函式的呼叫之前
·type(func)--<class ‘function’>
·None:函式無回傳值 沒有return
·def func(a,b) a,b為必填形參
·形參:形式主義
·實參:實際運行 在函式呼叫的時候
·在pycharm中:如果形參被使用,那么是黑色,否則是灰色
·func(a=1,2)函式的錯誤呼叫
·只要有 變數=值。后面的引數一定要保持隊形
·return a+b 回傳值
·可以更任意型別
3、函式的拓展
·函式的作用域
·全域變數:在函式外部
·區域變數
·在函式的內部,生命周期只有在函式內部
·全域變數在函式內部可以被參考
·函式內部修改全域變數 global x
·可預設引數 def func(a,b=0):
·形參變數 = 值:b=0是默認引數
·b不傳時默認為0
·若傳,b=實參
·在一定程度上可以方便程式員呼叫,少給引數
·可預設引數定義的時候一定在必填引數后面
·可變數量引數(*)
·數量可變
·提升函式的擴展性
·在形參變數前面加一個*
def calc(*numbers):
Print(trpe(numbers)) tuple元組
·如果傳入的是一個元組/串列 ,在其前面加*
·關鍵字可變數量引數(**)
·有關鍵字
·可變數量
·定義:**arg
·print(type(arg)) <class ‘dict’>
·鍵值對
·傳入值:變數=值
·如果傳入的是字典:**dict1
·def func(a,b,c=0,*arg,**kw):
4、物件的方法
·字串str
·count 計算字串中包含的多少個指定的子字串
·endswith 檢查字串是否以指定的字串結尾
·startswith 檢查字串是否以指定的字串開頭
·find 回傳指定的字串在字串中出現的位置
·如果查找的元素有多個,只回傳第一個元素的下標
·可以指定開始查找的位置 find(‘’,3)
·isalpha 檢查字串中是否都是字母
·isdigit 檢查字串中是否都是數字
·str.join 將sequence型別的引數的元素字串合并到一個字串
·split 將字串分割成幾個子字串,引數為分隔符,回傳結果存放在list中
·lower 將字串里面的大寫字母全部轉換成小寫字母
·upper 將字串里面的小寫字母全部轉換成大寫字母
·replace 替換字串里面指定的子字串,全部替換
·strip 將字串前置空格和后置空格洗掉,中間的不會被去掉
·串列list
·append 在串列的尾部添加元素
·insert 給串列指定位置插入一個元素
·insert(1,100) 1為插入的位置的下標,100為插入的值
·del 洗掉串列元素,串列名[下標] del[2]
·pop 在洗掉元素的同時,會回傳元素的值,操作下標
·remove 根據值洗掉,如果串列中有多個相同元素,只會刪第一個,操作元素
·三種洗掉方法,remove最慢
·clear
·reverse 將串列里的順序翻轉
5、查看檔案
·谷歌、百度
·已安裝的幫助手冊:Python 3.6 Manuals(32-bit)
六、字串的格式化
1、% 方法
·傳入多個值 元組
·值得個數要一致
·%s 字串型別
·%d 傳整數,填坑的時候不能是‘abc’型別的字串
·%f 浮點數,默認6位小數 %.2 f --保留小數點后2位
·%x 十六進制 0-9 A-F 0x開頭是16進制
·指定輸出長度
·左對齊:print(‘%-10d’%56)
·右對齊:print(‘%10d’%56)
·‘%5.3f’ 3代表小數的長度,5代表整個數的長度(包括小數點)
2、format方法
·str1.format()
·{} 一個位置(坑),一個format(值)
·三種使用方法:format(是個元組)
·順序填坑
·下標填坑
·變數填坑
·format的長度:
·左對齊:{:<10}
·右對齊:{:>10}
·中間對齊:{:*^10}
·%等價于{:}
3、f’’方法
·類似format方法
七、檔案的讀寫
1、檔案的打開
·open(路徑)
·fileDir =’g:/py.txt’
·fileDir = r’g:\py.txt’
·fileDir = ‘g:\\py.txt’
·路徑要正確,格式要帶全(.txt)
·open的引數 open(fileDir, ’r’ )
·r:只讀模式,可預設
·路徑
·絕對路徑:帶盤符C、G
·相對路徑:
·當前目錄 ./
·上一層目錄 .. ../
·tell() 獲取檔案指標位置
·with open(fileDir) as f:
·可以操作多個檔案,會自動執行fo.close()
2、檔案的讀寫
·fo.read(數量)
·回傳str型別
·fo.read() 讀取所有
·檔案內部的換行符是2個長度(windows)
·fo.close()關閉檔案
·移動檔案指標位置:fo.seek(長度)
·0模式 移動到初始位置:fo.seek(0)
·1模式 從當前位置開始算,一定要是’br’
·seek(長度,模式)
·讀一行:fo.readline() 回傳str
·讀所有行:fo.readlines() 回傳list
·fo.read().splitlines() 獲取所有行的同時,去掉所有的\n
·寫模式 ‘w’
·如果該檔案存在,所有內容被清空
·如果該檔案不存在,創建該檔案
·fo.write(‘123’),只是保存在記憶體里
·fo.flush() /fo.close()從記憶體寫到磁盤
·a 追加模式,在末尾接著寫
八、回圈嵌套和演算法
1、while回圈
·格式:while 條件:
回圈陳述句(回圈體)
·while True:死回圈
·用處:cmd Python shell
·不結合break容易掛在死回圈里面
·求和/資料處理
2、for回圈
·for name in alist : name依次去取(遍歷)alist里面的每一個元素
·少了一個回圈變數(遞增變數)
·for one in range(0,101) 左含右不含
3、Break
·跳出本層回圈
·跟if配合使用,滿足條件退出本層回圈
4、Continue
·跳出本次回圈
·本次回圈continue后面的代碼不會執行
·繼續執行下一次回圈
5、注釋
·#
·ctrl + /
·三引號
·函式里的特殊注釋
doc string
func._doc_
6、回圈嵌套
·for i in range(1,10):
for j in range(1,i+1):
print(‘{}*{}={}\t’.format(i,j,i*j),end=’’)
print()
·串列生成式
·aftertax=[int(one*0.9) for one in beforetax]
·one*0.9 回圈體內容
·for one in beforetax 回圈體
·aftertax=[int(one*0.9) for one in beforetax if one >=100]
·if過濾
7、冒泡排序
·思路:找出最大的和最小的交換位置
·舉例:
alist = [8,2,0,5]
for i in range(0,len(alist)-1):
for j in range(0,len(alist)-i):
if alist[j] > alist[j+1]:
alist[j],alist[j+1] = alist[j+1],alist[j]
print(alist)
·
def bubble(alist):
for j in range(len(alist)-1,0,-1):
for i in range(0,j):
if alist[i] > alist[i+1]:
alist[i],alist[i+1]=alist[i+1],alist[i]
return alist
九、字典
1、字典的定義
·{} <class 'dict'>
·dict2 = {鍵1:值,鍵2:值}
·鍵值成對出現
·查找元素--通過鍵來查找,----不通過下標(沒有下標這個概念)
·字典里沒有同名的key--就算有--后面的相同的鍵對應的值會覆寫前面的
2、字典的使用
·增加元素:從字典后面依次增加
·增加字典元素:dict2['新鍵名'] = 對應的值
·如果該字典里面沒有這個key,那么列印這個key對應的值會報錯——keyerror
·字典可以存盤任意型別
·關于key的型別:int、float、str 、tuple、不能是:list 、dict
·關于value的型別:任意型別
·hash:散串列---不能改變的型別
·注意事項:對鍵值操作不要刻意改變key
·判斷字典里面有沒有這個key ---- key in dict1
·關于字典的洗掉元素:
·字典里面的key 相當于---list 里面的下標
·del dict2['name']
·value = dict2.pop('name')
3、字典的遍歷
·for one in dict1-------one依次去key---列印值---dict[one]
·students.items()---遍歷字典的鍵值對[(鍵1,值1),(鍵2,值2)]
·獲取字典所有的key---students.keys()---回傳串列
·獲取字典里所有的值--students.values()---回傳串列
·dict.update
十、模塊與包
1、模塊的概念
·一般的行數--500-800
·模塊--- xxx.py
2、模塊的使用
·同一個包里面的模塊呼叫
·import 模塊名---執行模塊
·函式/變數的呼叫---模塊名.函式
· from 模塊名 import 函式/變數
·import 模塊名 ===== from 模塊名 import *
·from blib import sumFun as blibF
1-as 取別名 好處:避免沖突
·不同包呼叫模塊
· import 包名.模塊名
·只要去匯入這個包,對應的__init__.py會被執行
3、聯合使用
·模塊的搜索規則:
·import sys ---sys.path--解釋器加載庫的路徑
·增加模塊路徑
· cmd---set PYTHONPATH=F:\;G:\--最終到sys.path
·sys.path.append('路徑')---臨時增加
·pip下載的第三方庫--lib 或者 lib/site-packages目錄
·pip 安裝源---國外
·sys.path--- cmd --set PYTHONPATH 環境變數
十一、面向物件
1、定義
· class 類名(首字母大寫--規范)
·class Tiger:
2、實體化
·t1 = Tiger()------t1 就是老虎類的一個實體
·類里面的變數----屬性
·類里面的函式----方法
·靜態屬性==類屬性
·這個屬性屬于整個類--所有實體化都是一樣的
·實體化屬性:
·這個屬性--屬于某一個實體的---每一個實體都會不一樣
· def __init__(self):--初始化方法==構造方法
·在創建實體的時候,就賦予了該實體的一些實體屬性 def __init__(self,weight):
·self---t1、t2 -----實體物件的本身
·self 它只是代言詞--不是關鍵字---- 可以用其他字符代替 --ok 不要去代替
3、方法
·函式
·行為
·實體方法:每個具體實體相關的方法
·初始化方法就是一個實體方法
·靜態方法:共有的方法,與每個具體實體無關--類方法
·@staticmethod 修飾---只能修飾緊跟的一個
·物件的組合
·物件的繼承:
·class SouTiger(Tiger):#華南虎-----定義
·可以多繼承
·方法的重寫
·super(SouTiger,s1).roar()#呼叫父類的方法
· super(子類名,子類實體名).方法
十二、例外
1、例外
·解釋性語言---沒有報錯執行--到報錯那行代碼,之后的代碼不執行
·try…except捕獲例外
·捕獲所有例外--
·try 可能出現例外的代碼塊 except Exception as e:
·=== try: except : ----traceback.format_exc()--列印詳細資訊
·函式呼叫堆疊
2、例外發生
·解釋器中斷當前代碼的執行, 并拋出一個例外物件
·并在函式的呼叫堆疊從下到上,層層的尋找捕獲處理該例外的代碼
·如果能找到就執行對應的代碼
·如果不能則會一直找到最外層的函式結束本次執行
十三、字符編碼
1、字符編碼
·字符集(character set)
·字符集是用來表示語言符號的數字的集合
·這只是數字(code point),不涉及用什么方法來存盤數字
·常見的字符集
·ASCII字符集
·Unicode
·gb2312、gdk、gb 18030
·字符編碼和解碼原理圖
·常見的字符編碼方式
·ASCII
·UTF-8
·UCS2 UCS4(UTF-16 UTF-32)
·gb2312、gdk、gb18030(Extended Unix Code - EUC)
2、Python對中文的處理
·字形和字體
·字體檔案
·顯示utf8編碼字符的程序
·文字以某種編碼保存在檔案中
·程式讀取檔案中的文字并且解碼到Unicode
·程式呼叫作業系統Windows服務,安裝Unicode數字編碼在字體檔案中查找字體影像
·畫到視窗上
·代碼編輯器
·終端輸入中文
·input()用戶輸入中文
·Input函式自動根據終端輸入的字符的編碼方式
·sys.stdin.encoding
·打開中文檔案名
·Windows目前最流行的ntfs檔案系統而言
·檔案名都是用utf-16(有的檔案說是Unicode)編碼
·with open(‘中文.txt’,encoding=’utf8’) as f:
Print(f.read())
十四、外部程式呼叫
1、Windows命令列打開程式
·使用命令列打開記事本
·使用命令列打開QQ
·使用命令列關閉程式
·
2、Python呼叫外部程式
·兩種方法
·os.system
·打開畫圖軟體
·回傳值
·subprocess
十五、裝飾器
1、裝飾器的概念
·定義類的靜態方法時,就使用了裝飾器
·裝飾器的特點是用一個@開頭的字串
·在我們閱讀別人的代碼時,會經常碰到裝飾器
·裝飾器通常用來裝飾函式
·裝飾器主要用來給函式增加一點功能
·一般裝飾器本身也是一個函式(callable)
·我們可以想象成它包含了被裝飾的函式
2、范例
·回傳字串的函式
·我們需要回傳值多兩個感嘆號
十六、多執行緒
1、執行緒的概念
·行程的概念:運行著的程式
·例子
·執行緒庫
·代碼通過系統呼叫,請求OS分配一個新的執行緒
·Python里面
·thead:比較底層
·threading:是thread模塊的擴展,提供了很多執行緒同步功能,使用起來更加強大方便
·都可以用來創建和管理執行緒
·多執行緒的概念
·代碼通過系統呼叫,請求OS分配一個新的執行緒
·與原來的執行緒并行的執行一段代碼
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/50277.html
標籤:非技術區
