日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Python/ target=_blank class=infotextkey>Python是當(dāng)前最流行的編程語言之一,可應(yīng)用于Web開發(fā)、數(shù)據(jù)分析、人工智能、科學(xué)計算、桌面應(yīng)用、游戲開發(fā)等等多個領(lǐng)域。Python的一大特色就是它具有豐富的程序庫(包括內(nèi)置的庫及第三方開發(fā)的庫),我們不必從頭開始編寫代碼,就可以實(shí)現(xiàn)功能強(qiáng)大的應(yīng)用程序。Python不但功能強(qiáng)大,而且和其他編程語言相比它相對簡單,不需要任何先前的編程經(jīng)驗即可學(xué)習(xí)、使用,對初學(xué)者極為友好。下面就讓我們一起走進(jìn)豐富多彩的Python編程世界。

文|夢飛

Python編程環(huán)境設(shè)置

Python是一種解釋性語言,它使用解釋器來解釋和執(zhí)行代碼,這對用戶來說省去了C或C++之類語言的編譯步驟,直接從源代碼即可運(yùn)行,因此更容易編寫和調(diào)試。工欲善其事,必先利其器。在學(xué)習(xí)Python編程之前,先讓我們安裝好相應(yīng)的工具并對編程環(huán)境進(jìn)行設(shè)置。

首先進(jìn)入Python官方下載頻道https://www.python.org/downloads,點(diǎn)擊“Download Python 3.11.2”按鈕進(jìn)入下載頁面(此數(shù)字會隨著版本的升級而改變)。找到適合自己系統(tǒng)的下載鏈接,比如筆者為windows的64位系統(tǒng),所以選擇下載了“Windows installer (64-bit)”。雙擊下載所得的EXE可執(zhí)行文件啟動Python安裝向?qū)В▓D1)。

圖1 Python安裝向?qū)?/p>

勾選“Add python.exe to PATH”項,這樣就不用后期手動將Python程序添加到系統(tǒng)路徑中了。點(diǎn)擊“Install Now”即可自動安裝。如果不希望安裝到默認(rèn)的C盤,可以點(diǎn)擊“Customize installation”自定義安裝項,根據(jù)向?qū)崾疽徊讲桨惭b(圖2)。

圖2 Python自定義安裝

作為初學(xué)者選擇默認(rèn)安裝選項即可。安裝成功后,對于Windows系統(tǒng)將會有一個“Disable path length limit(禁用路徑長度限制)”的提示,這是因為Windows系統(tǒng)能夠處理的文件路徑長度有一定的限制(圖3)。點(diǎn)擊禁用這一限制可以避免處理長文件路徑時出現(xiàn)的調(diào)試問題,不過這也可能導(dǎo)致與舊版本W(wǎng)indows 10的兼容性問題。對于我們初學(xué)者來說可以暫時跳過此選項,因為以后有需要時還可以修改注冊表來解決。

圖3 Python安裝成功的界面

點(diǎn)擊“Close”按鈕關(guān)閉安裝向?qū)А,F(xiàn)在我們測試Python是否安裝成功。按Win+R鍵調(diào)出運(yùn)行對話框,輸入“cmd”后按回車鍵打開命令提示符窗口,然后輸入“python”并按回車,如果能夠顯示出Python版本等信息內(nèi)容,并且提示符變成了“>>>”,則表示安裝成功了。此時可輸入一行測試代碼:

print("嗨,歡迎來到Python世界!")

按回車鍵執(zhí)行,即可得到“嗨,歡迎來到Python世界!”的顯示信息。幾乎每種編程語言教程中都會展示一下“hello, world!”程序,雖然很俗套,但不得不說Python的實(shí)現(xiàn)是如此的簡單。緊接著執(zhí)行代碼“exit”退出Python環(huán)境,完成此一階段的測試(圖4)。

圖4 Python的“hello, world!”程序示例

命令提示符的界面過于簡陋,我們可以試試Python自帶的IDLE交互式開發(fā)環(huán)境。點(diǎn)擊系統(tǒng)“開始”按鈕,在開始菜單頂部的最近添加中就可以看到“IDLE(Pyton 3.11 64-bit)”程序了,點(diǎn)擊即可打開。

IDLE通過不同的顏色區(qū)分代碼及執(zhí)行結(jié)果,清晰明了。尤其方便的是,當(dāng)我們輸入某個函數(shù)時,它會智能顯示參數(shù)提示,輔助我們輸入代碼,非常方便(圖5)。

圖5 Python的IDLE交互式開發(fā)環(huán)境

除了一行一行的交互式執(zhí)行,IDLE還可以執(zhí)行擴(kuò)展名為“py”的Python程序文件,下面就來做個測試。首先點(diǎn)擊菜單命令“File→New File”打開IDLE的代碼編輯器,輸入以下代碼:

