Python語言程序設(shè)計基礎(chǔ) 課件 第2章 Python基本語法_第1頁
Python語言程序設(shè)計基礎(chǔ) 課件 第2章 Python基本語法_第2頁
Python語言程序設(shè)計基礎(chǔ) 課件 第2章 Python基本語法_第3頁
Python語言程序設(shè)計基礎(chǔ) 課件 第2章 Python基本語法_第4頁
Python語言程序設(shè)計基礎(chǔ) 課件 第2章 Python基本語法_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第2章Python基本語法2.1引例2.2標識符與命名規(guī)則2.3變量與賦值2.4數(shù)據(jù)的輸入和輸出2.5數(shù)值2.6字符串2.7字符串格式化本章小結(jié)

2.1引

【例2-1】

計算矩形面積。通過用戶輸入獲取矩形的長度和寬度,然后計算并打印面積?!緟⒖即a】

運行上述代碼,得到如下結(jié)果:

對于上述計算矩形面積的Python程序,我們可以通過以下詳細步驟來理解其編程邏輯。

步驟1:明確問題。

步驟2:獲取用戶輸入。

步驟3:計算面積。

步驟4:顯示結(jié)果。

步驟5:測試和驗證。

上述過程展示了解決一個簡單編程問題的邏輯。通過明確問題、收集必要信息(通過用戶輸入)、處理這些信息(通過計算和轉(zhuǎn)換)、將處理后的信息(結(jié)果)反饋給用戶,我們可以逐步解決更復(fù)雜的問題。這個過程也強調(diào)了編程的基本要素:變量聲明與賦值、輸入/輸出操作、數(shù)據(jù)類型轉(zhuǎn)換、數(shù)學運算以及結(jié)果展示。通過理解這些基礎(chǔ)概念,在后面的學習中,我們可以編寫更復(fù)雜的程序來解決實際問題。

Python是一種非常注重可讀性的編程語言,其基本書寫規(guī)則旨在確保代碼清晰、簡潔。遵循這些規(guī)則能夠讓我們的代碼更易于維護,同時也能夠減少因為語法錯誤或格式不當導(dǎo)致的問題。

(1)雖然上述例子中沒有展示縮進,但是,在Python中,代碼縮進是非常重要的。Python使用縮進來表示代碼塊,不同于其他使用大括號的語言。標準的縮進為每級4個空格??s進的一致性對于保持代碼的結(jié)構(gòu)及可讀性非常關(guān)鍵。

(2)從第一列開始,前面不能有任何空格,否則會產(chǎn)生語法錯誤。注意:注釋語句可以從任意位置開始;復(fù)合語句構(gòu)造體必須縮進。在Python中,復(fù)合語句是指那些包含其他語句的語句,它們擴展了簡單語句的功能。復(fù)合語句通常用于控制程序的流程,進行數(shù)據(jù)的條件處理、循環(huán)處理等。

(3)在Python程序中,通常一行書寫一條語句,如果一行內(nèi)有多條語句,語句之間要求使用分號分隔。如果一條語句過長,可以使用反斜線“\”來實現(xiàn)分行書寫功能。在?()、[]、{}?內(nèi)的跨行語句,也被視為一行語句。例如:

(4)在Python程序中,添加注釋是非常必要的。注釋以“#”開始,對復(fù)雜的代碼塊和操作使用注釋,用來說明其功能或目的。單行注釋使用“#”,而多行注釋可以用三引號“'''”或“"""”包裹。

(5)在Python程序中,所有語法相關(guān)的符號,包括冒號“:”、單引號“'”、雙引號“"”以及小括號“()”等,都應(yīng)當使用英文輸入法進行輸入,除非這些符號位于字符串之內(nèi)。

2.2標識符與命名規(guī)則

2.2.1標識符在Python中,包、模塊、函數(shù)、類、變量等的名稱必須是有效的標識符。標識符在定義時,需遵循以下命名規(guī)則。

(1)標識符的第一個字符必須是字母(大寫或小寫)或下劃線(_)。

(2)標識符的其余部分可以由字母、下劃線(_)或數(shù)字(0~9)組成。

(3)標識符在Python中是區(qū)分大小寫的。例如,variable、Variable和VARIABLE是三個不同的標識符。

(4)標識符不能是Python的保留關(guān)鍵字。Python的保留關(guān)鍵字是該語言保留的單詞,擁有專門的編程意義(如if、for、class等,見后文)。

(5)標識符應(yīng)盡量具有描述性。例如,使用name或user_age比使用n或a更有意義。

