-
while循環(huán) 和 for 循環(huán)不同的另一種循環(huán)是 while 循環(huán),while 循環(huán)不會(huì)迭代 list 或 tuple 的元素,而是根據(jù)表達(dá)式判斷循環(huán)是否結(jié)束。 比如要從 0 開(kāi)始打印不大于 N 的整數(shù): N = 10 x = 0 while x < N: print x x = x + 1 while循環(huán)每次先判斷 x < N,如果為T(mén)rue,則執(zhí)行循環(huán)體的代碼塊,否則,退出循環(huán)。 在循環(huán)體內(nèi),x = x + 1 會(huì)讓 x 不斷增加,最終因?yàn)?x < N 不成立而退出循環(huán)。 如果沒(méi)有這一個(gè)語(yǔ)句,while循環(huán)在判斷 x < N 時(shí)總是為T(mén)rue,就會(huì)無(wú)限循環(huán)下去,變成死循環(huán),所以要特別留意while循環(huán)的退出條件。查看全部
-
list或tuple可以表示一個(gè)有序集合。如果我們想依次訪問(wèn)一個(gè)list中的每一個(gè)元素呢?比如 list: L = ['Adam', 'Lisa', 'Bart'] print L[0] print L[1] print L[2] 如果list只包含幾個(gè)元素,這樣寫(xiě)還行,如果list包含1萬(wàn)個(gè)元素,我們就不可能寫(xiě)1萬(wàn)行print。 這時(shí),循環(huán)就派上用場(chǎng)了。 Python的 for 循環(huán)就可以依次把list或tuple的每個(gè)元素迭代出來(lái): L = ['Adam', 'Lisa', 'Bart'] for name in L: print name 注意: name 這個(gè)變量是在 for 循環(huán)中定義的,意思是,依次取出list中的每一個(gè)元素,并把元素賦值給 name,然后執(zhí)行for循環(huán)體(就是縮進(jìn)的代碼塊)。 這樣一來(lái),遍歷一個(gè)list或tuple就非常容易了。 任務(wù) 班里考試后,老師要統(tǒng)計(jì)平均成績(jī),已知4位同學(xué)的成績(jī)用list表示如下: L = [75, 92, 59, 68] 請(qǐng)利用for循環(huán)計(jì)算出平均成績(jī)。查看全部
-
age = 8 if age >= 18: print 'teenager' elif age >= 6: print 'adult' else: print 'kid' 先判斷大的再判斷小的查看全部
-
if...else, esle后還有 ':''查看全部
-
age = 20 if age >= 18: print 'your age is', age print 'adult' print 'END' 注意: Python代碼的縮進(jìn)規(guī)則。具有相同縮進(jìn)的代碼被視為代碼塊,上面的3,4行 print 語(yǔ)句就構(gòu)成一個(gè)代碼塊(但不包括第5行的print)。如果 if 語(yǔ)句判斷為 True,就會(huì)執(zhí)行這個(gè)代碼塊。 縮進(jìn)請(qǐng)嚴(yán)格按照Python的習(xí)慣寫(xiě)法:4個(gè)空格,不要使用Tab,更不要混合Tab和空格,否則很容易造成因?yàn)榭s進(jìn)引起的語(yǔ)法錯(cuò)誤。 注意: if 語(yǔ)句后接表達(dá)式,然后用:表示代碼塊開(kāi)始。 如果你在Python交互環(huán)境下敲代碼,還要特別留意縮進(jìn),并且退出縮進(jìn)需要多敲一行回車(chē): >>> age = 20 >>> if age >= 18: ... print 'your age is', age ... print 'adult' ... your age is 20 adult查看全部
-
面我們看到了tuple一旦創(chuàng)建就不能修改?,F(xiàn)在,我們來(lái)看一個(gè)“可變”的tuple: >>> t = ('a', 'b', ['A', 'B']) 注意到 t 有 3 個(gè)元素:'a','b'和一個(gè)list:['A', 'B']。list作為一個(gè)整體是tuple的第3個(gè)元素。list對(duì)象可以通過(guò) t[2] 拿到: >>> L = t[2] 然后,我們把list的兩個(gè)元素改一改: >>> L[0] = 'X' >>> L[1] = 'Y' 再看看tuple的內(nèi)容: >>> print t ('a', 'b', ['X', 'Y']) 不是說(shuō)tuple一旦定義后就不可變了嗎?怎么現(xiàn)在又變了? 別急,我們先看看定義的時(shí)候tuple包含的3個(gè)元素: 當(dāng)我們把list的元素'A'和'B'修改為'X'和'Y'后,tuple變?yōu)椋? 表面上看,tuple的元素確實(shí)變了,但其實(shí)變的不是 tuple 的元素,而是list的元素。 tuple一開(kāi)始指向的list并沒(méi)有改成別的list,所以,tuple所謂的“不變”是說(shuō),tuple的每個(gè)元素,指向永遠(yuǎn)不變。即指向'a',就不能改成指向'b',指向一個(gè)list,就不能改成指向其他對(duì)象,但指向的這個(gè)list本身是可變的! 理解了“指向不變”后,要?jiǎng)?chuàng)建一個(gè)內(nèi)容也不變的tuple怎么做?那就必須保證tuple的每一個(gè)元素本身也不能變。查看全部
-
在tuple中單元素是需要在其后面加‘,’防止引起歧義因?yàn)?)也是運(yùn)算中的優(yōu)先級(jí)的表達(dá)。查看全部
-
初學(xué)Python 可以去買(mǎi)個(gè)Raspberry Pi ,自帶Python查看全部
-
列表生成式的 for 循環(huán)后面還可以加上 if 判斷 1. isinstance(x, str) 可以判斷變量 x 是否是字符串 2. 字符串的 upper() 方法可以返回大寫(xiě)的字母。查看全部
-
values() itervalues() items() iteritems()都是dict對(duì)象的方法 索引迭代 enumerate() 是一個(gè)函數(shù)查看全部
-
enumerate() 函數(shù) 集合轉(zhuǎn)成(索引,值)得tuple zip()函數(shù)可以把兩個(gè) list 變成一個(gè) list: >>> zip([10, 20, 30], ['A', 'B', 'C']) [(10, 'A'), (20, 'B'), (30, 'C')]查看全部
-
values() 生成一個(gè)value 的 List用來(lái)迭代(有新的list) itervalues() 對(duì)每個(gè)value轉(zhuǎn)成一個(gè)list的一項(xiàng)用來(lái)迭代(無(wú)新的list) items() 生成一個(gè)value:key 的tuple list (有新的list) iteritems 每個(gè)key:value轉(zhuǎn)成tuple (無(wú)新list)查看全部
-
倒數(shù)第一個(gè)元素的索引是-1。倒序切片包含起始索引,不包含結(jié)束索引。查看全部
-
L[0:3]表示,從索引0開(kāi)始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個(gè)元素。 如果第一個(gè)索引是0,還可以省略 只用一個(gè) : ,表示從頭到尾 第三個(gè)參數(shù)表示每N個(gè)取一個(gè),上面的 L[::2] 會(huì)每?jī)蓚€(gè)元素取出一個(gè)來(lái),也就是隔一個(gè)取一個(gè)。查看全部
-
>>> L = ['Adam', 'Lisa', 'Bart'] 現(xiàn)在,Bart同學(xué)要轉(zhuǎn)學(xué)走了,碰巧來(lái)了一個(gè)Paul同學(xué),要更新班級(jí)成員名單,我們可以先把Bart刪掉,再把Paul添加進(jìn)來(lái)。 另一個(gè)辦法是直接用Paul把Bart給替換掉: >>> L[2] = 'Paul' >>> print L L = ['Adam', 'Lisa', 'Paul'] 對(duì)list中的某一個(gè)索引賦值,就可以直接用新的元素替換掉原來(lái)的元素,list包含的元素個(gè)數(shù)保持不變。 由于Bart還可以用 -1 做索引,因此,下面的代碼也可以完成同樣的替換工作: >>> L[-1] = 'Paul'查看全部
舉報(bào)
0/150
提交
取消