# Python 3: 顯示n個數(shù)以內(nèi)的斐波納契(Fibonacci)序列

def fib(n):

a, b = 0, 1

while a < n:

print(a, end=' ')

a, b = b, a+b

print

fib(1000)

代碼解釋:“#”后面的文字表示注釋,是程序員對代碼的說明,這是給閱讀代碼的人看的,Python解釋器會自動忽略這一行。接下來的“def fib(n):”定義了一個名為“fib”的函數(shù),其后縮進(jìn)的幾行代碼就是該函數(shù)的內(nèi)容,其主體是一個“while”循環(huán),通過斐波納契數(shù)列公式反復(fù)運(yùn)算,運(yùn)算結(jié)果通過“print”函數(shù)顯示出來,其參數(shù)“end=' '”表示每個數(shù)字后面加幾個空格,是為了將數(shù)字隔開(用來顯示的print函數(shù)在后面的示例中將頻繁出現(xiàn))。當(dāng)然,函數(shù)定義只是表明此函數(shù)能做什么,真正運(yùn)行還得對它進(jìn)行調(diào)用,這就是最后一行代碼“fib(1000)”的作用,在調(diào)用該函數(shù)時,傳遞了一個參數(shù)“1000”,表示要計算1000以內(nèi)的斐波納契數(shù)列(圖6)。

圖6 斐波納契數(shù)列計算

對于初學(xué)者來說可能還理解不了這段代碼,沒有關(guān)系,這正是后文要介紹的內(nèi)容?,F(xiàn)在按Ctrl+S鍵保存,在打開的保存對話框中輸入文件名(本例取名為“Fibonacci”),這里無需手動添加“py”后綴,它會自動添加(圖7)。

圖7 保存Python程序文件

保存完畢,點(diǎn)擊代碼編輯器的菜單命令“Run→Run Module”,或者直接按F5鍵,即可運(yùn)行這段代碼了。下次在IDLE中,隨時可以執(zhí)行菜單命令“File→Open”打開“Fibonacci.py”文件,并按F5鍵運(yùn)行(圖8)。

圖8 斐波納契數(shù)列計算程序的輸出結(jié)果

PyCharm——Python開發(fā)好伴侶

IDE是Integrated Development Environment的縮寫,意為集成開發(fā)環(huán)境,主要用來輔助程序開發(fā)。Python并不一定需要IDE,因為它可以在任何文本編輯器中編寫并從命令行運(yùn)行。但是IDE可以提供許多輔助功能,例如代碼調(diào)試、智能完成和語法高亮顯示等。另外,IDE還可以提供重構(gòu)、代碼導(dǎo)航和項目管理等工具,這些工具可以幫助我們更快、更輕松地編寫Python代碼,并且可以更輕松地調(diào)試和維護(hù)代碼。

Python開發(fā)人員有多種IDE可用,相對來說PyCharm是個非常不錯的選擇,它可以讓Python開發(fā)過程變得更加輕松和高效。值得稱道的是,PyCharm提供一個強(qiáng)大的社區(qū)版本,可以免費(fèi)使用,并且可以在網(wǎng)上獲得免費(fèi)支持。

首先進(jìn)入PyCharm主頁https://www.jetbrains.com/pycharm,點(diǎn)擊“DOWNLOAD”按鈕進(jìn)入下載頻道,在“Windows”選項卡下可以看到“Professional(專業(yè)版)”和“Community(社區(qū)版)”兩種版本,其中社區(qū)版是免費(fèi)的,點(diǎn)擊其下的“Download”按鈕下載即可。比較而言,社區(qū)版缺少對科學(xué)工具、網(wǎng)站開發(fā)、Web框架、遠(yuǎn)程開發(fā)、數(shù)據(jù)庫等的支持,不過對于一個初學(xué)者來說,這些影響不大(圖9)。

圖9 PyCharm專業(yè)版和社區(qū)版功能比較

雙擊下載所得的EXE文件啟動安裝向?qū)Вc(diǎn)擊“Next”按鈕進(jìn)入下一步,根據(jù)向?qū)崾具x擇安裝位置,創(chuàng)建快捷方式以及關(guān)聯(lián)py文件等,最后點(diǎn)擊“Install”進(jìn)行安裝即可。安裝完成,需要重新啟動系統(tǒng)(圖10)。

圖10 PyCharm社區(qū)版安裝向?qū)?/p>