(6)?Python3以后的版本支持Unicode字符作為標識符,但最好避免使用,特別是在代碼共享或國際化環(huán)境中。

2.2.2保留關(guān)鍵字

在Python中,關(guān)鍵字是一些預(yù)先保留的具有特殊語法意義的標識符。這些關(guān)鍵字定義了Python語言的規(guī)則和結(jié)構(gòu),不能用作變量名、函數(shù)名或任何其他標識符的名稱,否則會產(chǎn)生編譯錯誤。

每個關(guān)鍵字都有其特定的用途和意義,例如用于定義循環(huán)的for和while,用于條件判斷的if、elif和else,以及用于定義函數(shù)的def等。

Python3的關(guān)鍵字如表2-1所示。

在Python中,使用幫助系統(tǒng)可以查看系統(tǒng)關(guān)鍵字。Python提供了一個內(nèi)置的幫助系統(tǒng),可通過幾種不同的方式訪問,幫助我們查詢關(guān)鍵字、函數(shù)、模塊等信息。下面是使用Python的幫助系統(tǒng)來查看系統(tǒng)關(guān)鍵字的具體步驟和示例。

(1)運行Python內(nèi)置集成開發(fā)環(huán)境IDLE。

(2)進入幫助系統(tǒng)。當Python解釋器啟動后,輸入help()命令以進入Python的內(nèi)置幫助系統(tǒng)。

(3)搜索關(guān)鍵字。在幫助模式中,輸入keywords命令來查看所有的Python關(guān)鍵字。

(4)獲取特定關(guān)鍵字的幫助信息。如果想要獲得特定關(guān)鍵字的詳細信息,可以直接查詢該關(guān)鍵字。例如,如果我們想了解def關(guān)鍵字的用法,可以在幫助系統(tǒng)的提示符后輸入def。

(5)退出幫助系統(tǒng)。查看完所需信息后,輸入quit命令退出幫助系統(tǒng)。

2.3變

2.3.1變量在計算機程序中,被存儲和操作的信息通常被稱作數(shù)據(jù)。這些數(shù)據(jù)根據(jù)其類型以不同的方式被處理和存儲。數(shù)據(jù)類型不僅定義了數(shù)據(jù)的屬性,還規(guī)定了可以對數(shù)據(jù)執(zhí)行的操作。在Python中,變量是用來存儲數(shù)據(jù)值的標識符,它們指向內(nèi)存中保存數(shù)據(jù)的位置。也就是說,所有變量都是用來標識對象或引用對象的。變量的命名必須遵循標識符命名規(guī)則,例2-1中的length、width和area均為變量。

1.創(chuàng)建變量

在Python中創(chuàng)建變量非常簡單,無需事先聲明變量的類型,只需要給變量賦值即可自動創(chuàng)建。例如:

這里,x是一個整型變量,y是一個字符串型變量,z是一個浮點型變量。

2.變量的特點

Python是一種動態(tài)類型語言,不需要在聲明變量時指定其數(shù)據(jù)類型。數(shù)據(jù)類型會在運行時根據(jù)賦予變量的值自動確定。這意味著變量的類型可以在運行時改變。例如,可以先將一個變量賦值為整數(shù),然后再賦值為字符串。

上述代碼中,首先將x定義為一個整數(shù),然后再將同一個x變量定義為一個字符串。Python允許變量類型的動態(tài)更改。

需要注意的是,Python也是一種強類型語言,雖然變量的類型可以動態(tài)改變,但在特定的操作中,Python會根據(jù)變量的類型進行嚴格的類型檢查。例如,不能將字符串和整數(shù)直接相加。

2.3.2變量賦值

在Python中,變量的賦值操作是將一個值綁定到一個變量名上的過程。變量的賦值使用等號“=”來進行。等號左邊是變量名,右邊是要賦給變量的值。例如,創(chuàng)建一個名為a的變量,并給它賦值10,可以簡單地寫為:

這行代碼創(chuàng)建了一個整數(shù)類型(int)的變量a,并將其值設(shè)置為10。接下來,a可以用在任何需要整數(shù)值的地方,并且它的值可以被修改。

在Python中可以使用多種不同的方法來分配和修改變量的值。下面是一些基本的變量賦值。

1.簡單賦值

簡單賦值是最基礎(chǔ)的賦值方式,即將一個值賦給一個變量。其語法格式為:

2.鏈式賦值

鏈式賦值是一種同時將同一個值賦給多個變量的快捷方式。其語法格式為:

