Python程序設(shè)計-第二章_Python語言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第1頁
Python程序設(shè)計-第二章_Python語言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第2頁
Python程序設(shè)計-第二章_Python語言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第3頁
Python程序設(shè)計-第二章_Python語言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第4頁
Python程序設(shè)計-第二章_Python語言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Python程序設(shè)計Programming in Python主講:龐勝利2第二章 Python語言數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 Python程序基本概念 Python運(yùn)算符 Python表達(dá)式Python程序基本概念 僅僅打印“Hello World”就足夠了嗎?我們應(yīng)該想要做更多的事想要得到一些輸入,然后做操作,再從中得到一些輸出。在Python中,我們可以使用常量和變量來完成這些工作。 常量 一個字面意義上的常量的例子是如同5、1.23、9.25e-3這樣的 數(shù),或者如同This is a string、“Its a string!”這樣的字符串。 它們被稱作字面意義上的,因?yàn)樗鼈兙邆?字面

2、 的意義按照它們的字面意義使用它們的值。數(shù)2總是代表它自己,而不會是別的什么東西它是一個常量,因?yàn)椴荒芨淖兯闹?。因此,所有這些都被稱為字面意義上的常量。 數(shù)數(shù) 在Python中有4種類型的數(shù)整數(shù)、長整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)。 2是一個整數(shù)的例子。 長整數(shù)不過是大一些的整數(shù)。 3.23和52.3E-4是浮點(diǎn)數(shù)的例子。E標(biāo)記表示10的冪。在這里,52.3E-4表 示52.3 * 10-4。 (-5+4j)和(2.3-4.6j)是復(fù)數(shù)的例子字符串字符串 字符串是 字符的序列 。 C語言中用字符數(shù)組表示,如char str20 = “hello”. Python中的字符串可以如下表示: 使用單引號(使用單

3、引號():):可以用單引號指示字符串,就如同Quote me on this這樣。所有的空白,即空格和制表符都照原樣保留。 使用雙引號(使用雙引號(“):在雙引號中的字符串與單引號中的字符串的使用完全相同,例如”Whats your name?“。 字符串字符串 使用三引號(使用三引號(或或“”“):利用三引號,可以指):利用三引號,可以指示一個示一個多行多行的字符串,可以在三引號中自由的的字符串,可以在三引號中自由的使用單引號和雙引號使用單引號和雙引號,如:這是一個多行的字符串,你可以寫入任意字符,甚至是單引號和雙引號字符串字符串 轉(zhuǎn)義符轉(zhuǎn)義符 假設(shè)想要在一個字符串中包含一個單引號(),那么

4、該怎么指示這個字符串?例如,這個字符串是Whats your name?。 肯定不能用Whats your name?來指示它,因?yàn)镻ython會弄不明白這個字符串從何處開始,何處結(jié)束。 所以,需要指明單引號而不是字符串的結(jié)尾。可以通過 轉(zhuǎn)義符 來完成這個任務(wù)。用來指示單引號 注意這個反斜杠。現(xiàn)在可以把字符串表示為Whats your name?。 另一個表示這個特別的字符串的方法是“Whats your name?”,即用雙引號。類似地,要在雙引號字符串中 使用雙引號本身的時候,也可以借助于轉(zhuǎn)義符。另外,可以用轉(zhuǎn)義符來指示反斜杠本身。 值得注意的一件事是,在一個字符串中,行末的單獨(dú)一個反斜杠

5、表示字符串在下一行繼續(xù),而不是開始一個新的行This is the first sentence.This is the second sentence. This is the first sentence. This is the second sentence. 字符串字符串 自然字符串自然字符串 如果你想要指示某些不需要如轉(zhuǎn)義符那樣的特別處理的字符串,那么你需要指定一個自然字符串。自然字符串通過給字符串加上前綴r或R來指定。例如rNewlines are indicated by n“ 比較下面兩句話的區(qū)別:print Newlines are indicated by nhello