重啟系統(tǒng)后,點(diǎn)擊“開始”按鈕,在開始菜單頂部的最近添加項中點(diǎn)擊“PyCharm Community Edition 2022.3.2 ”啟動PyCharm。第一次使用PyCharm需要進(jìn)行一些設(shè)置,首先顯示用戶協(xié)議,只有勾選“I confirm that I have read and accept the terms of this User Agreement”(同意該協(xié)議)才可以繼續(xù)。單擊“Continue”按鈕進(jìn)入數(shù)據(jù)共享頁面,如果不希望自己的數(shù)據(jù)被搜集,可以點(diǎn)擊“Don't Send(不發(fā)送)”按鈕繼續(xù),進(jìn)入PyCharm的歡迎界面(圖11)。

圖11 PyCharm歡迎界面

在“Projects”選項卡下點(diǎn)擊“New Project”按鈕新建一個項目,接下來設(shè)置新項目的保存位置和名稱(Location)。另外我們還得給PyCharm選定一個Python解釋器,本例中筆者勾選了“New environment using”項,選擇“Virtualenv”,可以看到其所用的解釋器正是前文所安裝的Python.exe(圖12)。

圖12 PyCharm新建項目窗口

設(shè)置完畢,點(diǎn)擊“Create”按鈕即可進(jìn)入PyCharm主界面,可以看到新項目中已經(jīng)自動生成了一個包含多行代碼的Python文件“main.py”,這是因為本例在新建項目窗口中筆者勾選了“Create a main.py welcome ”項。點(diǎn)擊菜單命令“Run→Run 'main.py'”,或者按Shift+F10快捷鍵,主界面下方即可實(shí)時運(yùn)行該程序(圖13)。

圖13 包含了預(yù)置文件的PyCharm文檔

我們可以在此項目中添加新的文件。點(diǎn)擊菜單命令“File→New”打開新建對話框,可以選擇多種文件類型,如網(wǎng)頁文件、資源文件等,這里筆者選擇創(chuàng)建Python文件(圖14)。

圖14 PyCharm可以創(chuàng)建多種類型的文件

接下來為新文件取一個名稱,我們繼續(xù)以上文中的斐波納契數(shù)列為例,所以將文件名設(shè)置為“Fibonacci”,按回車鍵回到主界面,輸入上文中斐波納契數(shù)列的示例代碼,然后點(diǎn)擊菜單命令“Run→Run”,在彈出的窗口中單擊剛剛創(chuàng)建的“Fibonacci.py”即可運(yùn)行它并在主界面下方顯示出運(yùn)行結(jié)果了。在手動輸入代碼時,能夠明顯感受到PyCharm的智能提示、自動補(bǔ)全、代碼檢查、快速修復(fù)等功能的強(qiáng)大,可以大大提高工作效率(圖15)。

圖15 PyCharm的智能提示和自動補(bǔ)全功能

PyCharm功能豐富,很難在一遍短文中講清楚,本文我們只需了解它的基本使用方法就夠了。下面我們將著重分析Python的語法和程序結(jié)構(gòu)。

Python的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)

計算機(jī)科學(xué)領(lǐng)域有一個著名的公式:計算機(jī)程序=數(shù)據(jù)結(jié)構(gòu)+算法。這一公式表明,數(shù)據(jù)結(jié)構(gòu)是程序的核心,而算法是解決問題的步驟。所以我們在學(xué)習(xí)某一編程語言的時候,很有必要先了解一下它的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)。

Python支持各種數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu),它們具有不同的屬性和特性,可以用于不同的任務(wù)。下面是Python中常用的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)的介紹。

Python簡單數(shù)據(jù)類型常見的有以下幾種(圖16):

1、整數(shù)類型(int)

整數(shù)類型是Python中最基本的數(shù)據(jù)類型之一。它代表整數(shù)值,可以是正數(shù)、負(fù)數(shù)或零。在Python中,整數(shù)沒有大小限制。

2、浮點(diǎn)數(shù)類型(float)

浮點(diǎn)數(shù)類型代表實(shí)數(shù)值,即包含小數(shù)點(diǎn)的數(shù)字。在Python中,浮點(diǎn)數(shù)也沒有大小限制。

3、布爾類型(bool)

布爾類型代表真和假兩個值,分別用True和False表示。布爾類型通常用于條件判斷和循環(huán)控制中。

4、字符串類型(str)

字符串類型代表文本,即一系列字符的序列。字符串用單引號、雙引號或三引號表示。三引號可以將多行文本括起來。Python中的字符串是不可變的,也就是說,一旦創(chuàng)建了字符串,就不能修改它的值。

圖16 Python中常見的數(shù)據(jù)類型示例

Python常見的數(shù)據(jù)結(jié)構(gòu)有以下幾種(圖17):

1、列表(list)

