高中信息技術(shù)浙教版(2019)必修1 3.2.9 序列應(yīng)用 課件-(20張PPT)_第1頁
高中信息技術(shù)浙教版(2019)必修1 3.2.9 序列應(yīng)用 課件-(20張PPT)_第2頁
高中信息技術(shù)浙教版(2019)必修1 3.2.9 序列應(yīng)用 課件-(20張PPT)_第3頁
高中信息技術(shù)浙教版(2019)必修1 3.2.9 序列應(yīng)用 課件-(20張PPT)_第4頁
高中信息技術(shù)浙教版(2019)必修1 3.2.9 序列應(yīng)用 課件-(20張PPT)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、13.2 Python程序設(shè)計9、 序列應(yīng)用9.1列表推導式列表推導式語法:expression for expr1 in sequence1 if condition1 for expr2 in sequence2 if condition2 for expr3 in sequence3 if condition3 . for exprN in sequenceN if conditionN29.1列表推導式 aList = x*x for x in range(10)相當于 aList = for x in range(10):aList.append(x*x)39.1列表推導式 fres

2、hfruit = banana, loganberry , passion fruit aList = w.strip() for w in freshfruit等價于下面的代碼 aList = for item in freshfruit:aList.append(item.strip()49.1列表推導式阿凡提與國王比賽下棋,國王說要是自己輸了的話,阿凡提想要什么他都可以拿得出來。阿凡提說那就要點米吧,棋盤一共有 64 個小格子,在第一個格子里放 1 粒米,第二個格子里放2 粒米,第三個格子里放 4 粒米,第四個格子里放 8 粒米,以此類推,后面每個格子里的米都是前一個格子里的 2 倍,一

3、直到把 64 個格子都放滿為止。那么到底需要多少粒米呢?使用列表推導式再結(jié)合內(nèi)置函數(shù)sum() 很容易得到答案。 sum(2*i for i in range(64)1844674407370955161559.1列表推導式例 5-17 有一個包含一些同學成績的字典,編寫程序計算所有成績的最高分、最低分和平均分,并查找所有最高分同學。scores = Zhang San: 45, Li Si: 78, Wang Wu: 99, Zhou Liu: 96, Zhao Qi: 65, Sun Ba: 90, Zheng Jiu: 78, Wu Shi: 99, Dong Shiyi: 60high

4、est = max(scores.values() # 最高分lowest = min(scores.values() # 最低分average = round(sum(scores.values()/len(scores), 2) # 平均分print(highest, lowest, average)highestPerson = name for name, score in scores.items() if score = highestprint(highestPerson)69.2生成器推導式生成器推導式的結(jié)果是一個生成器對象(generator object),具有惰性求值的特

5、點,只在需要時返回元素,并且其中的每個元素只能使用一次。在使用生成器對象的元素時,可以根據(jù)需要將其轉(zhuǎn)化為列表或元組,也可以使用內(nèi)置函數(shù) next() 進行遍歷,或者直接使用 for 循環(huán)來遍歷其中的元素。但不管使用哪種方法訪問其元素,只能從前向后正向訪問每個元素,沒有任何方法可以再次訪問已訪問過的元素。當所有元素訪問結(jié)束后,若需要重新訪問其中的元素,則必須重新創(chuàng)建該生成器對象。79.2生成器推導式 g = (i+2)*2 for i in range(10) # 創(chuàng)建生成器對象 ggenerator object at 0 x0000000003095200 tuple(g) # 將生成器對象

6、轉(zhuǎn)換為元組(4, 9, 16, 25, 36, 49, 64, 81, 100, 121) list(g) # 生成器對象已遍歷結(jié)束,沒有元素了 g = (i+2)*2 for i in range(10) # 重新創(chuàng)建生成器對象 next(g) # 使用內(nèi)置函數(shù)next()獲取生成器對象中的元素4 next(g) # 獲取下一個元素989.2生成器推導式 g = (i+2)*2 for i in range(10) for item in g: # 使用循環(huán)直接遍歷生成器對象中的元素 print(item, end= )4 9 16 25 36 49 64 81 100 121 g = (i

7、+2)*2 for i in range(10) 36 in g # 執(zhí)行該語句之后,g中不再有36True 36 in g # 這個語句會使用完g中剩余的所有元素False 49 in gFalse99.3 序列解包序列解包(sequence unpacking)的本質(zhì)是對多個變量同時賦值,要求等號左側(cè)變量的數(shù)量與等號右側(cè)值的數(shù)量相等,或與等號右側(cè)可迭代對象中包含的值的數(shù)量相等。109.3 序列解包 x, y, z = 1, 2, 3 # 多個變量同時賦值 a, b = b, a # 交換變量a和b的值 x, y, z = (False, 3.5, exp) x, y, z = range(

8、3) # 對range對象進行序列解包 x, y, z = map(str, range(3) # 對map對象進行序列解包119.3 序列解包 keys = a, b, c, d values = 1, 2, 3, 4 for k, v in zip(keys, values): print(k, v)a 1b 2c 3d 4129.3 序列解包 s = a:1, b:2, c:3 for k, v in s.items(): # 字典中每個元素包含“鍵”和“值”兩部分 print(k, v)a 1c 3b 2139.4 切片切片的格式由 2 個冒號及被其分隔的 3 個數(shù)字組成:start:

9、stop:step149.4.1使用切片獲取列表、元組、字符串中的部分元素 aList = 3, 4, 5, 6, 7, 9, 11, 13, 15, 17 aList: # 三個數(shù)字都使用默認值 # 返回包含原列表中所有元素的新列表3, 4, 5, 6, 7, 9, 11, 13, 15, 17 aList:-1 # step為-1,從后往前逐個元素進行切片 # 返回包含原列表中所有元素的逆序列表17, 15, 13, 11, 9, 7, 6, 5, 4, 3 aList:2 # 從下標0開始,隔一個取一個,獲取偶數(shù)位置的元素3, 5, 7, 11, 15 aList1:2 # 從下標1開始

10、,隔一個取一個,獲取奇數(shù)位置的元素4, 6, 9, 13, 17 aList3:6 # 從下標3到下標6,不包括下標66, 7, 9 aList0:100 # 切片結(jié)束位置大于列表長度時,從列表尾部截斷3, 4, 5, 6, 7, 9, 11, 13, 15, 17 aList100: # 切片開始位置大于列表長度時,返回空列表15 Explicit is better than implicit.:8 # 前8個字符Explicit Explicit is better than implicit.9:23 # 下標9到下標22之間的字符is better than path = C:Pyt

11、hon35test.bmp path:-4 + _new + path-4:C:Python35test_new.bmp169.4.1使用切片獲取列表、元組、字符串中的部分元素例 5-18 編寫程序,利用字符串切片操作判斷一個字符串是否為回文。text = input(請輸入一個字符串:)if text:-1 = text: print(是回文。)else: print(不是回文)179.4.1使用切片獲取列表、元組、字符串中的部分元素9.4.2使用切片對列表進行元素插入、刪除、修改操作(1)使用切片為列表元素進行增加或插入元素 aList = 3, 5, 7 aListlen(aList):

12、 = 9 # 在列表尾部增加元素 aList:0 = 1, 2 # 在列表頭部插入多個元素 aList3:3 = 4 # 在列表中間位置插入元素 aList1, 2, 3, 4, 5, 7, 918(2)使用切片替換和修改列表中的元素 aList = 3, 5, 7, 9 aList:3 = 1, 2, 3 # 替換列表元素,等號兩邊的列表長度相等 aList3: = 4, 5, 6 # 切片連續(xù),等號兩邊的列表長度可以不相等 aList1, 2, 3, 4, 5, 6 aList:2 = 0*3 # 切片不連續(xù),等號兩邊的列表長度必須相等 aList0, 2, 0, 4, 0, 6 aList:2 = a, b, c # 隔一個修改一個 aLista, 2, b, 4, c, 6 aList:2 = 1 # 切片不連續(xù)時,等號兩邊列表必須長度一樣Val

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論