6、print rNewlines are indicated by nhello字符串字符串 Unicode字符串字符串 Unicode是書寫國際文本的標(biāo)準(zhǔn)方法。如果想要用中文、日文、韓文等寫文本,那么需要有一個支持Unicode的編輯器。類似地,Python允許處理Unicode文本只需要在字符串前加上前綴u或U。例如,uThis is a Unicode string.。 在處理文本文件的時候盡量使用Unicode編碼,特別是文件中含有用非英語的語言寫的文本。字符串字符串 字符串是不可變的字符串是不可變的 這意味著一旦創(chuàng)造了一個字符串,就不能再改變它了。雖然這看起來像是一件壞事,但實(shí)際上它不

7、是。我們將會在后面的程序中看到為什么說它不是一個缺點(diǎn)。 級連字符串級連字符串 如果把兩個字符串按字面意義相鄰放著,他們會被Python自動級連。例如,Whats your name?會 被自動轉(zhuǎn)為Whats your name?。 Whats your name?Whats your name?Whats + your name? 變量變量 僅僅使用字面意義上的常量很快就會不能滿足我們的需求我們需要一種既可以儲存信息又可以對它們進(jìn)行操作(改變它的內(nèi)容)的方法。這是為什么要引入 變量 。 變量的值可以變化,即可以使用變量存儲任何東西。變量只是計算機(jī)中存儲信息的一部分內(nèi)存。與字面意義上的常量不同,

8、需要一些能夠訪問這些變量的方法,因此要給變量命名。 標(biāo)識符的命名標(biāo)識符的命名 變量是標(biāo)識符的例子。 標(biāo)識符 是用來標(biāo)識 某樣?xùn)|西 的名字。在命名標(biāo)識符的時候,要遵循這些規(guī)則: 標(biāo)識符的第一個字符必須是字母表中的字母(大寫或小寫)或者一個下劃線( _ )。 標(biāo)識符名稱的其他部分可以由字母(大寫或小寫)、下劃線( _ )或數(shù)字(0-9)組成。 標(biāo)識符名稱是對大小寫敏感的。例如,myname和myName不是不是一個標(biāo)識符。注意前者中的小寫n和后者中的大寫N。有效 標(biāo)識符名稱的例子有i、_my_name、name_23和a1b2_c3。無效 標(biāo)識符名稱的例子有2things、this is spac

9、ed out和my-name。anddelfromnotwhileaselifglobalorwithassertelseifpassyieldbreakexceptimportprintclassexecinraisecontinuefinallyisreturndefforlambdatry標(biāo)識符的命名標(biāo)識符的命名-關(guān)鍵字關(guān)鍵字標(biāo)識符的命名標(biāo)識符的命名-類保留類保留 _*:from module import *將不被導(dǎo)出。交互環(huán)境最后表達(dá)式的值。 _*_:系統(tǒng)定義的名字 _*:類的私有變量或方法數(shù)據(jù)類型數(shù)據(jù)類型 每個變量都有自己的類型,可以處理不同類型的值,稱為數(shù)據(jù)類型數(shù)據(jù)類型。 基本的

10、類型是數(shù)和字符串,我們已經(jīng)討論過它們了。在后面的章節(jié)里面,我們會研究怎么用類創(chuàng)造我們自己的類型。 Python中一切都是對象,包括字符串和數(shù)。對象對象 Python把在程序中用到的任何東西都稱為 對象。Python是完全面向?qū)ο蟮恼Z言,任何變量都是對象,甚至包括執(zhí)行的代碼:函數(shù)。# Filename : var.pyi = 5print ii = i + 1print is = This is a multi-line string.This is the second line.print s 邏輯行與物理行邏輯行與物理行 物理行是在編寫程序時所 看見 的。邏輯行是Python 看見 的單個

