摘要:它是一門解析型的語言,何為解析型語言呢就是在運(yùn)行時(shí)通過解析器將源代碼一行行解析成機(jī)器碼。而像語言,等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進(jìn)制指令,生成一個(gè)可執(zhí)行的程序。
我從2021年6月13號(hào)寫下第一篇Python的系列專欄算起,陸續(xù)更新了二十七篇Python系列文章。在此感謝讀者朋友們的支持和閱讀,特別感謝一鍵三連的小伙伴。
本專欄起名【Python從入門到精通】,主要分為基礎(chǔ)知識(shí)和項(xiàng)目實(shí)戰(zhàn)兩個(gè)部分,目前基礎(chǔ)知識(shí)部分已經(jīng)完全介紹完畢。下一階段就是寫Python項(xiàng)目實(shí)戰(zhàn)以及爬蟲相關(guān)的知識(shí)點(diǎn)。
為了對(duì)前期學(xué)習(xí)的Python基礎(chǔ)知識(shí)做一個(gè)總結(jié)歸納,以幫助讀者朋友們更好的學(xué)習(xí)下一部分的實(shí)戰(zhàn)知識(shí)點(diǎn),故在此我寫下此文,共勉,同進(jìn)。
同時(shí)為了方便大家交流學(xué)習(xí),我這邊還建立了一個(gè)Python的學(xué)習(xí)群。群里都是一群熱愛學(xué)習(xí)的小伙伴,不乏一些牛逼的大佬。大佬帶飛,我相信進(jìn)入群里的小伙伴一定會(huì)走的更快,飛的更高。 歡迎掃碼進(jìn)群。
下面就通過一個(gè)思維導(dǎo)圖,展示本專欄Python基礎(chǔ)知識(shí)部分的總覽圖。
本專欄從零基礎(chǔ)出發(fā),從環(huán)境的搭建到高級(jí)知識(shí)點(diǎn)的學(xué)習(xí),一步步走來,相信各位讀者朋友們?cè)缫颜莆障嚓P(guān)的知識(shí)點(diǎn)。接下來就做一個(gè)詳細(xì)的回顧。
Python是一門開源免費(fèi)的,通用型的腳本編程語言。它需要在運(yùn)行時(shí)將代碼一行行解析成CPU能識(shí)別的機(jī)器碼。它是一門解析型的語言,何為解析型語言呢?就是在運(yùn)行時(shí)通過解析器將源代碼一行行解析成機(jī)器碼。而像C語言,C++等則是編譯型的語言,即通過編譯器將所有的源代碼一次性編譯成二進(jìn)制指令,生成一個(gè)可執(zhí)行的程序。解析型語言相對(duì)于編譯型語言的好處就是天然具有跨平臺(tái)的特點(diǎn),一次編碼,到處運(yùn)行。
python3
驗(yàn)證安裝的結(jié)果,如果出現(xiàn)如下結(jié)果就表明安裝Python編譯器安裝成功了。工欲善其事必先利其器,在實(shí)際開發(fā)中我們都是通過IDE(集成開發(fā)環(huán)境)來進(jìn)行編碼,為啥要使用IDE呢?這是因?yàn)镮DE集成了語言編輯器,自動(dòng)建立工具,除錯(cuò)器等等工具可以極大方便我們快速的進(jìn)行開發(fā)。打個(gè)比方 我們可以將集成開發(fā)環(huán)境想象成一個(gè)臺(tái)式機(jī)。雖然只需要主機(jī)就能運(yùn)行起來,但是,還是需要顯示器,鍵盤等才能用的爽。
PyCharm就是這樣一款讓人用的很爽的IDE開發(fā)工具。下面就簡(jiǎn)單介紹一下它的安裝過程
點(diǎn)擊鏈接 https://www.jetbrains.com/pycharm/download/
進(jìn)入下來頁面,PyCharm 有專業(yè)版和社區(qū)版。其中,專業(yè)版需要購買才能使用,而社區(qū)版是免費(fèi)的。社區(qū)版對(duì)于日常的Python開發(fā)完全夠用了。所以我們選擇PyCharm的社區(qū)版進(jìn)行下載安裝。點(diǎn)擊如下圖所示的按鈕進(jìn)行安裝包的下載。
安裝包下載好之后,我們雙擊安裝包即可進(jìn)行安裝,安裝過程比較簡(jiǎn)單,基本只需要安裝默認(rèn)的設(shè)置每一步點(diǎn)擊Next按鈕即可,不過當(dāng)出現(xiàn)下圖的窗口時(shí)需要設(shè)置一下。
設(shè)置好之后點(diǎn)擊 Next 進(jìn)入下一步的安裝,知道所有的安裝都完成。
這里使用只需要注意一點(diǎn),就是設(shè)置解釋器,默認(rèn)的話在Project Interpreter的選擇框中是提示的是 No interpreter,即沒有選中解釋器,所以,我們需要手動(dòng)添加。
所以需要點(diǎn)擊設(shè)置按鈕設(shè)置解釋器,這里選擇 Add Local 設(shè)置本地的解釋器。
打開解釋器的設(shè)置頁面之后,默認(rèn)選中的是Virtualenv Environment 這個(gè)tab頁,
這里L(fēng)ocation是用來設(shè)置項(xiàng)目的虛擬環(huán)境,具體可以參考pycharm的使用小結(jié),設(shè)置虛擬環(huán)境,更換鏡像源
Base interpreter 用來設(shè)置解釋器的路徑。
至此,開發(fā)Python的腳手架已經(jīng)弄好,接下來就是編碼了。
如下創(chuàng)建了一個(gè)名為demo_1.py的文件,然后在文件中寫入了如下幾行代碼
print("你好,世界")a = 120b = 230print(a + b)
運(yùn)行這些代碼只需要簡(jiǎn)單的右鍵選中 Run ‘demo_1’ 或者 Debug ‘demo_1’ ,這兩者的區(qū)別是Run demo_1是以普通模式運(yùn)行代碼,而 Debug ‘demo_1’ 是以調(diào)試模式運(yùn)行代碼。
運(yùn)行結(jié)果就是:
詳細(xì)內(nèi)容可以查看【Python從入門到精通】(二)怎么運(yùn)行Python呢?有哪些好的開發(fā)工具
首先介紹的是Python的注釋,Python的注釋分為兩種:?jiǎn)涡凶⑨尯投嘈凶⑨尅?/p>
#注釋內(nèi)容
從#號(hào)開始直到這行結(jié)束為止的所有內(nèi)容都是注釋。例如:# 這是單行注釋
"""三個(gè)連續(xù)的單引號(hào)的多行注釋注釋多行內(nèi)容"""
或者
"""三個(gè)連續(xù)的雙引號(hào)的多行注釋注釋多行內(nèi)容"""
多行注釋通常用來為Python文件、模塊、類或者函數(shù)等添加版權(quán)或者功能描述信息(即文檔注釋)
不同于其他編程語言(如Java,或者C)采用大括號(hào){}
分割代碼塊,Python采用代碼縮進(jìn)和冒號(hào) : 來區(qū)分代碼塊之間的層次。如下面的代碼所示:
a = -100 if a >= 0: print("輸出正數(shù)" + str(a)) print("測(cè)試")else: print("輸出負(fù)數(shù)" + str(a))
其中第一行代碼a = -100
和第二行代碼if a >= 0:
是在同一作用域(也就是作用范圍相同),所以這兩行代碼并排。而第三行代碼print("輸出正數(shù)" + str(a))
的作用范圍是在第二行代碼里面,所以需要縮進(jìn)。第五行代碼也是同理。第二行代碼通過冒號(hào)和第三行代碼的縮進(jìn)來區(qū)分這兩個(gè)代碼塊。
Python的縮進(jìn)量可以使用空格或者Tab鍵來實(shí)現(xiàn)縮進(jìn),通常情況下都是采用4個(gè)空格長(zhǎng)度作為一個(gè)縮進(jìn)量的。
這里需要注意的是同一個(gè)作用域的代碼的縮進(jìn)量要相同,不然會(huì)導(dǎo)致IndentationError異常錯(cuò)誤,提示縮進(jìn)量不對(duì),如下面代碼所示:第二行代碼print("輸出正數(shù)" + str(a))
縮進(jìn)了4個(gè)空格,而第三行代碼print("測(cè)試")
只縮進(jìn)了2個(gè)空格。
if a >= 0: print("輸出正數(shù)" + str(a)) print("測(cè)試")
在Python中,對(duì)于類定義,函數(shù)定義,流程控制語句就像前面的if a>=0:
,異常處理語句等,行尾的冒號(hào)和下一行縮進(jìn),表示下一個(gè)代碼塊的開始,而縮進(jìn)的結(jié)束則表示此代碼的結(jié)束。
詳細(xì)內(nèi)容可以查看【Python從入門到精通】(三)Python的編碼規(guī)范,標(biāo)識(shí)符知多少?
Python3中的整數(shù)是不分類型,也就是說沒有長(zhǎng)整數(shù)類型(Long)或者短整數(shù)類型(short)之分,它的取值范圍是是無限的,即不管多大或者多小的數(shù)字,Python都能輕松的應(yīng)對(duì)。如下就是兩個(gè)極大或者極小的整數(shù)。
>>> 100000-00000000000000000000000000000000000000001000000000000000000000000000000000000000000000>>> print(-1000000000000000000000000000000000000000000000)-1000000000000000000000000000000000000000000000
可以看出再大或者再小的數(shù)字都不會(huì)出現(xiàn)溢出的情況,這說明了Python對(duì)整數(shù)的處理能力非常強(qiáng)。
Python中可以用多種進(jìn)制的來表示整數(shù)。
# 二進(jìn)制a=0b1001print("a=",a)# 八進(jìn)制b=0o207print("b=",b)# 十六進(jìn)制c=0x45print("c=",c)
運(yùn)行結(jié)果是:
a= 9b= 135c= 69
Python 3.x允許使用下劃線_作為數(shù)字(包括整數(shù)和小數(shù))的分隔符,通常每隔三個(gè)數(shù)字添加一個(gè)下劃線,比如:click = 1_301_547
在編程語言中,小數(shù)通常以浮點(diǎn)數(shù)的形式存儲(chǔ),浮點(diǎn)數(shù)和定點(diǎn)數(shù)是相對(duì)的;小數(shù)在存儲(chǔ)過程中如果小數(shù)點(diǎn)發(fā)生移動(dòng),就稱為浮點(diǎn)數(shù);如果小數(shù)點(diǎn)不動(dòng),就稱為定點(diǎn)數(shù)。
Python中的小數(shù)有兩種書寫形式:
aEn或aen
x=10.01print("x=",x)y=-0.031print("y=",y)z=2.3E10print("z=",z)w=-0.00000001print("w=",w)
運(yùn)行結(jié)果是:
x= 10.01y= -0.031z= 23000000000.0w= -1e-08
布爾類型用來表示真(對(duì))或假(錯(cuò)),比如常見的3>2 比較算式,這個(gè)是正確的,Python中使用True來代表;再比如2>3 比較算式,這個(gè)是錯(cuò)誤的,用False來代表。
print(3>2)print(2>3)print("True==1的結(jié)果是:",True==1)print("False==0的結(jié)果是:",False==0)
運(yùn)行結(jié)果是:
TrueFalseTrue==1的結(jié)果是: TrueFalse==0的結(jié)果是: True
詳細(xì)內(nèi)容可以查看【Python從入門到精通】(四)Python的內(nèi)置數(shù)據(jù)類型有哪些呢?數(shù)字了解一下
序列(sequence)指的是一塊可存放多個(gè)元素的內(nèi)存空間,這些元素按照一定的順序排列。每個(gè)元素都有自己的位置(索引),可以通過這些位置(索引)來找到指定的元素。如果將序列想象成一個(gè)酒店,那么酒店里的每個(gè)房間就相當(dāng)于序列中的每個(gè)元素,房間的編號(hào)就相當(dāng)于元素的索引,可以通過編號(hào)(索引)找到指定的房間(元素)。
了解完了序列的基本概念,那么在Python中一共有哪些序列類型呢?如下圖所示:
從圖中可以看出在Python中共有7種序列類型,分別是文本序列類型(str);二進(jìn)制序列類型 bytes和bytearray;列表(list);元組(tuple);集合類型(set和frozenset);范圍類型(range)以及字典類型(dict)。
按照能存儲(chǔ)的元素可以將序列類型劃分為兩大類:分別是:容器序列和扁平序列
容器序列:即可容納不同數(shù)據(jù)類型的元素的序列;有 list;tuple;set;dict
舉個(gè)栗子:
list=["runoob",786,2.23,"john",70.2]
這里的list保存的元素有多種數(shù)據(jù)類型,既有字符串,也有小數(shù)和整數(shù)。
扁平序列:即只能容納相同數(shù)據(jù)類型的元素的序列;有bytes;str;bytearray,以str為例,同一個(gè)str只能都存儲(chǔ)字符。
按照序列是否可變,又可分為可變序列和不可變序列。
這里的可變的意思是:序列創(chuàng)建成功之后,還能不能進(jìn)行修改操作,比如插入,修改等等,如果可以的話則是可變的序列,如果不可以的話則是不可變序列。
可變序列有列表( list);字典(dict)等,
不可變的序列有元祖(tuple),后面的文章會(huì)詳細(xì)的對(duì)這些數(shù)據(jù)類型做詳細(xì)介紹。
在介紹序列概念的時(shí)候,說到了序列中元素的索引,那么什么是序列的索引呢?其實(shí)就是位置的下標(biāo)。 如果對(duì)C語言中的數(shù)組有所了解的話,我們知道數(shù)組的索引下標(biāo)都是從0開始依次遞增的正數(shù),即第一個(gè)元素的索引下標(biāo)是0,第n個(gè)元素的索引下標(biāo)是n-1。序列的索引也是同理,默認(rèn)情況下都是從左向右記錄索引,索引值從0開始遞增,即第一個(gè)元素的元素的索引值是0,第n個(gè)元素的索引值是n-1。如下圖所示:
當(dāng)然與C語言中數(shù)組不同的是,Python還支持索引值是負(fù)數(shù),該類的索引是從右向左計(jì)數(shù)。換句話說,就是從最后一個(gè)元素開始計(jì)數(shù),從索引值-1開始遞減,即第n個(gè)元素的索引值是-1,第1個(gè)元素的索引值是-n,如下圖所示:
切片操作是訪問序列元素的另一種方式,它可以訪問一定范圍內(nèi)的元素,通過切片操作,可以生成一個(gè)新的序列。切片操作的語法格式是:
sname[start : end : step]
各個(gè)參數(shù)的含義分別是:
str1="好好學(xué)習(xí),天天向上"# 取出索引下標(biāo)為7的值print(str1[7])# 從下標(biāo)0開始取值,一直取到下標(biāo)為7(不包括)的索引值print(str1[0:7])# 從下標(biāo)1開始取值,一直取到下標(biāo)為4(不包括)的索引值,因?yàn)閟tep等于2,所以會(huì)隔1個(gè)元素取值print(str1[1:4:2])# 取出最后一個(gè)元素print(str1[-1])# 從下標(biāo)-9開始取值,一直取到下標(biāo)為-2(不包括)的索引值print(str1[-9:-2])
運(yùn)行的結(jié)果是:
向好好學(xué)習(xí),天天好習(xí)上好好學(xué)習(xí),天天
Python支持類型相同的兩個(gè)序列使用"+"
運(yùn)算符做想加操作,它會(huì)將兩個(gè)序列進(jìn)行連接,但是不會(huì)去除重復(fù)的元素,即只做一個(gè)簡(jiǎn)單的拼接。
str="他叫小明"str1="他很聰明"print(str+str1)
運(yùn)行結(jié)果是:他叫小明他很聰明
Python支持使用數(shù)字n乘以一個(gè)序列,其會(huì)生成一個(gè)新的序列,新序列的內(nèi)容是原序列被重復(fù)了n次的結(jié)果。
str2="你好呀"print(str2*3)
運(yùn)行結(jié)果是:你好呀你好呀你好呀
,原序列的內(nèi)容重復(fù)了3次。
Python中可以使用in
關(guān)鍵字檢查某個(gè)元素是否為序列中的成員,其語法格式為:
value in sequence
其中,value表示要檢查的元素,sequence表示指定的序列。
舉個(gè)栗子:查找天
字是否在字符串str1中。
str1="好好學(xué)習(xí),天天向上"print("天" in str1)
運(yùn)行結(jié)果是:True
*由若干個(gè)字符組成的集合就是一個(gè)字符串(str)**,Python中的字符串必須由雙引號(hào)""或者單引號(hào)’"包圍。其語法格式是:
"字符串內(nèi)容""字符串內(nèi)容"
如果字符串中包含了單引號(hào)需要做特殊處理。比如現(xiàn)在有這樣一個(gè)字符串
str4="I"m a greate coder"
直接這樣寫有問題的。
處理的方式有兩種:
/
進(jìn)行轉(zhuǎn)義即可:str4="I/"m a greate coder"
str4="I"m a greate coder"
這里外層用雙引號(hào),包裹字符串里的單引號(hào)。
通過+
運(yùn)算符
現(xiàn)有字符串碼農(nóng)飛哥好,
,要求將字符串碼農(nóng)飛哥牛逼
拼接到其后面,生成新的字符串碼農(nóng)飛哥好,碼農(nóng)飛哥牛逼
舉個(gè)例子:
str6 = "碼農(nóng)飛哥好,"# 使用+ 運(yùn)算符號(hào)print("+運(yùn)算符拼接的結(jié)果=",(str6 + "碼農(nóng)飛哥牛逼"))
運(yùn)行結(jié)果是:
+運(yùn)算符拼接的結(jié)果= 碼農(nóng)飛哥好,碼農(nóng)飛哥牛逼
切片操作是訪問字符串的另一種方式,它可以訪問一定范圍內(nèi)的元素,通過切片操作,可以生成一個(gè)新的字符串。切片操作的語法格式是:
sname[start : end : step]
各個(gè)參數(shù)的含義分別是:
str1="好好學(xué)習(xí),天天向上"# 取出索引下標(biāo)為7的值print(str1[7])# 從下標(biāo)0開始取值,一直取到下標(biāo)為7(不包括)的索引值print(str1[0:7])# 從下標(biāo)1開始取值,一直取到下標(biāo)為4(不包括)的索引值,因?yàn)閟tep等于2,所以會(huì)隔1個(gè)元素取值print(str1[1:4:2])# 取出最后一個(gè)元素print(str1[-1])# 從下標(biāo)-9開始取值,一直取到下標(biāo)為-2(不包括)的索引值print(str1[-9:-2])
運(yùn)行的結(jié)果是:
向好好學(xué)習(xí),天天好習(xí)上好好學(xué)習(xí),天天
Python提供了split()方法用于分割字符串,split() 方法可以實(shí)現(xiàn)將一個(gè)字符串按照指定的分隔符切分成多個(gè)子串,這些子串會(huì)被保存到列表中(不包含分隔符),作為方法的返回值反饋回來。該方法的基本語法格式如下:
str.split(sep,maxsplit)
此方法中各部分參數(shù)的含義分別是:
str = "https://feige.blog.csdn.net/"print("不指定分割次數(shù)", str.split("."))print("指定分割次數(shù)為2次",str.split(".",2))
運(yùn)行結(jié)果是:
不指定分割次數(shù) ["https://feige", "blog", "csdn", "net/"]指定分割次數(shù)為2次 ["https://feige", "blog", "csdn.net/"]
合并字符串與split的作用剛剛相反,Python提供了join() 方法來將列表(或元組)中包含的多個(gè)字符串連接成一個(gè)字符串。其語法結(jié)構(gòu)是:
newstr = str.join(iterable)
此方法各部分的參數(shù)含義是:
list = ["碼農(nóng)飛哥", "好好學(xué)習(xí)", "非常棒"]print("通過.來拼接", ".".join(list))print("通過-來拼接", "-".join(list))
運(yùn)行結(jié)果是:
通過.來拼接 碼農(nóng)飛哥.好好學(xué)習(xí).非常棒通過-來拼接 碼農(nóng)飛哥-好好學(xué)習(xí)-非常棒
startswith()方法用于檢索字符串是否以指定字符串開頭,如果是返回True;反之返回False。其語法結(jié)構(gòu)是:
str.startswith(sub[,start[,end]])
此方法各個(gè)參數(shù)的含義是:
str1 = "https://feige.blog.csdn.net/"print("是否是以https開頭", str1.startswith("https"))print("是否是以feige開頭", str1.startswith("feige", 0, 20))
運(yùn)行結(jié)果是:
是否是以https開頭 True是否是以feige開頭 False
endswith()方法用于檢索字符串是否以指定字符串結(jié)尾,如果是則返回True,反之則返回False。其語法結(jié)構(gòu)是:
str.endswith(sub[,start[,end]])
此方法各個(gè)參數(shù)的含義與startswith方法相同,再此就不在贅述了。
Python中提供了3種方法用于字符串大小寫轉(zhuǎn)換
str.title()
str.lower()
str.upper()
。str = "feiGe勇敢飛"print("首字母大寫", str.title())print("全部小寫", str.lower())print("全部大寫", str.upper())
運(yùn)行結(jié)果是:
首字母大寫 Feige勇敢飛全部小寫 feige勇敢飛全部大寫 FEIGE勇敢飛
Python中提供了三種方法去除字符串中空格(刪除特殊字符)的3種方法,這里的特殊字符,指的是指表符(/t)、回車符(/r),換行符(/n)等。
str = "/n碼農(nóng)飛哥勇敢飛 "print("去除前后空格(特殊字符串)", str.strip())print("去除左邊空格(特殊字符串)", str.lstrip())print("去除右邊空格(特殊字符串)", str.rstrip())
運(yùn)行結(jié)果是:
去除前后空格(特殊字符串) 碼農(nóng)飛哥勇敢飛去除左邊空格(特殊字符串) 碼農(nóng)飛哥勇敢飛 去除右邊空格(特殊字符串) 碼農(nóng)飛哥勇敢飛
最早的字符串編碼是ASCll編碼,它僅僅對(duì)10個(gè)數(shù)字,26個(gè)大小寫英文字母以及一些特殊字符進(jìn)行了編碼,ASCII碼最多只能表示256個(gè)字符,每個(gè)字符只需要占用1個(gè)字節(jié)。為了兼容各國的文字,相繼出現(xiàn)了GBK,GB2312,UTF-8編碼等,UTF-8是國際通用的編碼格式,它包含了全世界所有國家需要用到的字符,其規(guī)定英文字符占用1個(gè)字節(jié),中文字符占用3個(gè)字節(jié)。
str.encode([encoding="utf-8"][,errors="strict"])
bytes.decode([encoding="utf-8"][,errors="strict"])
str = "碼農(nóng)飛哥加油"bytes = str.encode()print("編碼", bytes)print("解碼", bytes.decode())
運(yùn)行結(jié)果是:
編碼 b"/xe7/xa0/x81/xe5/x86/x9c/xe9/xa3/x9e/xe5/x93/xa5/xe5/x8a/xa0/xe6/xb2/xb9"解碼 碼農(nóng)飛哥加油
默認(rèn)的編碼格式是UTF-8,編碼和解碼的格式要相同,不然會(huì)解碼失敗。
在實(shí)際工作中我們經(jīng)常要將一個(gè)數(shù)據(jù)對(duì)象序列化成字符串,也會(huì)將一個(gè)字符串反序列化成一個(gè)數(shù)據(jù)對(duì)象。Python自帶的序列化模塊是json模塊。
import jsondict = {"學(xué)號(hào)": 1001, "name": "張三", "score": [{"語文": 90, "數(shù)學(xué)": 100}]}str = json.dumps(dict,ensure_ascii=False)print("序列化成字符串", str, type(str))dict2 = json.loads(str)print("反序列化成對(duì)象", dict2, type(dict2))
運(yùn)行結(jié)果是:
序列化成字符串 {"name": "張三", "score": [{"數(shù)學(xué)": 100, "語文": 90}], "學(xué)號(hào)": 1001} 反序列化成對(duì)象 {"name": "張三", "score": [{"數(shù)學(xué)": 100, "語文": 90}], "學(xué)號(hào)": 1001}
詳細(xì)內(nèi)容可以查看
【Python從入門到精通】(五)Python內(nèi)置的數(shù)據(jù)類型-序列和字符串,沒有女友,不是保姆,只有拿來就能用的干貨
【Python從入門到精通】(九)Python中字符串的各種騷操作你已經(jīng)爛熟于心了么?【收藏下來就挺好的】
列表作為Python序列類型中的一種,其也是用于存儲(chǔ)多個(gè)元素的一塊內(nèi)存空間,這些元素按照一定的順序排列。其數(shù)據(jù)結(jié)構(gòu)是:
[element1, element2, element3, ..., elementn]
element1~elementn表示列表中的元素,元素的數(shù)據(jù)格式?jīng)]有限制,只要是Python支持的數(shù)據(jù)格式都可以往里面方。同時(shí)因?yàn)榱斜碇С肿詣?dòng)擴(kuò)容,所以它可變序列,即可以動(dòng)態(tài)的修改列表,即可以修改,新增,刪除列表元素。看個(gè)爽圖吧!
首先介紹的是對(duì)列表的操作:包括列表的創(chuàng)建,列表的刪除等!其中創(chuàng)建一個(gè)列表的方式有兩種:
第一種方式:
通過[]
包裹列表中的元素,每個(gè)元素之間通過逗號(hào),
分割。元素類型不限并且同一列表中的每個(gè)元素的類型可以不相同,但是不建議這樣做,因?yàn)槿绻總€(gè)元素的數(shù)據(jù)類型都不同的話則非常不方便對(duì)列表進(jìn)行遍歷解析。所以建議一個(gè)列表只存同一種類型的元素。
list=[element1, element2, element3, ..., elementn]
例如:test_list = ["測(cè)試", 2, ["碼農(nóng)飛哥", "小偉"], (12, 23)]
PS: 空列表的定義是list=[]
第二種方式:
通過list(iterable)
函數(shù)來創(chuàng)建列表,list函數(shù)是Python內(nèi)置的函數(shù)。該函數(shù)傳入的參數(shù)必須是可迭代的序列,比如字符串,列表,元組等等,如果iterable
傳入為空,則會(huì)創(chuàng)建一個(gè)空的列表。iterable
不能只傳一個(gè)數(shù)字。
classmates1 = list("碼農(nóng)飛哥")print(classmates1)
生成的列表是:["碼", "農(nóng)", "飛", "哥"]
向列表中新增元素的方法有四種,分別是:
第一種: 使用**+運(yùn)算符將多個(gè)列表**連接起來。相當(dāng)于在第一個(gè)列表的末尾添加上另一個(gè)列表。其語法格式是listname1+listname2
name_list = ["碼農(nóng)飛哥", "小偉", "小小偉"]name_list2 = ["python", "java"]print(name_list + name_list2)
輸出結(jié)果是:["碼農(nóng)飛哥", "小偉", "小小偉", "python", "java"]
,可以看出將name_list2中的每個(gè)元素都添加到了name_list的末尾。
第二種:使用append()方法添加元素
append()方法用于向列表末尾添加元素,其語法格式是:listname.append(p_object)
其中l(wèi)istname表示要添加元素的列表,p_object表示要添加到列表末尾的元素,可以是字符串,數(shù)字,也可以是一個(gè)序列。舉個(gè)栗子:
name_list.append("Adam")print(name_list)name_list.append(["test", "test1"])print(name_list)
運(yùn)行結(jié)果是:
["碼農(nóng)飛哥", "小偉", "小小偉", "Adam"]["碼農(nóng)飛哥", "小偉", "小小偉", "Adam", ["test", "test1"]]
可以看出待添加的元素都成功的添加到了原列表的末尾處。并且當(dāng)添加的元素是一個(gè)序列時(shí),則會(huì)將該序列當(dāng)成一個(gè)整體。
第三種:使用extend()方法
extend()方法跟append()方法的用法相同,同樣是向列表末尾添加元素。元素的類型只需要Python支持的數(shù)據(jù)類型即可。不過與append()方法不同的是,當(dāng)添加的元素是序列
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/122579.html
文章目錄 強(qiáng)烈推薦系列教程,建議學(xué)起來!! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內(nèi)部配置 4.2手動(dòng)添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動(dòng)補(bǔ)碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開頭八、這個(gè)前言一定要看九、pyt...
摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:一個(gè)軟件測(cè)試在職老人幫你詳細(xì)分析一下。在軟件測(cè)試行業(yè),前兩點(diǎn)可以結(jié)合起來說,就是大環(huán)境和前景以及人才缺口的問題。軟件測(cè)試屬于互聯(lián)網(wǎng)技術(shù)的一個(gè)分支,就是經(jīng)常被提到的行業(yè)。你零基礎(chǔ)轉(zhuǎn)行嗷,良心奉勸你不要自學(xué)。 一個(gè)軟件測(cè)試在職老人幫你詳細(xì)分析一下。先不說軟件測(cè)試領(lǐng)域,你想轉(zhuǎn)行的話,得知道這個(gè)行...
閱讀 748·2021-10-14 09:43
閱讀 2071·2021-09-30 09:48
閱讀 3440·2021-09-08 09:45
閱讀 1089·2021-09-02 15:41
閱讀 1876·2021-08-26 14:15
閱讀 769·2021-08-03 14:04
閱讀 2971·2019-08-30 15:56
閱讀 3070·2019-08-30 15:52