上述代碼使得a、b、和c三個變量都指向同一個整數(shù)對象100。

3.多重賦值

多重賦值允許在一個語句中為多個變量分別賦予不同的值,這種賦值方式在Python中非常有用,特別是當我們需要交換兩個變量的值,或者一次性初始化多個變量時。其語法格式為:

4.解包賦值

還有一種賦值,稱為解包賦值(unpacking),它允許從序列(如列表或元組)中提取值并直接賦給多個變量。

2.4數(shù)據(jù)的輸入和輸出

2.4.1輸入函數(shù)input()

input()函數(shù)用于從標準輸入(即鍵盤)接收用戶的輸入。該函數(shù)可以接收一個字符串參數(shù),該參數(shù)是在等待輸入時顯示的提示信息(也稱為提示符)。用戶輸入的內(nèi)容在按下Enter鍵后被讀取并作為函數(shù)的返回值,以字符串的形式返回。如果需要將用戶輸入的內(nèi)容轉(zhuǎn)換為其他類型,如整數(shù)或列表,需要配合使用類型轉(zhuǎn)換函數(shù),例如int()、float(),或者通過其他方式轉(zhuǎn)換。

【例2-6】input()函數(shù)示例。

【例2-7】

實現(xiàn)一個簡單的計算器。

【參考代碼】

上述代碼的運行結(jié)果如下:

2.4.2輸出函數(shù)print()

在Python3中,print()函數(shù)是最常用的內(nèi)置函數(shù)之一,其主要用途是在控制臺輸出信息。該函數(shù)非常靈活,能夠輸出各種不同類型的數(shù)據(jù),包括字符串、整數(shù)、浮點數(shù)、對象等。

print()函數(shù)的最基本用法是將傳遞給它的參數(shù)輸出到標準輸出(通常是屏幕)。如果傳入多個參數(shù),它們將默認以空格分隔,例如:

print()函數(shù)具有幾個重要的可選參數(shù),這些參數(shù)增強了其輸出能力。例如,sep參數(shù)定義用來分隔多個值的字符串,默認為一個空格。end參數(shù)定義輸出后添加的字符串,默認為換行符“\n”。例2-8和例2-9列舉了這些參數(shù)的具體使用方法。

【例2-8】print()函數(shù)示例。

【例2-9】print()中end參數(shù)的使用。

2.5數(shù)

值2.5.1數(shù)值類型

1.整數(shù)在Python中,整數(shù)類型用來表示沒有小數(shù)部分的數(shù),包括正數(shù)、負數(shù)和零,使用int類型來表示。Python中的整數(shù)沒有固定的大小限制,這意味著,理論上,只要計算機內(nèi)存足夠,就能處理任意大小的整數(shù)。

Python不僅支持十進制數(shù)的表示方式,還支持二進制(以0b或0B開頭)、八進制(以0o或0O開頭)和十六進制(以0x或0X開頭)的表示方式。

【例2-10】

整數(shù)類型示例。

2.浮點數(shù)

浮點數(shù)是帶小數(shù)的數(shù)字。Python中的浮點數(shù)使用float類型來表示。在Python中,浮點數(shù)是使用雙精度(64位)來存儲的。這意味著它可以提供大約16位的十進制精度。具體來說,浮點數(shù)的存儲分為三個部分:符號位(用于表示正負)、指數(shù)位和尾數(shù)位(或稱為小數(shù)位)。該存儲方式允許float表示非常大和非常小的數(shù),但這是有上下限的。當數(shù)值超過這個范圍時,會使用“inf”(無窮大)或“-inf”(負無窮大)來表示。

【例2-11】

浮點數(shù)類型示例。

3.復(fù)數(shù)

復(fù)數(shù)是表示實數(shù)和虛數(shù)部分的數(shù)。復(fù)數(shù)在Python中是用complex類型表示的。一個復(fù)數(shù)由兩部分組成:一個實部和一個虛部,通??杀硎緸閍?+?bj。

在Python中,復(fù)數(shù)可以直接通過將一個實數(shù)和一個虛數(shù)加在一起創(chuàng)建,或者使用內(nèi)置的complex(real,imag)函數(shù)創(chuàng)建。

【例2-12】

復(fù)數(shù)類型示例。

一旦創(chuàng)建了復(fù)數(shù),用戶可以使用?.real和?.imag屬性來訪問它的實部和虛部。例如:

4.布爾值