列表是Python中最常用的數(shù)據(jù)結(jié)構(gòu)之一,它是一個有序、可變的集合。列表中的元素可以是不同的數(shù)據(jù)類型??梢允褂盟饕炔僮鱽碓L問和修改列表中的元素。列表用中括號“[]”表示。

2、元組(tuple)

元組是另一個有序的集合,它是不可變的。元組中的元素可以是不同的數(shù)據(jù)類型。與列表不同,元組不能修改。元組用小括號“”表示。

3、集合(set)

集合可以包含不同的元素,它是無序的,沒有重復(fù)的值。集合可以用于集合運(yùn)算,例如并集、交集和差集。集合用大括號“{}”表示。

4、字典(dict)

字典是Python中的映射類型,它是無序的鍵值對集合,沒有重復(fù)的值。每個鍵都必須是唯一的,但值可以重復(fù)。可以使用鍵來訪問和修改字典中的值。字典也用中括號“{}”表示,只是其中的數(shù)據(jù)都是鍵值對形式。

圖17 Python常見的數(shù)據(jù)結(jié)構(gòu)示例

以上只是Python中最基本和最常用的數(shù)據(jù)類型及數(shù)據(jù)結(jié)構(gòu)。除此之外,Python還有其他一些數(shù)據(jù)類型,例如字節(jié)類型(bytes)、字節(jié)數(shù)組(bytearray)、內(nèi)存視圖(memoryview)、范圍類型(range)、空類型(none)等等,這里不再一一細(xì)述。熟悉這些數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)的特性和用法,可以幫助我們更好地編寫Python程序。

Python變量及賦值

如前文所述,計算機(jī)程序就是數(shù)據(jù)+算法。當(dāng)一個程序運(yùn)行時,其相關(guān)數(shù)據(jù)被加載到內(nèi)存中。內(nèi)存如同一個大倉庫,被分割為一個個小庫房。當(dāng)程序需要使用某個庫房時,首先要做一個聲明,表示要占用該庫房,并為其貼上一個標(biāo)簽。用編程術(shù)語來說,就是“聲明”了一個“變量”。聲明變量后,就可以在里面儲存各色貨物(數(shù)據(jù))了,編程術(shù)語稱之為“賦值”,這一操作通過等號運(yùn)算符“=”來實(shí)現(xiàn),等號左側(cè)為變量名稱,等號右側(cè)即賦予該變量的數(shù)據(jù)。以下代碼顯示了Python中的幾種賦值方式:

x = 1

x += 1

x, y, z = 1, 2, "Hello!"

x = y = z = 99.9

第1種是基本賦值,使用“=”將值賦給變量。

第2種是增量賦值,將一個值添加到變量的現(xiàn)有值中。假設(shè)變量x的初始值為1,那么“x += 2”就將x的值變成了1加2等于3了。這其實(shí)是一種復(fù)合運(yùn)算符賦值,如果將等號前的加號換成減號(x -= 2)則x將被賦值為1減2等于“-1”,如果將加號換成乘號(x *= 2)將得到1乘2等于2的值,以此類推。

第3種是多元賦值,如果需要賦值的變量很多,可以將它們放到一行中進(jìn)行賦值,只需用逗號將每個變量隔開即可,等號后面各變量對應(yīng)的賦值也同樣用逗號隔開。

第4種是鏈?zhǔn)劫x值,適用于將同樣一個數(shù)據(jù)同時賦值給多個變量。

理論上來說變量名可以由任意字符組成,不過Python對變量命名實(shí)際還是有一定限制的,規(guī)則要求:變量名只能由字母、數(shù)字和下劃線組成,且不能以數(shù)字開頭,另外變量名不能是Python關(guān)鍵字。比如“num_01”是合法變量名,而“01_num”則是非法變量名。再比如“my_var_name”是合法的,而帶空格的“my var name”則是非法的。另外像“if”、“while”、“for”等Python所保留的關(guān)鍵字是不能用來做變量名的。對于Python變量名還有一點(diǎn)需要注意,就是它是區(qū)分大小寫的,像“mytime”和“myTime”,這實(shí)際上是兩個變量。

變量還有一個重要屬性,即變量的類型,它規(guī)定了變量能夠儲存什么樣的數(shù)據(jù)。變量類型即上文所介紹的各類數(shù)據(jù)類型。其實(shí)所謂布爾類型(bool)、整數(shù)類型(int)、浮點(diǎn)數(shù)類型(float)、字符串類型(str)等等,只是一個形象說法,其本質(zhì)就是定義了該變量占用多大的空間,比如1個布爾變量只占用1位空間,而一個整數(shù)變量則需要8位(1字節(jié))空間。其他編程語言,比如C++、JAVA等,聲明一個變量時需要明確聲明其數(shù)據(jù)類型,而Python則省略了這一步,它直接通過所賦值的數(shù)據(jù)來自動確定該變量的類型,比如“x = 1”自動將x設(shè)置為整數(shù)類型,而“x = 99.9”則自動將x設(shè)置為浮點(diǎn)數(shù)類型。