11、語句。Python假定每個 物 理行 對應(yīng)一個 邏輯行 Python希望每行都只使用一個語句,這樣使得代碼更加易讀 如果想要在一個物理行中使用多于一個邏輯行,那么需要使用分號(;)來特別地標(biāo)明這種用法。分號表示一個邏輯行/語句的結(jié)束。例如: i=5print ii=5;print i;i=5;print i邏輯行與物理行邏輯行與物理行 強(qiáng)烈建議強(qiáng)烈建議堅持在每個物理行只寫一句邏輯在每個物理行只寫一句邏輯行行。 僅僅當(dāng)邏輯行太長的時候,在多于一個物理行寫一個邏輯行。這些都是為了盡可能避免使用分號,從而讓代碼更加易讀。 下面是一個在多個物理行中寫一個邏輯行的例子。它被稱為明確的行連接明確的行連接。

12、 s = This is a string. This continues the string.print s This is a string. This continues the string. 邏輯行與物理行邏輯行與物理行 有一種暗示的假設(shè),可以不需要使用反斜杠。這種情況出現(xiàn)在邏輯行中使用了圓括號、方括號或波形括號的時候。這被稱為暗示的行連接暗示的行連接。 a = 100, 200print a縮進(jìn)縮進(jìn) 空白在Python中是重要的。事實(shí)上行首的行首的空白是重要的空白是重要的。它稱為縮進(jìn)縮進(jìn)。在邏輯行 首的空白(空格和制表符)用來決定邏輯行的縮進(jìn)層次,從而用來決定語句的分組。 這意味

13、著同一層次的語句必須必須有相同的縮進(jìn)。每一組這樣的語句稱為一個塊塊。錯誤的縮進(jìn)會引發(fā)錯誤 不同于C/C+、Java用的是i = 5 print Value is, i # Error! Notice a single space at the start of the lineprint I repeat, the value is, i 縮進(jìn)縮進(jìn) 如何縮進(jìn)不要不要混合使用制表符和空格來縮進(jìn),因?yàn)檫@在跨越不同的平臺的時候,無法正常工作。強(qiáng)烈建議 在每個縮進(jìn)層次使用 單個制表符 或 兩個或四個空格 。選擇這三種縮進(jìn)風(fēng)格之一。更加重要的是,選擇一種風(fēng)格,然后一貫地一貫地使用它,即 只 使用這一種風(fēng)

14、格。 Python迫使程序員寫成統(tǒng)一、整齊并且具有可讀性程序的主要方式之一,這就意味著必須根據(jù)程序的邏輯結(jié)構(gòu),以垂直對齊的方式來組織程序代碼,結(jié)果就是讓程序更一致,并具有可讀性,因而具備了重用性和可維護(hù)性,對自己和他人都是如此。 縮進(jìn)縮進(jìn)if (x) if (y) statements;else statements;if x: if y: statementselse: statementsPython程序結(jié)構(gòu)1.程序由模塊構(gòu)成2.模塊包含語句3.語句包含表達(dá)式4.表達(dá)式建立并處理對象Python語法實(shí)質(zhì)上是有語句和表達(dá)式組成的。表達(dá)式處理對象并嵌套在語句中。語句編程實(shí)現(xiàn)程序操作中更大的邏輯

15、關(guān)系。此外,語句還是對象生成的地方,有些語句會生成新的對象類型(函數(shù)、類等)。語句總是存在于模塊中,而模塊本身則又是由語句來管理的。Python語法 Python增加了什么 新的語法成分冒號(:)。所有的復(fù)合語句(語句中嵌套了語句)都有相同的一般形式,就是首行以冒號結(jié)尾,首行下一行嵌套的代碼往往按縮進(jìn)的格式書寫。 Python刪除了什么 括號是可選的 終止行就是終止語句(分號) 縮進(jìn)的結(jié)束就是代碼塊的結(jié)束()if (x y) x = 1; y = 2;if x y: x = 1 y = 2運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式 編寫的大多數(shù)語句(邏輯行)都包含表達(dá)式表達(dá)式。一個簡單的表達(dá)式例子如2 +

