學(xué)習(xí)了兩天的python入門蜘渣,把筆記干貨分享給大家~
簡介
面向?qū)ο蟆⒔忉屝偷木幊陶Z言类少。python3.x各方面更成熟昭雌,將來肯定是主流,python2.x處理速度更快點(diǎn)奕枢。python3.x簡潔娄昆、易學(xué)、幾乎全能缝彬、支持面向?qū)ο竺妊妫絹碓蕉喙居胮ython3.x。
建議學(xué)python3.x
能做什么
數(shù)據(jù)分析與挖掘谷浅、黑客逆向編成扒俯、機(jī)器學(xué)習(xí)、網(wǎng)絡(luò)爬蟲一疯、開發(fā)游戲撼玄、自動化運(yùn)維、開發(fā)WEB項(xiàng)目墩邀。
python 安裝
python3.5.2 64位 穩(wěn)定
官網(wǎng) www.python.org(搜狗瀏覽器訪問掌猛,download windows )
管理員身份運(yùn)行
customise
勾選2、3 1隨便 最后兩個不勾
設(shè)置安裝盤
advanced options (選creat眉睹、add)
設(shè)置環(huán)境變量---> 告訴系統(tǒng)python安裝在什么地方了
(比較慢荔茬、)
python語法基礎(chǔ)
輸出
輸出hellow world
輸入IDLE---> python
print(“要輸出的內(nèi)容”)
shell一行一行執(zhí)行只盹。ctrl+N 多行執(zhí)行
后綴名.py
注釋
#注釋法
三引號注釋法---英文輸入法下兩端輸入三個單引號或者多引號(前后要對應(yīng))
標(biāo)識符
命名規(guī)則:第一個字符為字母或下劃線;除了第一個字的其他字符可以是字母兔院、下劃線或數(shù)字。如_jh3ih/j_3hhf
變量
和標(biāo)識符命名規(guī)則相同站削。
賦值=從右往左看
數(shù)據(jù)類型
默認(rèn)數(shù)據(jù)類型:數(shù)坊萝、
字符串(a='abc'/a2="abc"/a3='''abc''')、
列表(list)---存儲多個元素[,隔開许起,從0開始編號]列表內(nèi)元素可以賦值
十偶、元祖(tuple)---()元祖內(nèi)不可以重新賦值,取值和列表方式一樣园细、
集合(set)---=set{"字符串"}輸出{'','',....}---去重惦积、集合運(yùn)算
字典(dictionary)---{鍵:值,鍵:值.....}---d={"abc":6,"q":"daa"}猛频。取值規(guī)則:字典名["對應(yīng)鍵名"]--d["q"]輸出daa
運(yùn)算符 +狮崩、-、*鹿寻、/睦柴、%≌毖基本的數(shù)學(xué)運(yùn)算符的優(yōu)先級規(guī)律在python上基本使用坦敌。實(shí)在不清楚優(yōu)先級規(guī)律,為需要先執(zhí)行的運(yùn)算加上括號痢法。+號可以進(jìn)行字符串的連接---j="da",k="abc"+j--> k="abcda"
縮進(jìn)
同一層次的代碼狱窘,處于同一個縮進(jìn)幅度上,下一層次的代碼财搁,需要相對于上一層縮進(jìn)蘸炸,使用tab縮進(jìn)。
python控制流
三種控制流概述
順序結(jié)構(gòu)
條件分支結(jié)構(gòu) if():/ elif():---else if:()/else:
循環(huán)結(jié)構(gòu)
while --while():-->
for
便利列表--a=["qF","D","fd","d"] for i in a:-->
進(jìn)行常規(guī)循環(huán)--for i in range(0,10)-->
中斷結(jié)構(gòu)
break
全部直接退出妇拯,整個循環(huán)中斷
continue
中斷一次循環(huán)幻馁,繼續(xù)下一次循環(huán)
乘法口訣
for i in range(1,10) :
? ? for j in range(1,i+1):
? ? print(str(i)+"*"+str(j)+"="+str(i*j),end="? ")
print()
end代表不換行輸出、注意python中縮進(jìn)的含義越锈,相同縮進(jìn)代表相同層級
作業(yè):逆向輸出乘法口訣(9-->1)
#逆向輸出乘法口訣
for i in range(1,10):
? ? for j in range(1,11-i):
? ? print(str(10-i)+"*"+str(11-j-i)+"="+str((10-i)*(11-j-i)),end="? ")
print()
for i in range(9,0,-1):
? ? for j in range(i,0,-1):
? ? print(str(i)+"*"+str(j)+"="+str(i*j),end="? ")
print()
函數(shù)
函數(shù)的本質(zhì)是功能的封裝--def 函數(shù)名(參數(shù))
局部變量與全局變量
作用域從變量開始到程序的最末的變量叫做全局變量仗嗦,作用域只在局部的變量叫做局部分量。
函數(shù)內(nèi)部定義的變量是局部變量甘凭,不能再外部輸出或調(diào)用稀拐。
函數(shù)參數(shù)的使用
函數(shù)定義的格式--def 函數(shù)名(參數(shù))
def abc(): print("agg")
調(diào)用----輸入 函數(shù)名()
參數(shù):與外界溝通的接口
形參
函數(shù)定義的時候使用形參
實(shí)參
函數(shù)調(diào)用的時候用實(shí)參
python模塊實(shí)戰(zhàn)
什么是python模塊
為了讓python程序?qū)崿F(xiàn)更方便,可以根據(jù)需求類別將一些廠檢單功能(函數(shù))組合在一起丹弱,形成模塊德撬。以后要實(shí)現(xiàn)這一類功能的時候铲咨,直接導(dǎo)入該模塊即可,模塊里面的函數(shù)叫做模塊的方法蜓洪。系統(tǒng)自帶的模塊在安裝目錄的lib目錄中纤勒。
模塊內(nèi)的函數(shù)叫做模塊的方法。
模塊的導(dǎo)入
import模塊名
import cgi
cgi.closelog()
from...import...
from cgi import closelog
第三方模塊的安裝
模塊的類別
自帶模塊
第三方模塊(較常用)
pip方式
cmd---pip---網(wǎng)絡(luò)安裝
whl下載安裝
下載lfd python---sp35 amd64--下載另存d盤爬蟲--cmd--d:-cd 文件夾---pip install+下載文件全名(包括后綴)
直接復(fù)制
復(fù)制別人的安裝文件(電腦和python型號相同)html文件
anaconda
自定義模塊
在lib目錄下新建文件--
python文件操作
文件操作概述
直接使用對文件進(jìn)行打開隆檀、關(guān)閉摇天、讀取、寫入等操作恐仑,使用python可以自動對程序進(jìn)行處理泉坐,比如合并多個Excel表格文件的內(nèi)容。
文件操作實(shí)戰(zhàn)
文件打開
操作txt文件---新建txt文檔---寫入內(nèi)容--如何用python讀取其中的內(nèi)容--打開--open(文件地址裳仆,操作形式)--fh=open("D:/sdags/sgas","r")或fh=open("D:\sdags\sgas","r")---data=fh.read()--data--全部內(nèi)容--fh.readline()---一行一行地讀
操作形式:w-寫腕让、r-讀取、b-二進(jìn)制歧斟、a追加
文件關(guān)閉
fh.close()打開了用完之后一定要關(guān)閉文件
文件寫入(w/a+)
data="dhaghhh"--open("文件地址"纯丸,"w")--fh2.write(data)--必須要先關(guān)閉寫入文件內(nèi)容才會在文件中保存--fh2.close()--多次寫入只需一次文件關(guān)閉(如果用的是w-非追加寫入的話)
w寫入模式下每次關(guān)閉都會對內(nèi)容進(jìn)行更新替換,如果想每次寫完不替換原先的內(nèi)容构捡,可以用a+追加寫入模式液南。
python異常處理
概述
python程序在執(zhí)行的時候,經(jīng)常會遇到異常勾徽,如果中間異常不處理滑凉,經(jīng)常會導(dǎo)致程序崩潰。比如后面我們寫爬蟲的時候喘帚,如果不進(jìn)行異常處理畅姊,很可能蟲爬了一半,直接崩潰了吹由。
目的是寫程序的過程中遇到異橙粑矗可以跳過,不至于程序崩潰倾鲫,增強(qiáng)程序的生命力粗合。
異常處理實(shí)戰(zhàn)
在python中創(chuàng)建一個try文件---ctrl+n(new)--ctrl-a--寫一個程---制造異常---
異常處理格式
try:
? ? 程序
except Exception as 異常名稱:
? ? 異常處理部分
注意: try和except要對應(yīng),且縮進(jìn)量保持一致乌昔;try和循環(huán)的嵌套關(guān)系變化可能帶來不同的處理結(jié)果隙疚。
python面向?qū)ο缶幊?/p>
概述
面向?qū)ο缶幊碳碠OP編程,區(qū)別于面向過程編程磕道,面向?qū)ο缶幊瘫容^適合開發(fā)大項(xiàng)目供屉,會以更接近人類的思維角度去寫程序。
類和對象
類:具有某種特征的事物的集合(群體)
對象:群體(類)里面的個體
類是抽象的,對象是具體的---類的實(shí)例化
創(chuàng)造一個類:
class 類名:
? ? 類里面的內(nèi)容
...
? ?
class cl1:
? ? pass
...
實(shí)例化一個類
a=cl1()
...
a即類(cl1)內(nèi)對象
構(gòu)造函數(shù)
類在實(shí)例化時自動首先觸發(fā)的函數(shù):init(self,參數(shù))--雙下劃綫伶丐,在類中的方法中必須加上self參數(shù)悼做。
class cl2
? ? def__init__(self):
? ? ? ? print("hellow,welcome")
構(gòu)造函數(shù)作用是初始化
給類加上參數(shù)---給構(gòu)造方法加上參數(shù)
class cl3
? ? def __init__(self,name,job):
? ? ? ? print("my name is "+name+"my job is"+job)
輸入c=cl3("ag","aqw")--輸出my name is ag my job is aqw
屬性與方法
屬性: 靜態(tài)的特征。如頭發(fā)哗魂、手臂等
方法: 動態(tài)的特征肛走。如唱歌、寫字等
類中屬性的定義和調(diào)用:self.屬性名
class cl4:
? ? def __init__(self,name,job):
? ? self.myname=name
? ? self.myjob=job----定義類的屬性
輸入c=cl4("ag","aqw")--輸入myname--輸出ag--輸入myjob--輸出aqw--直接調(diào)用類的屬性
方法:類里面的函數(shù)def 方法名(self,參數(shù))
class cl5:
? ? def myfound(self):
? ? print("aga")
實(shí)例化時不需要添加參數(shù)录别,調(diào)用的時候需要添加
class cl6:
? ? def myfound1(self,name):
? ? print("hellow"+" "+name)
調(diào)用類里面的方法:
c=cl6()------實(shí)例化
c.myfound("liuyong")---調(diào)用函數(shù)myfound()并加參數(shù)
輸出hellow liuyong
class cl7:
? ? def __init__(self,name):
? ? self.myname=name
? ? def myfound1(self):
? ? print("hellow"+" "+myname)
調(diào)用類里面的方法:
c=cl7("liuyong")------實(shí)例化即添加參數(shù)
c.myfound()---調(diào)用函數(shù)myfound()并加參數(shù)
繼承與重載
繼承: 把某一個或多個類(基類)的特征拿過來(單繼承羹与、多繼承)
重載: 把子類(派生類)里面對繼承過來的特征重新定義
父類: 基類
子類: 派生類
案例講解
某一個家庭有父親、母親庶灿、兒子、女兒吃衅,父親可以說話往踢,母親可以寫字,大兒子繼承了父親寫字的能力徘层,女兒同時繼承了父母親峻呕、并且有能力聽東西,小兒子繼承了父親趣效,但是優(yōu)化(減弱)了父親說話的能力瘦癌。
父親類(基類):
class father():
? ? def speak(self):
? ? ? ? print("I can speak")
單繼承類:class 子類(父類)
class son1(father):
? ? pass
執(zhí)行
s=son1()
s.speak()
---I can speak
母親類:
class mother()
? ? def write(self):
? ? ? ? print("I can write")
多繼承:
class daughter(father,mother):
? ? def listen(self):
? ? ? ? print("I can listen")
執(zhí)行
d=daughter()
d.speak()
---I can speak
d.write()
---I can write
d.listen()
---I can listen----多繼承不影響新功能
重寫(重載):
class son2(father):
? ? def speak(self):
? ? print("I can speak 2")
執(zhí)行
s=son2()
s.speak()
---I can speak2---重名覆蓋
作業(yè):
將多個Excel表格里面的內(nèi)容合并到一個文件中。
要點(diǎn):
使用第三方模塊操作跷敬,比如xlrd讯私、xlwt;
注意使用循環(huán)西傀;
一個Excel中有多個sheet,也需要合并斤寇。