Python表達(dá)式和運(yùn)算符

如果說變量是程序的“詞匯”,那么表達(dá)式就是程序的“句子”。詞匯量再豐富,不把它們組織成句子就毫無意義。Python中的表達(dá)式,是指由運(yùn)算符、操作數(shù)(變量和值)和函數(shù)調(diào)用一起構(gòu)成的組合,用以計算某種值的的公式。表達(dá)式總是會被計算并返回一個結(jié)果。

運(yùn)算符是構(gòu)成表達(dá)式的重要元素,它相當(dāng)于粘合劑將數(shù)據(jù)連接到一起,作為算法的“執(zhí)行者”它對變量和值進(jìn)行操作。Python中的運(yùn)算符大致分為以下七大類。

1、算術(shù)運(yùn)算符:這類運(yùn)算符執(zhí)行基本的算術(shù)運(yùn)算,如加(+)、減(-)、乘(*)、除(/)、模(%)和取冪(**)。以下代碼中,首先聲明了a、b兩個整數(shù)變量并分別賦值,然后對它們依次進(jìn)行了加、除、模等算術(shù)運(yùn)算,并通過print函數(shù)打印出運(yùn)算結(jié)果(見其后的注釋語句,下同)。

# Arithmetic operators

a = 5

b = 2

print(a + b) # Output: 7

print(a / b) # Output: 2.5

print(a % b) # Output: 1

2、比較運(yùn)算符:這類運(yùn)算符比較兩個值并返回一個布爾值(True或False)。它們包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于或等于(>=)和小于或等于(<=)。以下代碼首先聲明了x、y兩個整數(shù)變量并分別賦值,然后依次進(jìn)行了大于和等于這兩種比較運(yùn)算,其計算結(jié)果,x大于y是對的,所以返回結(jié)果True(真),而x==y顯然是錯誤的,所以返回結(jié)果為Flase(假)。

# Comparison operators

x = 10

y = 5

print(x > y) # Output: True

print(x == y) # Output: False

3、邏輯運(yùn)算符:這類運(yùn)算符對布爾值執(zhí)行邏輯操作。它們包括邏輯與(AND)、邏輯或(OR)和邏輯非(NOT)。以下代碼首先聲明了a、b兩個布爾變量,分別賦值為True(真)和Flase(假)。同一件事不可能同時又真又假,這個判斷顯然是錯誤的,所以邏輯與運(yùn)算“a and b”返回的結(jié)果是False(假)。而一件事或者是真或者是假,必居其一,這個判斷是正確的,所以邏輯或運(yùn)算“(a or b)”返回的結(jié)果為True(真)。

# Logical operators

a = True

b = False

print(a and b) # Output: False

print(a or b) # Output: True

4、位運(yùn)算符:這類運(yùn)算符對二進(jìn)制值執(zhí)行位操作。包括按位與(&)、按位或(|)、按位異或(^)、按位取反(~)、左移(<<)、右移(>>)。以下代碼中,首先聲明了x、y兩個整數(shù)變量,不過它們的賦值采用的二進(jìn)制,所以數(shù)字前面加上了“0b”標(biāo)志,其中二進(jìn)制的1010等于十進(jìn)制的10,二進(jìn)制的1100等于十進(jìn)制的12。最后兩行代碼分別對兩個變量進(jìn)行了按位與以及按位或運(yùn)算,得到了8和14的運(yùn)算結(jié)果。

# Bitwise operators

x = 0b1010 # Binary representation of 10

y = 0b1100 # Binary representation of 12

print(x & y) # Output: 0b100 (binary representation of 8)

print(x | y) # Output: 0b1110 (binary representation of 14)

5、賦值運(yùn)算符:這類運(yùn)算符為變量賦值。上文已有詳細(xì)介紹,此處不再贅述,下面僅舉一個增量賦值的簡單示例,“a += 2”表示在原有的值5之上再加2,所以最終賦值結(jié)果是7。

# Assignment operators

a = 5

a += 2

print(a) # Output: 7

6、標(biāo)識運(yùn)算符:這類運(yùn)算符比較兩個標(biāo)識符的存儲單元(內(nèi)存地址),判斷它們是不是引用自同一個對象(x is y),類似id(x) == id(y),如果引用的是同一個對象則返回True,如果不是則返回False。反之,則判斷兩個標(biāo)識符是不是引用自不同的對象(x is not y)。以下代碼首先聲明了一個列表變量,接著又將該變量的地址賦值給了變量y,這兩個變量實(shí)際指向的是同一個內(nèi)存地址,所以“x is y”的標(biāo)識運(yùn)算結(jié)果為True(真)。反之,變量z雖然也是一個列表,并且其值和x相同,但它們并不在同一個內(nèi)存地址上,所以“x is z”的標(biāo)識運(yùn)算結(jié)果為False(假)。

