1. 程式人生 > >python課後作業總結

python課後作業總結

課後作業1. 一個列表中有多種字元型的元素,要求一將非字元型的全部改成字元型,要求二將所有字元型中的大寫字母改成小寫。
需要用到的知識有:
1.lower()函式,功能:將大寫字母改成小寫
2.列表生成式[s.lower() for s in L],其中s為列表中的元素而非列表
3.isinstance(元素 , 資料型別)函式,功能:判斷元素是否為某一資料型別
4.L.index(需要查詢的元素)函式,功能:查詢列表中元素的下標
5.L.insert(位置,需要插入的元素)函式,功能:將元素 插入列表的指定位置
實現的程式碼為:
這裡寫圖片描述
課後作業2. 將字串首尾的空格去掉
方法一:使用while迴圈與slice功能實現
方法二:使用遞迴函式與slice功能實現
這裡寫圖片描述


課後作業3. 漢諾塔的實現
需要使用到的知識是:遞迴,以及一些數學總結
該部落格對python遞迴法解決漢諾塔問題的解釋更加清晰

擴充套件作業:求出列表某元素的下標,列表中含有0個,一個或者多個該元素。
假設列表為:org = [1, 2, 2, 33, 2, 4, 5, 2],分別求出元素1、元素2的下標,其中元素2的所有下標都要求出。
方法一:先判斷元素的個數,然後判斷該個數的值,若為0則…若為1則..若大於1則以該個數為迴圈次數逐一獲取元素下標。
方法二:比方法一簡單,使用enumerate()函式
這裡寫圖片描述

課後作業4. 利用迭代尋找出列表中的最大最小值,並返回一個tuple值。
1.列表是否可以迭代,使用isinstance(L,Iterable)函式判斷,不滿足迭代條件時,應該給出錯誤提示“raise TypeError(‘error’)”


2.列表為空時的情況

#iteration 迭代的使用

# for i,ch in enumerate(['S','H','E']):
    # print(i,ch)

# for x,y in [(1,1),(2,4),(3,9)]:
    # print(x,y)

# for i,x in enumerate ([(1,1),(2,4),(3,9)]):
    # print(i,x)
#比較此三者的不同從而掌握enumarate()函式的應用及在for迴圈中引入兩個變數。for迴圈中最多也只能引入兩個變數



#功能:使用迭代找出list中的最大最小值,然後返回一個tuple
# def ite(L): # min=L[0] # max=L[0] # for i in L: # if i<min: # min=i # if i>max: # max=i # print(min,max) # return (min,max) # L=[96,11,17] # L=[]#會報錯 # tuple=ite(L) # print(tuple) #完善以上程式,需要加上的功能:1.判斷資料型別是否可以迭代,若不可以應該輸出型別錯誤 #2.當輸入的資料長度為0或者小於0時應該輸出“None”,否則會報"indexError",可令L為空值進行測試 #3.實現類似Java的小標迴圈輸出 from collections.abc import Iterable def ite(L): if(not isinstance(L,Iterable)):#在python中注意嚴格區分大小寫,eg:iterable會報錯,none與None也是不同的 raise TypeError('error') return None#功能1 elif len(L)==0 : return(None,None)#功能2 else: min=L[0] max=L[0] for i in L: if i<min: min=i if i>max: max=i #print(min,max) return (min,max) L=[96,11,17] # L=123 # L=[] tuple=ite(L) #下標迴圈輸出tuple for i,ch in enumerate(tuple):#功能3 print(i,ch)