Python基礎(chǔ):數(shù)據(jù)類型與編程基礎(chǔ)
點擊上方“小白學(xué)視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
有一段時間沒寫Python了。今天介紹Py的數(shù)據(jù)對象類型和包括條件判斷、循環(huán)在內(nèi)的Py編程基礎(chǔ)。就像R語言中的向量、數(shù)據(jù)框和因子等數(shù)據(jù)對象類型一樣,Py基本的數(shù)據(jù)類型包括list(列表)、tuple(元組)、dict(字典)和集合(set)等類型。另外也簡單介紹下if-else條件判斷、for和while循環(huán)等Py編程基礎(chǔ)知識。
Python 數(shù)據(jù)類型
Py主要數(shù)據(jù)類型包括list、tuple、dict和set等對象,下面逐一介紹這些Py數(shù)據(jù)類型。
list(列表)是Py內(nèi)置的一種數(shù)據(jù)類型,作為一個有序的數(shù)據(jù)集合,list的元素是可變的,可隨意添加或刪減list中的元素。在Py交互式命令中運行l(wèi)ist相關(guān)代碼:
>>> NBAplayer = ['Westbrook', 'Harden', 'Durant']
>>> NBAplayer
['Westbrook', 'Harden', 'Durant']
對象NBAplayer就是一個list,我們可以使用索引來訪問list中的每個元素,Py中的索引和R不一樣,是從0開始計算的:
>>> NBAplayer[0]
'Westbrook'
>>> NBAplayer[2]
'Durant' 也可以倒著訪問list中的每個對象:
>>> NBAplayer[-1]
'Durant'
在往list中添加對象時可以使用append方法:
>>> NBAplayer.append('James')
>>> NBAplayer
['Westbrook', 'Harden', 'Durant','James']
想要刪除list中的某個對象可以使用pop方法:
>>> NBAplayer.pop(1)
'Harden'
>>> NBAplayer
['Westbrook', 'Durant']
list 也可以作為單個元素包含在另一個list中:
>>> player=['Curry','Leonard']
>>> NBAplayer=['Westbrook', 'Harden',palyer,'Durant']
再來看Py的另一種重要的數(shù)據(jù)類型:tuple(元組)。tuple和list十分類似,不同的是tuple是以括號()形式存在的,且tuple一旦初始化后就不能像list一樣可以隨意修改了。
>>> NBAplayer = ('Westbrook', 'Harden', 'Durant')
>>> NBAplayer
('Westbrook', 'Harden', 'Durant') tuple具有和list一樣的對象元素訪問功能,這里不再贅述。需要注意的是,因為tuple元素是不可變對象,相應(yīng)的也就沒有和list一樣的append、pop等修改元素的方法。
最后看Py中比較特殊的一種數(shù)據(jù)類型:dict(字典)。字典,顧名思義,肯定是具有強大的數(shù)據(jù)查詢功能了。dict在其他程序語言中叫做map,具有key-value(鍵-值)的存儲功能,看下面的示例:
>>> NBAplayer={'Westbrook':32.3, 'Harden':29.9}
>>> NBAplayer['Westbrook']
32.3除了在創(chuàng)建dict時指定各元素的key-value之外,還可以通過key來單獨指定值放入:
>>> NBAplayer['Durant'] = 25.7
>>> NBAplayer['Durant']
25.7dict查找或插入數(shù)據(jù)的速度極快,但也占用了大量的內(nèi)存,這一點正好和list相反。另一種和dict類似的數(shù)據(jù)類型叫做set(集合),它是一組key的集合但沒有保存value,這里就不做介紹了。
Python 編程基礎(chǔ)
這里主要介紹if-else條件判斷以及for和while的循環(huán)語句。條件判斷和循環(huán)作為任一編程語言的基礎(chǔ)課有必要在此重點強調(diào)說明。先看Py中的if-else條件判斷語句:
points=21.5
if points >= 20:
print('You are an all star palyer')
else:
print('Good job,to be an all star palyer!')
我們也可以用elif做更細致的條件判斷:
points=21.5
if points >= 30:
print('You are a MVP palyer')
elif 25<=points<30:
print('You are a quasi MVP player')
elif 20<=points<30:
print('You are an all star palyer')
else:
print('Good job,to be an all star palyer!')
Py循環(huán)語句和其他語言原理一致,這里不再詳細展開,就以常見的高斯求和使用for和while循環(huán)為例來展示Py的循環(huán)功能。
for循環(huán):
sum=0
for x in range(101):
sum = sum + x
print(sum)
5050
while循環(huán):
sum=0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
5050通過上面的示例,大家可以看到其實Py的數(shù)據(jù)類型和一些編程基礎(chǔ)都十分簡單,這也與Py整體的語言風(fēng)格有關(guān),即使在行外人讀起來也像讀英文一樣通俗易懂。
好消息!
小白學(xué)視覺知識星球
開始面向外開放啦??????
下載1:OpenCV-Contrib擴展模塊中文版教程 在「小白學(xué)視覺」公眾號后臺回復(fù):擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實戰(zhàn)項目52講 在「小白學(xué)視覺」公眾號后臺回復(fù):Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。 下載3:OpenCV實戰(zhàn)項目20講 在「小白學(xué)視覺」公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進階。 交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

