ironpython使用opencv_连这些都不知道,就别说自己懂Python!
俗話說(shuō)的好,千里之行始于足下。無(wú)論做什么事情,基礎(chǔ)都是最重要的,當(dāng)你以為自己“精通”某語(yǔ)言的時(shí)候,有沒(méi)有問(wèn)過(guò)自己:
“能不能把這些知識(shí),用最簡(jiǎn)單的話說(shuō)出來(lái),讓不懂的人也能聽(tīng)明白?”
當(dāng)你真正精通某語(yǔ)言的時(shí)候,我相信你一定能做到。如果做不到,那就需要往下看,再學(xué)習(xí)一下基礎(chǔ)。
為了幫助大家徹底理解Python,七月在線針對(duì)各大知識(shí)點(diǎn)進(jìn)行了圖片化和文字化顯示。
涵蓋了大量文字概念和代碼的邏輯處理思路以及對(duì)應(yīng)案例,可以直接通過(guò)文字概念和圖片的邏輯處理流程,來(lái)輔助自己對(duì)知識(shí)的消化和吸收。本文目錄
認(rèn)識(shí)Python
Python應(yīng)用場(chǎng)景
Python基礎(chǔ)語(yǔ)法
一、認(rèn)識(shí)Python
Python 是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。是一種動(dòng)態(tài)的、面向?qū)ο蟮哪_本語(yǔ)言,最初被設(shè)計(jì)用于編寫(xiě)自動(dòng)化腳本(shell),隨著版本的不斷更新和語(yǔ)言新功能的添加,越來(lái)越多被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。
Python 的創(chuàng)始人為荷蘭人吉多·范羅蘇姆(Guido van Rossum)。1989?年圣誕節(jié)期間,在阿姆斯特丹,Guido?為了打發(fā)圣誕節(jié)的無(wú)趣,決心開(kāi)發(fā)一個(gè)新的腳本解釋程序,作為ABC語(yǔ)言的一種繼承。
ABC 是由?Guido?參加設(shè)計(jì)的一種教學(xué)語(yǔ)言。
就?Guido?本人看來(lái),ABC?這種語(yǔ)言非常優(yōu)美和強(qiáng)大,是專門(mén)為非專業(yè)程序員設(shè)計(jì)的。
但是?ABC?語(yǔ)言并沒(méi)有成功,究其原因,Guido?認(rèn)為是其非開(kāi)放造成的。
Guido?決心在?Python?中避免這一錯(cuò)誤。同時(shí),他還想實(shí)現(xiàn)在?ABC?中閃現(xiàn)過(guò)但未曾實(shí)現(xiàn)的東西。
就這樣,Python 在?Guido?手中誕生了。
可以說(shuō),Python?是從?ABC?發(fā)展起來(lái)。Python 已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一。
自從?2004?年以后,python?的使用率呈線性增長(zhǎng)。Python2?于?2000?年?10?月?16?日發(fā)布,穩(wěn)定版本是?Python2.7?。
Python3?于?2008年?12?月?3?日發(fā)布,不完全兼容Python2。2011年1月,它被?TIOBE?編程語(yǔ)言排行榜評(píng)為?2010?年度語(yǔ)言。
由于 Python 語(yǔ)言的簡(jiǎn)潔性、易讀性以及可擴(kuò)展性,在國(guó)外用?Python?做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用?Python?來(lái)教授程序設(shè)計(jì)課程。
例如卡耐基梅隆大學(xué)的編程基礎(chǔ)、麻省理工學(xué)院的計(jì)算機(jī)科學(xué)及編程導(dǎo)論就使用?Python?語(yǔ)言講授。
眾多開(kāi)源的科學(xué)計(jì)算軟件包都提供了?Python?的調(diào)用接口,例如著名的計(jì)算機(jī)視覺(jué)庫(kù)OpenCV?、三維可視化庫(kù)?VTK?、醫(yī)學(xué)圖像處理 庫(kù)?ITK?。
而?Python?專用的科學(xué)計(jì)算擴(kuò)展庫(kù)就更多了,如下面3個(gè)十分經(jīng)典的科學(xué)計(jì)算擴(kuò)展庫(kù):NumPy、SciPy?和?matplotlib,它們分別為?Python提供了快速數(shù)組處理、數(shù)值運(yùn)算以及繪圖功能。
因此?Python?語(yǔ)言及其眾多的擴(kuò)展庫(kù)所構(gòu)成的開(kāi)發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實(shí)驗(yàn)數(shù)據(jù)、制作圖表,甚至開(kāi)發(fā)科學(xué)計(jì)算應(yīng)用程序。
二、Python應(yīng)用場(chǎng)景
1. Web應(yīng)用開(kāi)發(fā)
Python經(jīng)常被用于Web開(kāi)發(fā)。比如,通過(guò)mod_wsgi模塊,Apache可以運(yùn)行用Python編寫(xiě)的Web程序。
Python定義了WSGI標(biāo)準(zhǔn)應(yīng)用接口來(lái)協(xié)調(diào)Http服務(wù)器與基于Python的Web程序之間的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程序員輕松地開(kāi)發(fā)和管理復(fù)雜的Web程序。
2. 操作系統(tǒng)管理、服務(wù)器運(yùn)維的自動(dòng)化腳本
在很多操作系統(tǒng)里,Python是標(biāo)準(zhǔn)的系統(tǒng)組件。大多數(shù)Linux發(fā)行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在終端下直接運(yùn)行Python。
有一些Linux發(fā)行版的安裝器使用Python語(yǔ)言編寫(xiě),比如Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器。
Gentoo Linux使用Python來(lái)編寫(xiě)它的Portage包管理系統(tǒng)。Python標(biāo)準(zhǔn)庫(kù)包含了多個(gè)調(diào)用操作系統(tǒng)功能的庫(kù)。
通過(guò)pywin32這個(gè)第三方軟件包,Python能夠訪問(wèn)Windows的COM服務(wù)及其它Windows API。
使用IronPython,Python程序能夠直接調(diào)用.Net Framework。一般說(shuō)來(lái),Python編寫(xiě)的系統(tǒng)管理腳本在可讀性、性能、代碼重用度、擴(kuò)展性幾方面都優(yōu)于普通的shell腳本。
3. 網(wǎng)絡(luò)爬蟲(chóng)
Python有大量的HTTP請(qǐng)求處理庫(kù)和HTML解析庫(kù),并且有成熟高效的爬蟲(chóng)框架Scrapy和分布式解決方案scrapy-redis,在爬蟲(chóng)的應(yīng)用方面非常廣泛。
4. 科學(xué)計(jì)算
NumPy、SciPy、Pandas、Matplotlib可以讓Python程序員編寫(xiě)科學(xué)計(jì)算程序。
5. 桌面軟件
PyQt、PySide、wxPython、PyGTK是Python快速開(kāi)發(fā)桌面應(yīng)用程序的利器。
6. 服務(wù)器軟件(網(wǎng)絡(luò)軟件)
Python對(duì)于各種網(wǎng)絡(luò)協(xié)議的支持很完善,因此經(jīng)常被用于編寫(xiě)服務(wù)器軟件、網(wǎng)絡(luò)爬蟲(chóng)。
第三方庫(kù)Twisted支持異步網(wǎng)絡(luò)編程和多數(shù)標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議(包含客戶端和服務(wù)器),并且提供了多種工具,被廣泛用于編寫(xiě)高性能的服務(wù)器軟件。
7. 游戲
很多游戲使用C++編寫(xiě)圖形顯示等高性能模塊,而使用Python或者Lua編寫(xiě)游戲的邏輯、服務(wù)器。
相較于Python,Lua的功能更簡(jiǎn)單、體積更小;而Python則支持更多的特性和數(shù)據(jù)類型。
8. 構(gòu)思實(shí)現(xiàn),產(chǎn)品早期原型和迭代
Google、NASA、Facebook都在內(nèi)部大量地使用Python。
三、Python基礎(chǔ)知識(shí)
1. 語(yǔ)法基礎(chǔ):注釋
在程序中對(duì)某些代碼進(jìn)行標(biāo)注說(shuō)明,這就是注釋的作用,能夠大大增強(qiáng)程序的可讀性。python 常用單行注釋是?#?,常用多行注釋是三對(duì)單引號(hào)?''' '''
# 這是一個(gè)單行注釋
# print("七月你好,我是八月.") 此行代碼不執(zhí)行顯示.
# 快捷鍵: ctrl + / 快速設(shè)置注釋 和 快速取消注釋
'''
這是一個(gè)多行注釋
該范圍內(nèi)的代碼不會(huì)執(zhí)行顯示
'''
2. 語(yǔ)法基礎(chǔ):數(shù)據(jù)類型
3. 語(yǔ)法基礎(chǔ):關(guān)鍵字和標(biāo)識(shí)符
關(guān)鍵字
python 一些具有特殊功能的標(biāo)識(shí)符,這就是所謂的關(guān)鍵字。關(guān)鍵字,是 python 已經(jīng)使用的了,所以不允許開(kāi)發(fā)者自己定義和關(guān)鍵字相同的名字的標(biāo)識(shí)符
那么 python 中關(guān)鍵字都有哪些呢?
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
那么咱們?nèi)绾稳ゲ樵?python 中有哪些關(guān)鍵字呢?
# 在python中若想查詢python中有哪些關(guān)鍵字可以先導(dǎo)入keyword模塊
import?keyword?#導(dǎo)入關(guān)鍵字模塊
print(keyword.kwlist)?#查詢所有關(guān)鍵字
實(shí)際操作
溫馨提示:咱們?cè)谄鹱兞棵蛘呶募麜r(shí)不能使用這些關(guān)鍵字名字喲,否則會(huì)報(bào)錯(cuò).拋出異常~請(qǐng)大家注意喲。
標(biāo)識(shí)符
祖國(guó)的花朵(開(kāi)發(fā)人員)在程序中自定義的一些符號(hào)和名稱。標(biāo)示符是咱們自己定義的,如變量名、函數(shù)名、類名等。
標(biāo)識(shí)符規(guī)則
定義這些標(biāo)識(shí)符也有一定的規(guī)則:標(biāo)識(shí)符由字母下劃線和數(shù)字組成,但是不能以數(shù)字開(kāi)頭,可以使用下劃線或字母開(kāi)頭,注意在 python 中,標(biāo)識(shí)符是嚴(yán)格區(qū)分大小寫(xiě)的喲。 變量 Andy 不等于 變量 andy 這是兩個(gè)變量。
標(biāo)識(shí)符命名規(guī)則
命名規(guī)則,可以簡(jiǎn)單的理解為,咱們?cè)谄鹈值臅r(shí)候是需要遵守相關(guān)規(guī)則的.主要是為了讓別人一看就明白是什么意思,做什么用的.可以提高代碼可讀性。比如:名字 就定義為 name , 定義學(xué)生用 student。
駝峰命名法
同時(shí)呢,在需要多個(gè)單詞進(jìn)行組合時(shí),咱們使用駝峰命名法:
小駝峰式命名法: 第一個(gè)單詞以小寫(xiě)字母開(kāi)始;第二個(gè)單詞的首字母大寫(xiě),例如:myName、aDog
大駝峰式命名法: 每一個(gè)單字的首字母都采用大寫(xiě)字母,例如:FirstName、LastName。不過(guò)在程序員中還有一種命名法比較流行,就是用下劃線“_”來(lái)連接所有的單詞,比如send_buf
名字和對(duì)象之間關(guān)系
我們可以用 = 等號(hào),建立立定義的變量名字和對(duì)象之間的引用關(guān)系,也可以用使用 del 來(lái)解除這種引用關(guān)系。
# 舉個(gè)例子
name?=?'天下第一帥'?# 我將 天下第一帥 這個(gè)字符串賦值給了 name 這個(gè)變量名,可以理解為,下次我通過(guò) name 名字可以聯(lián)系到 天下第一帥 這個(gè)人.
實(shí)際操作
# del 解除引用關(guān)系
age =?17?# 永遠(yuǎn)17歲
del?age?# del 是 delete 的縮寫(xiě),此行代碼表示刪除 age 和 17 之間的引用關(guān)系
print(age)?# 因?yàn)橐呀?jīng)刪除引用關(guān)系,所以訪問(wèn)不到 17 這個(gè)數(shù)據(jù),則拋出異常
實(shí)際操作
名字空間
當(dāng)我們?cè)诙x了一些變量名,函數(shù)名,類名之后,會(huì)有一個(gè)空間來(lái)收納這些名字和它們所對(duì)應(yīng)的數(shù)據(jù)類型和數(shù)據(jù)內(nèi)容。
# 舉個(gè)栗子
height =?'190CM'?# 小編的理想身高.但是現(xiàn)實(shí)很殘酷.
def?func1():
pass
class?Fun():
pass
實(shí)際操作
使用 %whos 查看名字空間,我們也可以使用 %reset 來(lái)清空這個(gè)空間,清空之后,我們就需要重新執(zhí)行一次定義的過(guò)程,才能重新存儲(chǔ)在名字空間內(nèi)。
實(shí)際操作
4. 語(yǔ)法基礎(chǔ):輸出
普通的輸出
python中的輸出
用 print() 在括號(hào)中加上字符串,就可以向屏幕上輸出指定的文字。比如輸出 '李鐵柱',用代碼實(shí)現(xiàn)如下:
name =?'李鐵柱'
print(name)
運(yùn)行結(jié)果
print()也可以打印整數(shù),或者計(jì)算結(jié)果
# 舉個(gè)例子
print(300)
print(100 + 200)
實(shí)際操作
因此,我們可以把計(jì)算100 + 200 的結(jié)果打印得更漂亮一點(diǎn):
print('100 + 200 = ',?100?+?200)
實(shí)際操作
注意,對(duì)于100 + 200,Python 解釋器自動(dòng)計(jì)算出結(jié)果 300,但是,'100 + 200 =' 是字符串而非數(shù)學(xué)公式,Python 把它視為字符串,直接進(jìn)行打印輸出。
5. 語(yǔ)法基礎(chǔ):格式化輸出
格式化操作的目的,比如說(shuō)有下列代碼:
print('大家好,我叫 李鐵柱,我今年 24 歲')
print('大家好,我叫 候德柱,我今年 25 歲')
print('大家好,我叫 候不柱,我今年 26 歲')
大家仔細(xì)觀察一下,能夠看到,我在 print 輸出自我介紹的時(shí)候,用了很多的相同字體,就只有一些不同的字段,那么咱們能否簡(jiǎn)化一下程序呢?
age =?24
print("我今年%d歲"?% age)
age +=?25
print("我今年%d歲"?% age)
age +=?26
print("我今年%d歲"?% age)
實(shí)際操作
在程序中,看到了 % 這樣的操作符,這就是 Python 中格式化輸出。
age =?18
name =?"小岳岳"
print("我的姓名是%s, 年齡是%d"?% (name, age))
運(yùn)行結(jié)果
在這里咱們一次使用了兩個(gè)格式化符號(hào),分別是:%s 和 %d。
%s:表示格式化輸出字符串
%d:表示格式化輸出十進(jìn)制整數(shù)
除了這兩個(gè)格式化輸出字符還有很多,往下看。
常用的格式化符號(hào)
6. 語(yǔ)法基礎(chǔ):輸入
現(xiàn)在,你已經(jīng)可以用 print() 輸出你想要的結(jié)果了。但是,如果要讓用戶從電腦輸入一些字符怎么辦?Python 提供了一個(gè) input(),可以讓用戶輸入字符串,并存放到一個(gè)變量里。比如輸入用戶的名字:
name?= input() # input()
當(dāng)你輸入name = input()并按下回車(chē)后,Python交互式命令行就在等待你的輸入了。這時(shí),你可以輸入任意字符,然后按回車(chē)后完成輸入。
輸入完成后,不會(huì)有任何提示,Python 交互式命令行又回到就緒狀態(tài)了。那我們剛才輸入的內(nèi)容到哪去了?答案是存放到 name 變量里了??梢灾苯虞斎?name 查看變量?jī)?nèi)容:
7. 語(yǔ)法基礎(chǔ):運(yùn)算符
標(biāo)準(zhǔn)操作符
python 同大多數(shù)語(yǔ)言一樣,也有自己的操作符,分別用來(lái)應(yīng)對(duì)不同的工作內(nèi)容。今天要講的是 Python 中最常用的幾種標(biāo)準(zhǔn)操作符:算術(shù)運(yùn)算符、賦值運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符。
算數(shù)運(yùn)算符
注意:混合運(yùn)算時(shí),優(yōu)先級(jí)順序?yàn)?#xff1a;?**?高于?*?/?%?//?高于?+?-?,為了避免歧義,建議使用?()?來(lái)處理運(yùn)算符優(yōu)先級(jí)。并且,不同類型的數(shù)字在進(jìn)行混合運(yùn)算時(shí),整數(shù)將會(huì)轉(zhuǎn)換成浮點(diǎn)數(shù)進(jìn)行運(yùn)算。
實(shí)際操作
a?=?10
b?=?20
print(a+b)
print(a-b)
print(a*b)
print(a/b)
賦值運(yùn)算符
實(shí)際操作
a = 10?# 單個(gè)賦值
b = 20
c,d,e = 30,40,50?# 多個(gè)賦值 c = 30 , d = 40 , e = 50
print(a,b,c,d,e)
復(fù)合賦值運(yùn)算符
實(shí)際操作
c?=?40
a?=?20
#?print(c?+=?a) # 直接?print() 是無(wú)法輸出結(jié)果的喲
c?+=?a
print(c)
c?-=?a
print(c)
c?*=?a
print(c)
c?/=?a
print(c)
c?%=?a
print(c)
8. 語(yǔ)法基礎(chǔ):常用的數(shù)據(jù)類型轉(zhuǎn)換
數(shù)據(jù)類型轉(zhuǎn)換
有時(shí)候,我們需要對(duì)數(shù)據(jù)內(nèi)置的類型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類型的轉(zhuǎn)換,你只需要將數(shù)據(jù)類型作為函數(shù)名即可。
以下幾個(gè)內(nèi)置的函數(shù)可以執(zhí)行數(shù)據(jù)類型之間的轉(zhuǎn)換。這些函數(shù)返回一個(gè)新的對(duì)象,表示轉(zhuǎn)換的值。
類型轉(zhuǎn)換
# 給小伙伴們舉幾個(gè)例子
#?int(): 將數(shù)據(jù)轉(zhuǎn)換為?int?類型
str1 =?"10"
num1 =?int(str1)
print(int)
#?int() 處理浮點(diǎn)數(shù),只留下整數(shù)部分,舍棄小數(shù)部分(并不是四舍五入操作)
num2 =?int(3.74)
print(num2)
# float() 將數(shù)據(jù)轉(zhuǎn)化為浮點(diǎn)數(shù)
str2 =?"3.14"
f1 = float(str2)
print(type(f1))
# str() : 轉(zhuǎn)換為 字符串類型
num1 =?10
f1 =?3.14
print(type(str(num1)))
#?eval(): 將字符串形式的數(shù)據(jù),轉(zhuǎn)換為原本的類型
str1 =?"3.14"
print(type(eval(str1)))
操作結(jié)果
總結(jié)
以上是生活随笔為你收集整理的ironpython使用opencv_连这些都不知道,就别说自己懂Python!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python同时发大量请求_python
- 下一篇: python中mat函数_python