# Identity operators

x = [1, 2, 3]

y = x

z = [1, 2, 3]

print(x is y) # True

print(x is z) # False

7、成員關(guān)系運(yùn)算符:這類運(yùn)算符檢查值是否為序列或集合的成員,它們包括in和not in。以下代碼,通過“in”運(yùn)算符指出2是列表numbers的成員,并以“not in”運(yùn)算符指出6不是列表numbers的成員,這兩個運(yùn)算都是對的,所以返回的結(jié)果都為True(真)。

# Membership operators

numbers = [1, 2, 3, 4, 5]

print(2 in numbers) # Output: True

print(6 not in numbers) # Output: True

除了以上運(yùn)算符表達(dá)式外,Python還有字符串表達(dá)式、函數(shù)調(diào)用表達(dá)式,以及針對列表、元組和字典進(jìn)行運(yùn)算的表達(dá)式。每一類表達(dá)式都有各自的特色,它們是編程的重要組成部分,理解它們?nèi)绾喂ぷ鲗τ诰帉懹行У拇a至關(guān)重要。

表達(dá)式是用來計算的,但是如何控制計算的流程和邏輯以實(shí)現(xiàn)特殊的算法,就需要用到控制語句了。和其他編程語言一樣,Python的控制語句主要有三大類:順序語句、條件語句(if語句)和循環(huán)語句(for語句和while語句)。其中順序語句比較容易理解,即從先到后按順序一條一條執(zhí)行代碼命令,我們上面的示例基本都是順序語句。接下來我們重點(diǎn)介紹條件語句和循環(huán)語句。

條件語句

條件語句用于根據(jù)條件決定程序的執(zhí)行路徑,通常是實(shí)現(xiàn)分支選擇。它的基本語法如下:

if condition:

# 如果condition為True,則執(zhí)行這里的語句

elif condition2:

# 如果condition為False,但是condition2為True,則執(zhí)行這里的語句

else:

# 如果上述所有條件都為False,則執(zhí)行這里的語句

Python的條件語句使用if、elif和else關(guān)鍵字,其中if語句是必須的,elif和else語句是可選的。條件語句中的condition和condition2可以是任何返回布爾值的表達(dá)式,例如比較操作、邏輯操作或函數(shù)調(diào)用等。

下面是一個簡單的例子,演示如何使用條件語句判斷一個數(shù)是正數(shù)、負(fù)數(shù)還是零:

num = 5

if num > 0:

print("這個數(shù)是正數(shù)")

elif num == 0:

print("這個數(shù)是零")

else:

print("這個數(shù)是負(fù)數(shù)")

在這個例子中,如果num大于0,則打印出“這個數(shù)是正數(shù)”;否則,如果num等于0,則打印出“這個數(shù)是零”;當(dāng)num小于0時,打印出“這個數(shù)是負(fù)數(shù)”。

注意,Python中縮進(jìn)非常重要,因為它是區(qū)分代碼塊的方式。條件語句中的每個代碼塊必須縮進(jìn)相同的空格數(shù),通常是四個空格。

循環(huán)語句

循環(huán)語句用于重復(fù)執(zhí)行一段代碼。Python提供了兩種循環(huán)語句:for循環(huán)和while循環(huán)。

for循環(huán)用于遍歷序列(例如列表、元組、字符串等)中的每個元素。for循環(huán)的基本語法如下:

for variable in sequence:

# 在這里執(zhí)行循環(huán)體代碼

其中,variable是一個變量名,用于存儲序列中當(dāng)前遍歷到的元素;sequence是一個序列,可以是列表、元組、字符串等。for循環(huán)將會遍歷sequence中的每個元素,并將其賦值給variable,然后執(zhí)行循環(huán)體代碼,直到遍歷完所有元素。

下面這個簡單的例子演示了如何使用for循環(huán)遍歷一個列表:

numbers = [1, 2, 3, 4, 5]

for num in numbers:

print(num)

這個例子中我們定義了一個列表numbers,然后使用for循環(huán)遍歷列表中的每個元素,并將其賦值給變量num,最后打印出num的值(圖18)。

圖18 for循環(huán)遍歷列表后輸出

while循環(huán)重復(fù)執(zhí)行一段代碼,直到指定的條件不再滿足。while循環(huán)的基本語法如下:

while condition:

