-
python:web網(wǎng)站、系統(tǒng)工具和腳本。查看全部
-
其實(shí)tuple也可以遍歷: t = (('a',1),('b',2),('c',3)) for x in t: print x[0]+':',x[1] *輸出結(jié)果為: a: 1 b: 2 c: 3 *查看全部
-
其實(shí)tuple也可以遍歷: t = (('a',1),('b',2),('c',3)) for x in t: print x[0]+':',x[1] *輸出結(jié)果為: a: 1 b: 2 c: 3 *查看全部
-
continue繼續(xù)循環(huán) 在循環(huán)過程中,可以用break退出當(dāng)前循環(huán),還可以用continue跳過后續(xù)循環(huán)代碼,繼續(xù)下一次循環(huán)。 假設(shè)我們已經(jīng)寫好了利用for循環(huán)計(jì)算平均分的代碼: L = [75, 98, 59, 81, 66, 43, 69, 85] sum = 0.0 n = 0 for x in L: sum = sum + x n = n + 1 print sum / n 現(xiàn)在老師只想統(tǒng)計(jì)及格分?jǐn)?shù)的平均分,就要把 x < 60 的分?jǐn)?shù)剔除掉,這時(shí),利用 continue,可以做到當(dāng) x < 60的時(shí)候,不繼續(xù)執(zhí)行循環(huán)體的后續(xù)代碼,直接進(jìn)入下一次循環(huán): for x in L: if x < 60: continue sum = sum + x n = n + 1查看全部
-
break退出循環(huán) 用 for 循環(huán)或者 while 循環(huán)時(shí),如果要在循環(huán)體內(nèi)直接退出循環(huán),可以使用 break 語句。 比如計(jì)算1至100的整數(shù)和,我們用while來實(shí)現(xiàn): sum = 0 x = 1 while True: sum = sum + x x = x + 1 if x > 100: break print sum 咋一看, while True 就是一個(gè)死循環(huán),但是在循環(huán)體內(nèi),我們還判斷了 x > 100 條件成立時(shí),用break語句退出循環(huán),這樣也可以實(shí)現(xiàn)循環(huán)的結(jié)束。查看全部
-
while循環(huán) 和 for 循環(huán)不同的另一種循環(huán)是 while 循環(huán),while 循環(huán)不會迭代 list 或 tuple 的元素,而是根據(jù)表達(dá)式判斷循環(huán)是否結(jié)束。 比如要從 0 開始打印不大于 N 的整數(shù): N = 10 x = 0 while x < N: print x x = x + 1 while循環(huán)每次先判斷 x < N,如果為True,則執(zhí)行循環(huán)體的代碼塊,否則,退出循環(huán)。 在循環(huán)體內(nèi),x = x + 1 會讓 x 不斷增加,最終因?yàn)?x < N 不成立而退出循環(huán)。 如果沒有這一個(gè)語句,while循環(huán)在判斷 x < N 時(shí)總是為True,就會無限循環(huán)下去,變成死循環(huán),所以要特別留意while循環(huán)的退出條件。查看全部
-
for循環(huán) list或tuple可以表示一個(gè)有序集合。如果我們想依次訪問一個(gè)list中的每一個(gè)元素呢?比如 list: L = ['Adam', 'Lisa', 'Bart'] print L[0] print L[1] print L[2] 如果list只包含幾個(gè)元素,這樣寫還行,如果list包含1萬個(gè)元素,我們就不可能寫1萬行print。 這時(shí),循環(huán)就派上用場了。 Python的 for 循環(huán)就可以依次把list或tuple的每個(gè)元素迭代出來: L = ['Adam', 'Lisa', 'Bart'] for name in L: print name 注意: name 這個(gè)變量是在 for 循環(huán)中定義的,意思是,依次取出list中的每一個(gè)元素,并把元素賦值給 name,然后執(zhí)行for循環(huán)體(就是縮進(jìn)的代碼塊)。 這樣一來,遍歷一個(gè)list或tuple就非常容易了。查看全部
-
有的時(shí)候,一個(gè) if ... else ... 還不夠用。比如,根據(jù)年齡的劃分: 條件1:18歲或以上:adult 條件2:6歲或以上:teenager 條件3:6歲以下:kid 我們可以用一個(gè) if age >= 18 判斷是否符合條件1,如果不符合,再通過一個(gè) if 判斷 age >= 6 來判斷是否符合條件2,否則,執(zhí)行條件3: if age >= 18: print 'adult' else: if age >= 6: print 'teenager' else: print 'kid' 這樣寫出來,我們就得到了一個(gè)兩層嵌套的 if ... else ... 語句。這個(gè)邏輯沒有問題,但是,如果繼續(xù)增加條件,比如3歲以下是 baby: if age >= 18: print 'adult' else: if age >= 6: print 'teenager' else: if age >= 3: print 'kid' else: print 'baby' 這種縮進(jìn)只會越來越多,代碼也會越來越難看。 要避免嵌套結(jié)構(gòu)的 if ... else ...,我們可以用 if ... 多個(gè)elif ... else ... 的結(jié)構(gòu),一次寫完所有的規(guī)則: if age >= 18: print 'adult' elif age >= 6: print 'teenager' elif age >= 3: print 'kid' else: print 'baby' elif 意思就是 else if。這樣一來,我們就寫出了結(jié)構(gòu)非常清晰的一系列條件判斷。 特別注意: 這一系列條件判斷會從上到下依次判斷,如果某個(gè)判斷為 True,執(zhí)行完對應(yīng)的代碼塊,后面的條件判斷就直接忽略,不再執(zhí)行了。查看全部
-
if-else 當(dāng) if 語句判斷表達(dá)式的結(jié)果為 True 時(shí),就會執(zhí)行 if 包含的代碼塊: if age >= 18: print 'adult' 如果我們想判斷年齡在18歲以下時(shí),打印出 'teenager',怎么辦? 方法是再寫一個(gè) if: if age < 18: print 'teenager' 或者用 not 運(yùn)算: if not age >= 18: print 'teenager' 細(xì)心的同學(xué)可以發(fā)現(xiàn),這兩種條件判斷是“非此即彼”的,要么符合條件1,要么符合條件2,因此,完全可以用一個(gè) if ... else ... 語句把它們統(tǒng)一起來: if age >= 18: print 'adult' else: print 'teenager' 利用 if ... else ... 語句,我們可以根據(jù)條件表達(dá)式的值為 True 或者 False ,分別執(zhí)行 if 代碼塊或者 else 代碼塊。 注意: else 后面有個(gè)“:”。查看全部
-
if語句 計(jì)算機(jī)之所以能做很多自動(dòng)化的任務(wù),因?yàn)樗梢宰约鹤鰲l件判斷。 比如,輸入用戶年齡,根據(jù)年齡打印不同的內(nèi)容,在Python程序中,可以用if語句實(shí)現(xiàn): age = 20 if age >= 18: print 'your age is', age print 'adult' print 'END' 注意: Python代碼的縮進(jìn)規(guī)則。具有相同縮進(jìn)的代碼被視為代碼塊,上面的3,4行 print 語句就構(gòu)成一個(gè)代碼塊(但不包括第5行的print)。如果 if 語句判斷為 True,就會執(zhí)行這個(gè)代碼塊。 縮進(jìn)請嚴(yán)格按照Python的習(xí)慣寫法:4個(gè)空格,不要使用Tab,更不要混合Tab和空格,否則很容易造成因?yàn)榭s進(jìn)引起的語法錯(cuò)誤。 注意: if 語句后接表達(dá)式,然后用:表示代碼塊開始。 如果你在Python交互環(huán)境下敲代碼,還要特別留意縮進(jìn),并且退出縮進(jìn)需要多敲一行回車: >>> age = 20 >>> if age >= 18: ... print 'your age is', age ... print 'adult' ... your age is 20 adult查看全部
-
“可變”的tuple 前面我們看到了tuple一旦創(chuàng)建就不能修改?,F(xiàn)在,我們來看一個(gè)“可變”的tuple: >>> t = ('a', 'b', ['A', 'B']) 注意到 t 有 3 個(gè)元素:'a','b'和一個(gè)list:['A', 'B']。list作為一個(gè)整體是tuple的第3個(gè)元素。list對象可以通過 t[2] 拿到: >>> L = t[2] 然后,我們把list的兩個(gè)元素改一改: >>> L[0] = 'X' >>> L[1] = 'Y' 再看看tuple的內(nèi)容: >>> print t ('a', 'b', ['X', 'Y']) 不是說tuple一旦定義后就不可變了嗎?怎么現(xiàn)在又變了? 別急,我們先看看定義的時(shí)候tuple包含的3個(gè)元素: 當(dāng)我們把list的元素'A'和'B'修改為'X'和'Y'后,tuple變?yōu)椋? 表面上看,tuple的元素確實(shí)變了,但其實(shí)變的不是 tuple 的元素,而是list的元素。 tuple一開始指向的list并沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個(gè)元素,指向永遠(yuǎn)不變。即指向'a',就不能改成指向'b',指向一個(gè)list,就不能改成指向其他對象,但指向的這個(gè)list本身是可變的! 理解了“指向不變”后,要?jiǎng)?chuàng)建一個(gè)內(nèi)容也不變的tuple怎么做?那就必須保證tuple的每一個(gè)元素本身也不能變。查看全部
-
創(chuàng)建單元素tuple tuple和list一樣,可以包含 0 個(gè)、1個(gè)和任意多個(gè)元素。 包含多個(gè)元素的 tuple,前面我們已經(jīng)創(chuàng)建過了。 包含 0 個(gè)元素的 tuple,也就是空tuple,直接用 ()表示: >>> t = () >>> print t () 創(chuàng)建包含1個(gè)元素的 tuple 呢?來試試: >>> t = (1) >>> print t 1 好像哪里不對!t 不是 tuple ,而是整數(shù)1。為什么呢? 因?yàn)?)既可以表示tuple,又可以作為括號表示運(yùn)算時(shí)的優(yōu)先級,結(jié)果 (1) 被Python解釋器計(jì)算出結(jié)果 1,導(dǎo)致我們得到的不是tuple,而是整數(shù) 1。 正是因?yàn)橛?)定義單元素的tuple有歧義,所以 Python 規(guī)定,單元素 tuple 要多加一個(gè)逗號“,”,這樣就避免了歧義: >>> t = (1,) >>> print t (1,) Python在打印單元素tuple時(shí),也自動(dòng)添加了一個(gè)“,”,為了更明確地告訴你這是一個(gè)tuple。 多元素 tuple 加不加這個(gè)額外的“,”效果是一樣的: >>> t = (1, 2, 3,) >>> print t (1, 2, 3)查看全部
-
創(chuàng)建tuple tuple是另一種有序的列表,中文翻譯為“ 元組 ”。tuple 和 list 非常類似,但是,tuple一旦創(chuàng)建完畢,就不能修改了。 同樣是表示班里同學(xué)的名稱,用tuple表示如下: >>> t = ('Adam', 'Lisa', 'Bart') 創(chuàng)建tuple和創(chuàng)建list唯一不同之處是用( )替代了[ ]。 現(xiàn)在,這個(gè) t 就不能改變了,tuple沒有 append()方法,也沒有insert()和pop()方法。所以,新同學(xué)沒法直接往 tuple 中添加,老同學(xué)想退出 tuple 也不行。 獲取 tuple 元素的方式和 list 是一模一樣的,我們可以正常使用 t[0],t[-1]等索引方式訪問元素,但是不能賦值成別的元素,不信可以試試: >>> t[0] = 'Paul' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment查看全部
-
替換元素 假設(shè)現(xiàn)在班里仍然是3名同學(xué): >>> L = ['Adam', 'Lisa', 'Bart'] 現(xiàn)在,Bart同學(xué)要轉(zhuǎn)學(xué)走了,碰巧來了一個(gè)Paul同學(xué),要更新班級成員名單,我們可以先把Bart刪掉,再把Paul添加進(jìn)來。 另一個(gè)辦法是直接用Paul把Bart給替換掉: >>> L[2] = 'Paul' >>> print L L = ['Adam', 'Lisa', 'Paul'] 對list中的某一個(gè)索引賦值,就可以直接用新的元素替換掉原來的元素,list包含的元素個(gè)數(shù)保持不變。 由于Bart還可以用 -1 做索引,因此,下面的代碼也可以完成同樣的替換工作: >>> L[-1] = 'Paul'查看全部
-
從list刪除元素 Paul同學(xué)剛來幾天又要轉(zhuǎn)走了,那么我們怎么把Paul 從現(xiàn)有的list中刪除呢? 如果Paul同學(xué)排在最后一個(gè),我們可以用list的pop()方法刪除: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> L.pop() 'Paul' >>> print L ['Adam', 'Lisa', 'Bart'] pop()方法總是刪掉list的最后一個(gè)元素,并且它還返回這個(gè)元素,所以我們執(zhí)行 L.pop() 后,會打印出 'Paul'。 如果Paul同學(xué)不是排在最后一個(gè)怎么辦?比如Paul同學(xué)排在第三: >>> L = ['Adam', 'Lisa', 'Paul', 'Bart'] 要把Paul踢出list,我們就必須先定位Paul的位置。由于Paul的索引是2,因此,用 pop(2)把Paul刪掉: >>> L.pop(2) 'Paul' >>> print L ['Adam', 'Lisa', 'Bart']查看全部
舉報(bào)
0/150
提交
取消