Python中的布爾(Boolean)類型是一種基礎(chǔ)數(shù)據(jù)類型,用于表示真值或假值。布爾類型有兩個值:True和False。需要注意的是,在Python中,True和False是關(guān)鍵字,并且是整數(shù)1和0的別名,因此它們也可以參與數(shù)值運算。

【例2-13】

布爾類型示例。

2.5.2數(shù)值類型的操作

Python提供了豐富的內(nèi)置操作來處理數(shù)值類型的數(shù)據(jù)(例如整數(shù)、浮點數(shù)、復(fù)數(shù))。

1.內(nèi)置數(shù)值運算操作符

Python內(nèi)置了一系列數(shù)值運算符,這些運算符允許執(zhí)行基本的數(shù)學運算,如加法、減法、乘法等,以及更復(fù)雜的操作,如冪運算等。表2-2是Python中常用的數(shù)值運算符的詳細描述和實例。

擴展的算術(shù)運算符(也稱為復(fù)合賦值運算符)提供了一種便捷的方式來修改變量的值,并且這種修改是基于原始值和某個操作的結(jié)果。這些運算符結(jié)合了基本的算術(shù)運算(如加法、減法、乘法等)和賦值操作,使得代碼更加簡潔、易讀。擴展的算術(shù)運算符如表2-3所示。

【例2-14】

數(shù)值運算操作符示例。

【例2-15】

假設(shè)投資1000元(P?=?1000),年利率為5%(r?=?0.05),利息每年計算一次(n?=?1),投資期限為10年(t?=?10)。請計算10年后的投資價值。

【參考代碼】

2.內(nèi)置的數(shù)值運算函數(shù)

Python不僅提供了數(shù)值運算操作符,還內(nèi)置了一些用于數(shù)學計算的函數(shù)。這些函數(shù)可以對數(shù)字進行處理,如求絕對值、四舍五入等操作。表2-4是Python中一些常用的內(nèi)置數(shù)值運算函數(shù)的功能描述及示例。

【例2-16】

已知三次考試成績,請計算平均成績,要求四舍五入到小數(shù)點后一位。并求出三次考試的最高和最低成績。

【參考代碼】

運行結(jié)果為:

2.5.3math庫的使用

1.導(dǎo)入math庫

在Python中,我們可以通過簡單的導(dǎo)入語句“importmath”來使用math模塊。例如:

還有一種寫法是:“frommathimport*”,或者,如果我們只需要使用特定的幾個函數(shù),也可以選擇性地通過“frommathimport<函數(shù)名>”導(dǎo)入這些函數(shù)。例如:

2.?math庫中主要數(shù)學函數(shù)和常量

表2-5和表2-6分別列出了math模塊中的常量和部分重要的數(shù)值函數(shù),以及它們的簡單描述和數(shù)學形式。

【例2-17】math庫的主要函數(shù)示例。

【例2-18】

計算三角形的面積。假設(shè)有一個三角形,已知其三邊長度分別為a、b和c,用海倫公式來計算這個三角形的面積。

【參考代碼】

【例2-19】

編寫一個Python程序,求解一元二次方程的實數(shù)根。

【參考代碼】

程序運行后,可得如下結(jié)果:

2.6字

2.6.1字符串類型

Python中的字符串(String)類型是一種用來處理文本的數(shù)據(jù)類型。在Python中,字符串是不可變的序列類型,這意味著一旦創(chuàng)建字符串,其內(nèi)容就不可更改。字符串可以包含字母、數(shù)字、符號和空格,Python使用單引號、雙引號和三雙引號作為定界符來表示字符串,不同的定界符之間可以相互嵌套。

【例2-20】

字符串類型示例。

2.6.2字符串的基本操作

(1)連接:使用“+”操作符可以連接兩個或多個字符串。例如:

(2)重復(fù):使用“*”操作符可以重復(fù)字符串多次。例如:

(3)索引:字符串索引是訪問字符串中單個字符的方法。在Python中,字符串被視為字符序列,每個字符在序列中都有一個確定的位置,即索引。索引可以是正數(shù),也可以是負數(shù)。使用正數(shù)索引時,計數(shù)從0開始;使用負數(shù)索引時,計數(shù)從?-1開始,表示字符串的最后一個字符。

【例2-21】

字符串索引示例。

(4)切片:除了使用索引訪問單個字符外,還可以通過切片操作獲取子字符串,切片通過指定開始索引和結(jié)束索引的方式來實現(xiàn),語法為[開始索引:結(jié)束索引]。在切片操作中,返回的子字符串包含開始索引對應(yīng)的字符,但不包含結(jié)束索引對應(yīng)的字符。