# 在這里執(zhí)行循環(huán)體代碼

其中,condition是一個返回布爾值的表達(dá)式。只要condition為True,while循環(huán)就會一直執(zhí)行循環(huán)體代碼,直到condition變?yōu)镕alse為止。

下面這個例子演示了如何使用while循環(huán)計算1到10的和:

total = 0

i = 1

while i <= 10:

total += i

i += 1

print("1到10的和為:", total)

本例我們定義了變量total和i,然后使用while循環(huán)重復(fù)執(zhí)行計算1到10的和的代碼,直到i大于10為止,最后打印出計算結(jié)果(圖19)。

注意,在使用while循環(huán)時,必須確保條件可以在某個時刻變?yōu)镕alse,否則循環(huán)將會無限執(zhí)行下去,導(dǎo)致程序卡死。可以使用break語句或者修改循環(huán)變量的值來結(jié)束循環(huán)。

圖19 while循環(huán)演示

Python函數(shù)定義和調(diào)用

函數(shù)是一組執(zhí)行特定任務(wù)的代碼,它可以重復(fù)使用,從而提高代碼的重用性和可讀性。在Python中,函數(shù)定義通常為以下格式:

def function_name(parameters):

"""

Docstring:函數(shù)的文檔字符串,用于描述函數(shù)的用途和參數(shù)。

"""

# code block to be executed

return value # 可選

上述定義中,def是函數(shù)定義的關(guān)鍵字;function_name是函數(shù)的名稱,由字母、數(shù)字和下劃線組成;parameters是函數(shù)的參數(shù),這是可選的,可以是零個或多個;Docstring是函數(shù)的文檔字符串,用于描述函數(shù)的用途和參數(shù),也是可選的;return是函數(shù)的返回值,同樣也是可選的。

下面介紹一個簡單的Python函數(shù)示例:

def greet(name):

"""

此函數(shù)對作為參數(shù)傳送的人表達(dá)歡迎。

"""

print("嗨, " + name + ",歡迎光臨!")

greet("韓梅梅")

本例定義了一個名為greet的函數(shù),它帶有一個參數(shù)name,用于向函數(shù)傳遞一個名稱。函數(shù)的主體包括一個打印語句,它將問候語與傳遞的名稱一起打印。函數(shù)定義后,需要調(diào)用它才能夠執(zhí)行,所以代碼的最后是函數(shù)調(diào)用語句,并傳遞了一個名稱“韓梅梅”(圖20)。

圖20 Python函數(shù)定義和調(diào)用

這只是一個簡單的例子,函數(shù)可以執(zhí)行比這更復(fù)雜的任務(wù)。函數(shù)的優(yōu)點(diǎn)之一,就是它們可以幫助你將代碼組織成更小、更易于管理的模塊,并將代碼分解為可維護(hù)的部分。函數(shù)還可以使用return語句返回值,允許將計算結(jié)果傳遞回調(diào)用代碼。

Python的程序結(jié)構(gòu)

上面學(xué)習(xí)了Python的基礎(chǔ)知識,現(xiàn)在就讓我們來了解一下完整的Python程序文件是什么樣。一般來說,Python的程序結(jié)構(gòu)通常由以下幾個部分分組成。

1、導(dǎo)入模塊:在程序的開頭,我們通常需要導(dǎo)入需要使用的模塊。這些模塊包含Python內(nèi)置的模塊,也包括第三方庫和自定義模塊。例如:

import math

import numpy as np

from my_module import my_function

2、全局變量和常量:在程序的頂部,通常定義一些全局變量和常量。這些變量可以在程序的任何地方訪問。例如:

PI = 3.14159

name = "John"

3、函數(shù)定義:在程序的中間通常定義各種函數(shù),用于執(zhí)行特定的任務(wù)。

4、主程序代碼:程序底部通常編寫主程序代碼,用于執(zhí)行程序的主要功能。主程序代碼可以調(diào)用導(dǎo)入的模塊、全局變量和常量以及定義的函數(shù)。例如:

import math

PI = 3.14159

def area_of_circle(radius):

return PI * radius ** 2

def main:

r = 5

area = area_of_circle(r)

print("The area of the circle with radius", r, "is", area)

if __name__ == '__main__':

main

本例我們定義了一個計算圓的面積的函數(shù)area_of_circle,然后在主程序代碼中使用該函數(shù)計算圓的面積并輸出結(jié)果。

注意,在這個例子中,我們使用“if __name__ == '__main__':”語句來檢查是否在運(yùn)行當(dāng)前模塊。如果模塊是主程序運(yùn)行的,它將執(zhí)行main函數(shù),否則將忽略它。這個語句通常用于避免在模塊被導(dǎo)入時執(zhí)行一些不必要的代碼。

