【正文】
== 3如果我們要計(jì)算 11 / 4 的精確結(jié)果,按照“整數(shù)和浮點(diǎn)數(shù)混合運(yùn)算的結(jié)果是浮點(diǎn)數(shù)”的法則,把兩個(gè)數(shù)中的一個(gè)變成浮點(diǎn)數(shù)再運(yùn)算就沒問題了: / 4 == 5. Python中布爾類型我們已經(jīng)了解了Python支持布爾類型的數(shù)據(jù),布爾類型只有True和False兩種值,但是布爾類型有以下幾種運(yùn)算:與運(yùn)算:只有兩個(gè)布爾值都為 True 時(shí),計(jì)算結(jié)果才為 True。然后用Notepad++ 另存為... 并選擇UTF8格式保存。39。raw+多行:ur39。39。Unicode字符串除了多了一個(gè) u 之外,與普通字符串沒啥區(qū)別,轉(zhuǎn)義字符和多行表示法仍然有效:轉(zhuǎn)義:u39。...39。因?yàn)镻ython的誕生比Unicode標(biāo)準(zhǔn)發(fā)布的時(shí)間還要早,所以最早的Python只支持ASCII編碼,普通的字符串39。類似的,日文和韓文等其他語言也有這個(gè)問題。的編碼是65,小寫字母3. Python中Unicode字符串字符串還有一個(gè)編碼問題。Python is created by Guido.It is free and easy to learn.Let39。Line 1\nLine 2\nLine 339。Line 1Line 2Line 339。39。39。但是r39。rawm OK\.39。Bob said I39。Learn Python is useful39。這時(shí),可以用 括起來表示:I39。如果字符串本身包含39。四、 數(shù)據(jù)類型1. Python中定義字符串。XYZ39。XYZ39。ABC39。解釋器創(chuàng)建了字符串 但實(shí)際上b的值是39。呢還是39。b = aa = 39。的字符串;2. 在內(nèi)存中創(chuàng)建了一個(gè)名為a的變量,并把它指向39。當(dāng)我們寫:a = 39。請(qǐng)不要把賦值語句的等號(hào)等同于數(shù)學(xué)的等號(hào)。靜態(tài)語言在定義變量時(shí)必須指定變量類型,如果賦值的時(shí)候類型不匹配,就會(huì)報(bào)錯(cuò)。變量t_007是一個(gè)字符串。hello, world39。五、空值空值是Python里一個(gè)特殊的值,用None表示。布爾值可以用and、or和not運(yùn)算?;虮旧碇皇且环N表示方式,不是字符串的一部分,因此,字符串39。abc39。整數(shù)和浮點(diǎn)數(shù)在計(jì)算機(jī)內(nèi)部存儲(chǔ)的方式是不同的,整數(shù)運(yùn)算永遠(yuǎn)是精確的(除法難道也是精確的?是的?。?,而浮點(diǎn)數(shù)運(yùn)算則可能會(huì)有四舍五入的誤差。計(jì)算機(jī)由于使用二進(jìn)制,所以,有時(shí)候用十六進(jìn)制表示整數(shù)比較方便,十六進(jìn)制用0x前綴和09,af表示,例如:0xff00,0xa5b4c3d2,等等。二、浮點(diǎn)數(shù)浮點(diǎn)數(shù)也就是小數(shù),之所以稱為浮點(diǎn)數(shù),是因?yàn)榘凑湛茖W(xué)記數(shù)法表示時(shí),一個(gè)浮點(diǎn)數(shù)的小數(shù)點(diǎn)位置是可變的,比如,^^8是相等的。三、字符串字符串是以39。xyz等等。abc39。and運(yùn)算是與運(yùn)算,只有所有都為 True,and運(yùn)算結(jié)果才是 True。None不能理解為0,因?yàn)?是有意義的,而None是一個(gè)特殊的空值。用代碼實(shí)現(xiàn)如下: print 39。開頭,后面的文字直到行尾都算注釋三、 Python的變量在Python程序中,變量是用一個(gè)變量名表示,變量名必須是大小寫英文、數(shù)字和下劃線(_)的組合,且不能用數(shù)字開頭,比如:a = 1變量a是一個(gè)整數(shù)。在Python中,等號(hào)=是賦值語句,可以把任意數(shù)據(jù)類型賦值給變量,同一個(gè)變量可以反復(fù)賦值,而且可以是不同類型的變量,例如:a = 123 a是整數(shù)print aa = 39。例如Java是靜態(tài)語言,賦值語句如下(// 表示注釋):int a = 123。比如下面的代碼:x = 10x = x + 2如果從數(shù)學(xué)上理解x = x + 2那無論如何是不成立的,在程序中,賦值語句先計(jì)算右側(cè)的表達(dá)式x + 2,得到結(jié)果12,再賦給變量x。ABC39。ABC39。XYZ39。XYZ39。ABC39。39。:執(zhí)行b = a,解釋器創(chuàng)建了變量 b,并把b指向 a 指向的字符串39。解釋器創(chuàng)建了字符串39。但b并沒有更改:所以,最后打印變量b的結(jié)果自然是39。字符串可以用39。怎么辦?比如我們要表示字符串m OK類似的,如果字符串包含,我們就可以用39。如果字符串既包含39。m OK.由于 39。注意:轉(zhuǎn)義字符 \ 不計(jì)入字符串的內(nèi)容中。字符串,里面的字符就不需要轉(zhuǎn)義了。...39。39。表示:39。39。還可以在多行字符串前面添加 r ,把這個(gè)多行字符串也變成一個(gè)raw字符串:r39。s start learn Python in imooc!39。因?yàn)橛?jì)算機(jī)只能處理數(shù)字,如果要處理文本,就必須先把文本轉(zhuǎn)換為數(shù)字才能處理。z為了統(tǒng)一所有文字的編碼,Unicode應(yīng)運(yùn)而生。ABC39。表示,比如:print u39。中文\n日文\n韓文39。第一行第二行39。39。39。4. Python中整數(shù)和浮點(diǎn)數(shù)的運(yùn)算Python支持對(duì)整數(shù)和浮點(diǎn)數(shù)直接進(jìn)行四則混合運(yùn)算,運(yùn)算規(guī)則和數(shù)學(xué)上的四則運(yùn)算規(guī)則完全一致。True and True == TrueTrue and False == FalseFalse and True == FalseFalse and False == False或運(yùn)算:只要有一個(gè)布爾值為 True,計(jì)算結(jié)果就是 True。 or 39。這是為什么呢?因?yàn)镻ython把0、空字符串39。a=T39。a=T39。a=T39。2. 在計(jì)算 a or b 時(shí),如果 a 是 True,則根據(jù)或運(yùn)算法則,整個(gè)計(jì)算結(jié)果必定為 True,因此返回 a;如果 a 是 False,則整個(gè)計(jì)算結(jié)果必定取決于 b,因此返回 b。比如,列出班里所有同學(xué)的名字,就可以用一個(gè)list表示: [39。, 39。Adam39。Bart39。3. Python之倒序訪問listList的倒序檢索:最后一個(gè)為L(zhǎng)[1],倒數(shù)第二個(gè)為 L[2] …..注意倒序檢索也不能越界??!4. Python之添加新元素append(); 在集合最后邊添加新的元素;(0, 39。Adam39。Bart39。Lisa39。Paul39。Lisa39。Paul39。, 39。] (0, 39。, 39。, 39。) 的意思是,39。7. Python之創(chuàng)建tupletuple是另一種有序的列表,中文翻譯為“同樣是表示班里同學(xué)的名稱,用tuple表示如下: t = (39。, 39。包含多個(gè)元素的 tuple,前面我們已經(jīng)創(chuàng)建過了。多元素 tuple 加不加這個(gè)額外的“,”效果是一樣的: t = (1, 2, 3,) print t(1, 2, 3)9. Python之“可變”的tuple前面我們看到了tuple一旦創(chuàng)建就不能修改。b39。B39。b39。B39。X39。a39。X39。A39。X39。即指向39。指向一個(gè)list,就不能改成指向其他對(duì)象,但指向的這個(gè)list本身是可變的!理解了“指向不變”后,要?jiǎng)?chuàng)建一個(gè)內(nèi)容也不變的tuple就必須保證tuple的每一個(gè)元素本身也不能變。adult39。END39。如果 if 語句判斷為 True,就會(huì)執(zhí)行這個(gè)代碼塊。adult39。kid39。這樣一來,我們就寫出了結(jié)構(gòu)非常清晰的一系列條件判斷。如果我們想依次訪問一個(gè)list中的每一個(gè)元素呢?比如 list:Python的 for 循環(huán)就可以依次把list或tuple的每個(gè)元素迭代出來:L = [39。, 39。name 這個(gè)變量是在 for 循環(huán)中定義的,意思是,依次取出list中的每一個(gè)元素,并把元素賦值給 name,然后執(zhí)行for循環(huán)體(就是縮進(jìn)的代碼塊)。如果沒有這一個(gè)語句,while循環(huán)在判斷 x N 時(shí)總是為True,就會(huì)無限循環(huán)下去,變成死循環(huán),所以要特別留意while循環(huán)的退出條件。比如計(jì)算1至100的整數(shù)和,我們用while來實(shí)現(xiàn):sum = 0x = 1while True: sum = sum + x x = x + 1 if x 100: breakprint sum在循環(huán)體內(nèi),判斷了 x 100 條件成立時(shí),用break語句退出循環(huán),這樣也可以實(shí)現(xiàn)循環(huán)的結(jié)束。, 39。]: for y in [39。, 39。: 95, 39。: 59}u 可以簡(jiǎn)單地使用 d[key] 的形式來查找對(duì)應(yīng)的 valueu len(d) 函數(shù)返回dict的長(zhǎng)度u 判斷 key 是否存在,用 in 操作符:if 39。]u dict供的一個(gè) get 方法,獲取value值,在Key不存在的時(shí)候,返回None: print (39。)Noneu Python更新dictdict是可變的,也就是說,我們可以隨時(shí)往dict中添加新的 keyvalue。Lisa39。Paul39。而list的查找速度隨著元素增加而逐漸下降。但是list是可變的,就不能作為 key。Adam39。Bart39。A39。C39。B39。常用來判斷對(duì)象是否包含在set里。, 39。]) for name in s:... print name... LisaAdamBart注意:語句返回。如果沒有return語句,函數(shù)執(zhí)行完畢后也會(huì)返回結(jié)果,只是結(jié)果為 None。如果一個(gè)函數(shù)在內(nèi)部調(diào)用自身本身,這個(gè)函數(shù)就是遞歸函數(shù)。在計(jì)算機(jī)中,函數(shù)調(diào)用是通過棧(stack)這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,每當(dāng)進(jìn)入一個(gè)函數(shù)調(diào)用,棧就會(huì)加一層棧幀,每當(dāng)函數(shù)返回,棧就會(huì)減一層棧幀。例如Python自帶的 int() 函數(shù),其實(shí)就有兩個(gè)參數(shù),我們既可以傳一個(gè)參數(shù),又可以傳兩個(gè)參數(shù): int(39。, 8)83int()函數(shù)的第二個(gè)參數(shù)是轉(zhuǎn)換進(jìn)