【例2-22】

字符串切片示例。

2.6.3字符串的內(nèi)置方法

Python提供了一系列內(nèi)置方法來進行字符串處理和查詢。下面將詳細介紹一些常用的字符串內(nèi)置方法,并提供具體的實例。

1.字符串查詢

字符串查詢的方法用來搜索或查詢字符串中特定內(nèi)容存在與否,或者獲取特定內(nèi)容的位置信息。以下是一些常用的字符串查詢方法及其具體實例。

(1)?count():用來統(tǒng)計字符串中某個字符或子串出現(xiàn)的次數(shù),如果不存在則返回0。例如:

(2)?find()和rfind():find()方法用來查找子字符串首次出現(xiàn)的位置(從左側(cè)開始查找),并返回子字符串開始的索引。如果找到了子字符串,則返回第一次出現(xiàn)的索引;如果沒有找到,則返回?-1。rfind()類似于find(),但是它是查找子字符串最后一次出現(xiàn)的位置。例如:

(3)?index()和rindex():index()和rindex()方法與find()和rfind()非常相似,但是當指定的子字符串不在主字符串中時,index()和rindex()會拋出一個ValueError異常,而不是返回-1。例如:

2.字符串分割與合并

(1)?spilt()和rsplit():split()和rsplit()方法用于將字符串按照指定的分隔符,從原字符串的左端和右端開始進行分割,并返回一個字符串列表(列表內(nèi)容后面章節(jié)將詳細介紹)。例如,以下代碼將字符串"hello,world"按照逗號進行分割。

split()方法還有一個可選參數(shù)maxsplit,用于指定分割的次數(shù)。例如,以下代碼將字符串"hello|world|python"按照豎線進行分割。

(2)?partition():partition()方法用于將字符串按照指定的分隔符進行分割,并返回一個包含分隔符的字符串列表。例如:

(3)?join():join()方法用于將列表中的字符串按照指定的分隔符進行連接,并返回一個新的字符串。例如,以下代碼將列表["hello","world"]按照冒號進行連接。

3.字符串轉(zhuǎn)換

4.字符串去除

(1)?strip():用于去除字符串兩側(cè)的空格或指定的字符(包括空格、換行符、制表符等)。如果不指定參數(shù),默認去除空格。例如:

(2)?lstrip()和rstrip():lstrip()用于去除字符串左端指定的字符;rstrip()用于去除字符串右端指定的字符。例如:

5.字符串替換

replace():用于在字符串中替換指定的子字符串。例如,以下代碼將字符串?"helloworld"中的?"world"?替換為?"python":

6.字符串判斷

(1)?startswith()和endswith():startswith()方法用于檢查字符串是否以指定的子字符串開始。endswith()方法用于檢查字符串是否以指定的子字符串結(jié)尾。例如:

7.字符串排版

(4)?zfill():返回指定長度的字符串,原字符串右對齊,前面填充0。例如:

2.6.4字符串的內(nèi)置函數(shù)

Python的字符串類型除了擁有許多實用的內(nèi)置方法之外,還可以通過一些內(nèi)置函數(shù)進行操作和處理。這些函數(shù)提供了另一種方式來處理字符串,經(jīng)常用于類型轉(zhuǎn)換、字符編碼等任務(wù)。下面列舉了一些常用的與字符串相關(guān)的內(nèi)置函數(shù)并提供了示例。

(1)?len():返回字符串中的字符數(shù)。請注意,對于字符串而言,len()計算的是字符的數(shù)量。例如:

如果字符串中包含多字節(jié)字符(如許多Unicode字符),這些字符也會被計算為一個單元。例如:

在上述代碼中,盡管這個字符串包含的是中文字符,每個中文字符在某些編碼下(如UTF-8)可能占用多個字節(jié),但len()計數(shù)的是字符數(shù),因此返回6,而不是字節(jié)的數(shù)量。

(2)?str():用于將一個對象轉(zhuǎn)換成字符串形式。例如:

(3)?hex()和oct():分別用于將整數(shù)轉(zhuǎn)換成其十六進制和八進制字符串表達形式,字符串以小寫形式顯示,且分別以0x和0o為前綴。例如:

(4)?ord()和chr():兩個互為逆操作的內(nèi)置函數(shù),用于字符與其ASCII碼或Unicode碼點之間的轉(zhuǎn)換。例如:

【例2-23】

使用ord()和chr()進行簡單的字符加密和解密。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論