總之,在Python中,程序結(jié)構(gòu)的規(guī)范化編寫有助于使代碼更易于閱讀、理解和維護(hù)。對于大型項目,通常需要更復(fù)雜的程序結(jié)構(gòu)和更具體的組織方式,例如使用面向?qū)ο缶幊獭?/p>

Python編程實(shí)戰(zhàn)

使用Python的優(yōu)勢之一就是有大量的第三方庫可以使用,我們無需從頭開發(fā),即可實(shí)現(xiàn)非常專業(yè)的應(yīng)用。下面的實(shí)戰(zhàn),我們通過Python加第三方庫的方式對Excel表格進(jìn)行處理。

假設(shè)我們有一個記錄全班同學(xué)考試成績的原始Excel文件,其中包括每個人的姓名、學(xué)號及各科成績的數(shù)據(jù)(圖21)?,F(xiàn)在因為某種需求,要把其中的“姓名”和“語文成績”兩列數(shù)據(jù)提取出來,單獨(dú)保存為新的Excel文件。

圖21 學(xué)生成績數(shù)據(jù)

能夠處理Excel文件的第三方庫有不少,這里我們選用的是Openpyxl。開始之前請先安裝它,操作極其簡單。打開Windows的命令提示符窗口,執(zhí)行“pip install openpyxl”命令即可(圖22)。

圖22 通過pip命令安裝Python第三方庫

我們也可以在PyCharm中安裝這個庫。點(diǎn)擊窗口底部的“Python Packages”選項打開一個窗格,然后在搜索框中輸入“openpyxl”,找到之后點(diǎn)擊右側(cè)的“Install package”按鈕即可安裝(圖23)。

圖23 在PyCharm中安裝Openpyxl庫

需要注意的是,Openpyxl庫只支持xlsx格式的Excel文件,不支持舊版的xls文件。萬事俱備,接下來就可以PyCharm中編寫Python程序了:

import openpyxl

# 打開原始Excel表格文件

workbook = openpyxl.load_workbook('原始數(shù)據(jù).xlsx')

# 選擇原始Excel表格中的第一個工作表

worksheet = workbook.active

# 創(chuàng)建一個新的工作簿

new_workbook = openpyxl.Workbook

# 選擇新工作簿中的第一個工作表

new_worksheet = new_workbook.active

# 將原始Excel表格中的“姓名”和“語文成績”兩列數(shù)據(jù)提取出來,并添加到新工作表中

for row in worksheet.iter_rows(values_only=True):

name, score = row[0], row[3]

new_worksheet.Append([name, score])

# 保存新工作簿到Excel文件中

new_workbook.save('姓名與語文成績.xlsx')

上述程序首先通過“import openpyxl”語句導(dǎo)入Openpyxl庫,然后使用“openpyxl.load_workbook”函數(shù)打開原始Excel表格文件,該函數(shù)將返回一個Workbook對象,存儲在名為workbook的變量中。接下來,使用workbook.active選擇原始Excel表格中的第一個工作表,該工作表將作為程序讀取數(shù)據(jù)的來源。

接著,使用“openpyxl.Workbook”函數(shù)創(chuàng)建一個新的工作簿,將返回一個Workbook對象,存儲在名為new_workbook的變量中。使用new_workbook.active選擇新工作簿中的第一個工作表,該工作表將作為程序?qū)懭霐?shù)據(jù)的目標(biāo)。

然后,使用“worksheet.iter_rows”函數(shù)迭代原始Excel表格中的每一行數(shù)據(jù),其中values_only=True表示只返回單元格的值。在每次迭代中,使用row[0]和row[3]提取出當(dāng)前行中的“姓名”和“語文成績”兩列數(shù)據(jù),分別存儲在名為name和score的變量中。最后,使用“new_worksheet.append”函數(shù)將name和score寫入到新工作表中。

最后,使用“new_workbook.save”函數(shù)將新工作簿中的數(shù)據(jù)保存到Excel文件中,文件名為“姓名與語文成績.xlsx”。

將原始數(shù)據(jù)Excel文件和Python程序文件放到同一個文件夾中,按Shift+F10鍵運(yùn)行程序,即可在該文件夾中保存一個僅有“姓名”和“語文成績”兩列的新的Excel文件了(圖24)。

圖24 運(yùn)行程序得到新的Excel文件

當(dāng)然,Python編程內(nèi)容豐富,不是一篇文章就能介紹完的。如果本文能為大家學(xué)習(xí)Python帶來些許的幫助,筆者也就知足了。 CF

原文刊登于2022 年 12月15 日出版《電腦愛好者》第 24 期

END

分享到:
標(biāo)簽:Python
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定