16、3。一 個表達(dá)式可以分解為運(yùn)算符和操作數(shù)。運(yùn)算符 的功能是完成某件事,它們由如+這樣的符號或者其他特定的關(guān)鍵字表示。運(yùn)算符需要數(shù)據(jù)來進(jìn)行運(yùn)算,這樣的數(shù)據(jù)被稱為 操作數(shù) 。在這個例子中,2和3是操作數(shù)。 在Python中,表達(dá)式可以作為語句,但表達(dá)式結(jié)果不會存儲。運(yùn)算符及其用法 運(yùn)算符運(yùn)算符名稱名稱說明說明例子例子+加兩個對象相加3 + 5得到8。a + b得到ab。-減得到負(fù)數(shù)或是一個數(shù)減去另一個數(shù)-5.2得到一個負(fù)數(shù)。50 - 24得到26。*乘兩個數(shù)相乘或是返回一個被重復(fù)若干次的字符串2 * 3得到6。la * 3得到lalala。*冪返回x的y次冪3 * 4得到81(即3 * 3 * 3

17、 * 3)/除x除以y4/3得到1(整數(shù)的除法得到整數(shù)結(jié)果)。4.0/3或4/3.0得到1.3333333333333333/取整除返回商的整數(shù)部分4 / 3.0得到1.0%取模返回除法的余數(shù)8%3得到2。-25.5%2.25得到1.5左移把一個數(shù)的比特向左移一定數(shù)目(每個數(shù)在內(nèi)存中都表示為比特或二進(jìn)制數(shù)字,即0和1)2 右移把一個數(shù)的比特向右移一定數(shù)目11 1得到5。11按比特表示為1011,向右移動1比特后得到101,即十進(jìn)制的5。運(yùn)算符及其用法運(yùn)算符運(yùn)算符名稱名稱說明說明例子例子&按位與數(shù)的按位與5 & 3得到1。|按位或數(shù)的按位或5 | 3得到7。按位異或數(shù)的按位異或

18、5 3得到6按位翻轉(zhuǎn)x的按位翻轉(zhuǎn)是-(x+1)5得到6。運(yùn)算符及其用法運(yùn)算符運(yùn)算符名稱名稱說明說明例子例子小于返回x是否小于y。所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。5 3返回0(即False)而3 5返回1(即True)。比較可以被任意連接:3 5 大于返回x是否大于y5 3返回True。如果兩個操作數(shù)都是數(shù)字,它們首先被轉(zhuǎn)換為一個共同的類型。否則,它總是返回False。=小于等于返回x是否小于等于yx = 3; y = 6; x =大于等于返回x是否大于等于yx = 4; y = 3; x = y返回True。=等于比

19、較對象是否相等x = 2; y = 2; x = y返回True。x = str; y = stR; x = y返回False。x = str; y = str; x = y返回True。!=不等于比較兩個對象是否不相等x = 2; y = 3; x != y返回True。運(yùn)算符及其用法運(yùn)算符運(yùn)算符名稱名稱說明說明例子例子not布爾“非”如果x為True,返回False。如果x為False,它返回True。x = True; not y返回False。and布爾“與”如果x為False,x and y返回False,否則它返回y的計算值。x = False; y = True; x and y,由于x是False,返回False。在這里,Python不會計算y,因?yàn)樗肋@個表達(dá)式的值肯定是False(因?yàn)閤是False)。這個現(xiàn)象 稱為短路計算。or布爾“或”如果x是True,它返回True,否則它返回y的計算值。x = True; y = False; x or y返回True。運(yùn)算符優(yōu)先級運(yùn)算符優(yōu)先級 如果有一個如2 + 3 * 4那樣的表達(dá)式,是先做加法呢,還是先做乘法? 應(yīng)當(dāng)先做乘法這意味著乘法運(yùn)算符的優(yōu)先級高于加法運(yùn)算符 下面給出Python運(yùn)算符優(yōu)先級 運(yùn)算符運(yùn)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論