Python全棧學習_作業集錦(持續更新)
阿新 • • 發佈:2018-11-05
python基礎
day1 python初識
1. 計算機基礎(cpu,記憶體,硬碟,作業系統) 2. Python出生於應用 3. python發展史 4. 程式語言分類 5. python優缺點 6. python環境day1 大綱7. 執行Python程式碼 8. 變數 9. 常量 1. 註釋 11. 基礎資料型別初始 12. 程式互動input13. 流程控制語句if.
1、簡述變數命名規範 2、name = input(“>>>”) name變數是什麼資料型別? 3、if條件語句的基本結構? 4、用print打印出下面內容: ⽂能提筆安天下, 武能上⻢定乾坤. ⼼存謀略何⼈勝, 古今英雄唯是君. 5、利用if語句寫出猜大小的遊戲: 設定一個理想數字比如:66,讓使用者輸入數字,如果比66大,則顯示猜測的結果大了;如果比66小,則顯示猜測的結果小了;只有等於66,顯示猜測結果正確。 6、提⽰⽤戶輸入他的年齡, 程式進⾏判斷. 如果⼩於10, 提⽰⼩屁孩, 如果⼤於10, ⼩於day1 作業20, 提⽰青春期叛逆的⼩屁孩. 如果⼤於20, ⼩於30. 提⽰開始定性, 開始混社會的⼩ 屁孩⼉, 如果⼤於30, ⼩於40. 提⽰看老⼤不⼩了, 趕緊結婚⼩屁孩⼉. 如果⼤於40, ⼩ 於50. 提⽰家⾥有個不聽話的⼩屁孩⼉. 如果⼤於50, ⼩於60. 提⽰⾃⼰⻢上變成不聽 話的老屁孩⼉.如果⼤於60, ⼩於70. 提⽰活著還不錯的老屁孩⼉. 如果⼤於70, ⼩於 90. 提⽰⼈⽣就快結束了的⼀個老屁孩⼉. 如果⼤於90以上. 提⽰. 再⻅了這個世界. 7、單⾏註釋以及多⾏註釋? 8、簡述你所知道的Python3x和Python2x的區別? 9、提⽰⽤戶輸入⿇花藤. 判斷⽤戶輸入的對不對. 如果對, 提⽰真聰明, 如果不對, 提⽰你 是傻逼麼
1,變數的命名規範。 2,單行註釋,多行註釋。day1 默寫
day2 python初識
1. while迴圈 2. 格式化輸出 3. 運算子 4. 編碼初識day2 大綱
1、判斷下列邏輯語句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2、求出下列邏輯語句的值。 1),8 or 3 and 4 or 2 and 0 or 9 and 7 2),0 or 2 and 3 and 4 or 6 and 0 or 3 3、下列結果是什麼? 1)、6 or 2 > 1 2)、3 or 2 > 1 3)、0 or 5 < 4 4)、5 < 4 or 3 5)、2 > 1 or 6 6)、3 and 2 > 1 7)、0 and 3 > 1 8)、2 > 1 and 3 9)、3 > 1 and 0 10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 4、while迴圈語句基本結構? 5、利用if語句寫出猜大小的遊戲: 設定一個理想數字比如:66,讓使用者輸入數字,如果比66大,則顯示猜測的結果大了;如果比66小,則顯示猜測的結果小了;只有等於66,顯示猜測結果正確,然後退出迴圈。 6、在5題的基礎上進行升級: 給使用者三次猜測機會,如果三次之內猜測對了,則顯示猜測正確,退出迴圈,如果三次之內沒有猜測正確,則自動退出迴圈,並顯示‘太笨了你....’。 7、使用while迴圈輸出 1 2 3 4 5 6 8 9 10 8、求1-100的所有數的和(三種方法) 9、輸出 1-100 內的所有奇數(兩種方法) 10、輸出 1-100 內的所有偶數(兩種方法) 11、求1-2+3-4+5 ... 99的所有數的和 12、⽤戶登陸(三次輸錯機會)且每次輸錯誤時顯示剩餘錯誤次數(提示:使⽤字串格式化) 13、簡述ASCII、Unicode、utf-8編碼關係? 14、簡述位和位元組的關係? 15、“⽼男孩”使⽤UTF-8編碼佔⽤⼏個位元組?使⽤GBK編碼佔⼏個位元組?day2 作業
1. Bit,Bytes,KB,MB,GB,TB之間的轉換關係。 2. Unicode,utf-8,GBK,每個編碼英文,中文,分別用幾個位元組表示。day2 默寫
day3 初識資料型別
1. 基礎資料型別 總覽 2. int 3. bool 4. str 5. for迴圈day3 大綱
1,有變數name = "aleX leNb" 完成如下操作: 1) 移除 name 變數對應的值兩邊的空格,並輸出處理結果 2) 移除name變數左邊的"al"並輸出處理結果 3) 移除name變數右面的"Nb",並輸出處理結果 4) 移除name變數開頭的a"與最後的"b",並輸出處理結果 5) 判斷 name 變數是否以 "al" 開頭,並輸出結果 6) 判斷name變數是否以"Nb"結尾,並輸出結果 7) 將 name 變數對應的值中的 所有的"l" 替換為 "p",並輸出結果 8) 將name變數對應的值中的第一個"l"替換成"p",並輸出結果 9) 將 name 變數對應的值根據 所有的"l" 分割,並輸出結果。 10) 將name變數對應的值根據第一個"l"分割,並輸出結果。 11) 將 name 變數對應的值變大寫,並輸出結果 12) 將 name 變數對應的值變小寫,並輸出結果 13) 將name變數對應的值首字母"a"大寫,並輸出結果 14) 判斷name變數對應的值字母"l"出現幾次,並輸出結果 15) 如果判斷name變數對應的值前四位"l"出現幾次,並輸出結果 16) 從name變數對應的值中找到"N"對應的索引(如果找不到則報錯),並輸出結果 17) 從name變數對應的值中找到"N"對應的索引(如果找不到則返回-1)輸出結果 18) 從name變數對應的值中找到"X le"對應的索引,並輸出結果 19) 請輸出 name 變數對應的值的第 2 個字元? 20) 請輸出 name 變數對應的值的前 3 個字元? 21) 請輸出 name 變數對應的值的後 2 個字元? 22) 請輸出 name 變數對應的值中 "e" 所在索引位置? 2,有字串s = "123a4b5c" 1)通過對s切片形成新的字串s1,s1 = "123" 2)通過對s切片形成新的字串s2,s2 = "a4b" 3)通過對s切片形成新的字串s3,s3 = "1345" 4)通過對s切片形成字串s4,s4 = "2ab" 5)通過對s切片形成字串s5,s5 = "c" 6)通過對s切片形成字串s6,s6 = "ba2" 3,使用while和for迴圈分別列印字串s="asdfer"中每個元素。 4,使用for迴圈對s="asdfer"進行迴圈,但是每次列印的內容都是"asdfer"。 5,使用for迴圈對s="abcdefg"進行迴圈,每次列印的內容是每個字元加上sb, 例如:asb, bsb,csb,...gsb。 6,使用for迴圈對s="321"進行迴圈,列印的內容依次是:"倒計時3秒","倒計時2秒","倒計時1秒","出發!"。 7,實現一個整數加法計算器(兩個數相加): 如:content = input("請輸入內容:") 使用者輸入:5+9或5+ 9或5 + 9,然後進行分割再進行計算。 8,升級題:實現一個整數加法計算器(多個數相加): 如:content = input("請輸入內容:") 使用者輸入:5+9+6 +12+ 13,然後進行分割再進行計算。 9,計算使用者輸入的內容中有幾個整數(以個位數為單位)。 如:content = input("請輸入內容:") # 如fhdal234slfh98769fjdla 10、寫程式碼,完成下列需求: 使用者可持續輸入(用while迴圈),使用者使用的情況: 輸入A,則顯示走大路回家,然後在讓使用者進一步選擇: 是選擇公交車,還是步行? 選擇公交車,顯示10分鐘到家,並退出整個程式。 選擇步行,顯示20分鐘到家,並退出整個程式。 輸入B,則顯示走小路回家,並退出整個程式。 輸入C,則顯示繞道回家,然後在讓使用者進一步選擇: 是選擇遊戲廳玩會,還是網咖? 選擇遊戲廳,則顯示 ‘一個半小時到家,爸爸在家,拿棍等你。’並讓其重新輸入A,B,C選項。 選擇網咖,則顯示‘兩個小時到家,媽媽已做好了戰鬥準備。’並讓其重新輸入A,B,C選項。 11、寫程式碼:計算 1 - 2 + 3 ... + 99 中除了88以外所有數的總和? 16、製作趣味模板程式需求:等待⽤戶輸⼊名字、地點、愛好,根據⽤戶的名字和愛好進⾏任意現實 如:敬愛可親的xxx,最喜歡在xxx地⽅⼲xxx 17、等待⽤戶輸⼊內容,檢測⽤戶輸⼊內容中是否包含敏感字元?如果存在敏感字元提示“存在敏感字元請重新輸⼊”,並允許⽤戶重新輸⼊並列印。敏感字元:“⼩粉嫩”、“⼤鐵錘”day3 作業
分別用while,for迴圈輸出字串s = input("你想輸入的內容")的每一個字元。day3 默寫
day4 資料型別
1. 列表 2. 列表的索引、切片、步長 3. 列表的常用操作 增 刪 改 查 其他操作 4. 列表的巢狀 5. rangeday4 大綱
1,寫程式碼,有如下列表,按照要求實現每一個功能 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 1)計算列表的長度並輸出 2)列表中追加元素"seven",並輸出新增後的列表 3)請在列表的第1個位置插入元素"Tony",並輸出新增後的列表 4)請修改列表第2個位置的元素為"Kelly",並輸出修改後的列表 5)請將列表l2=[1,"a",3,4,"heart"]的每一個元素新增到列表li中,一行程式碼實現,不允許迴圈新增。 6)請將字串s = "qwert"的每一個元素新增到列表li中,一行程式碼實現,不允許迴圈新增。 7)請刪除列表中的元素"eric",並輸出新增後的列表 8)請刪除列表中的第2個元素,並輸出刪除的元素和刪除元素後的列表 9)請刪除列表中的第2至4個元素,並輸出刪除元素後的列表 10)請將列表所有得元素反轉,並輸出反轉後的列表 11)請計算出"alex"元素在列表li中出現的次數,並輸出該次數。 2,寫程式碼,有如下列表,利用切片實現每一個功能 li = [1, 3, 2, "a", 4, "b", 5,"c"] 1)通過對li列表的切片形成新的列表l1,l1 = [1,3,2] 2)通過對li列表的切片形成新的列表l2,l2 = ["a",4,"b"] 3)通過對li列表的切片形成新的列表l3,l3 = ["1,2,4,5] 4)通過對li列表的切片形成新的列表l4,l4 = [3,"a","b"] 5)通過對li列表的切片形成新的列表l5,l5 = ["c"] 6)通過對li列表的切片形成新的列表l6,l6 = ["b","a",3] 3,寫程式碼,有如下列表,按照要求實現每一個功能。 lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] 1)將列表lis中的"tt"變成大寫(用兩種方式)。 2)將列表中的數字3變成字串"100"(用兩種方式)。 3)將列表中的字串"1"變成數字101(用兩種方式)。 4,請用程式碼實現: li = ["alex", "eric", "rain"] 利用下劃線將列表的每一個元素拼接成字串"alex_eric_rain" 5,利用for迴圈和range打印出下面列表的索引。 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 6,利用for迴圈和range找出100以內所有的偶數並將這些偶數插入到一個新列表中。 7,利用for迴圈和range 找出50以內能被3整除的數,並將這些數插入到一個新列表中。 8,利用for迴圈和range從100~1,倒序列印。 9,利用for迴圈和range從100~10,倒序將所有的偶數新增到一個新列表中,然後對列表的元素進行篩選,將能被4整除的數留下來。 10,利用for迴圈和range,將1-30的數字一次新增到一個列表中,並迴圈這個列表,將能被3整除的數改成*。 11,查詢列表li中的元素,移除每個元素的空格,並找出以"A"或者"a"開頭,並以"c"結尾的所有元素,並新增到一個新列表中,最後迴圈列印這個新列表。 li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] 12,開發敏感詞語過濾程式,提示使用者輸入評論內容,如果使用者輸入的內容中包含特殊的字元: 敏感詞列表 li = ["蒼老師", "東京熱", "武藤蘭", "波多野結衣"] 則將使用者輸入的內容中的敏感詞彙替換成等長度的*(蒼老師就替換***),並新增到一個列表中;如果使用者輸入的內容沒有敏感詞彙,則直接新增到上述的列表中。 13,有如下列表 li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] 迴圈列印列表中的每個元素,遇到列表則再迴圈打印出它裡面的元素。 我想要的結果是: 1 3 4 "alex" 3 7, 8 "taibai" 5 ritianday4 作業
1,將列表的增刪改查不同的方法全部寫出來, 例如:增:有三種,append:在後面新增。Insert按照索引新增, expend:迭代著新增。 2,默寫第,13題的實現的程式碼。day4 默寫
day5 資料型別
1. 字典的增刪改查以及其他操作 2. 字典的巢狀day5 大綱
1,有如下變數(tu是個元祖),請實現要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44]) a. 講述元祖的特性 b. 請問tu變數中的第一個元素 "alex" 是否可被修改? c. 請問tu變數中的"k2"對應的值是什麼型別?是否可以被修改?如果可以,請在其中新增一個元素 "Seven" d. 請問tu變數中的"k3"對應的值是什麼型別?是否可以被修改?如果可以,請在其中新增一個元素 "Seven" 2, 字典dic,dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} a.請迴圈輸出所有的key b.請迴圈輸出所有的value c. 請迴圈輸出所有的key和value d. 請在字典中新增一個鍵值對,"k4": "v4",輸出新增後的字典 e. 請在修改字典中 "k1" 對應的值為 "alex",輸出修改後的字典 f. 請在k3對應的值中追加一個元素 44,輸出修改後的字典 g. 請在k3對應的值的第 1 個位置插入個元素 18,輸出修改後的字典 3,av_catalog = { "歐美":{ "www.youporn.com": ["很多免費的,世界最大的","質量一般"], "www.pornhub.com": ["很多免費的,也很大","質量比yourporn高點"], "letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"], "x-art.com":["質量很高,真的很高","全部收費,屌絲請繞過"] }, "日韓":{ "tokyo-hot":["質量怎樣不清楚,個人已經不喜歡日韓範了","verygood"] }, "大陸":{ "1024":["全部免費,真好,好人一生平安","伺服器在國外,慢"] } } e,給 '大陸' 對應的字典新增一個鍵值對 '1048' :['一天就封了'] f,刪除此"letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"]鍵值對。 g,給此["全部免費,真好,好人一生平安","伺服器在國外,慢"]列表的第一個元素,加上一句話:'可以爬下來' 4、有字串"k:1|k1:2|k2:3|k3:4" 處理成字典 {'k':1,'k1':2....} 5、元素分類 有如下值li= [11,22,33,44,55,66,77,88,99,90],將所有大於 66 的值儲存至字典的第一個key中,將小於 66 的值儲存至第二個key的值中。 即: {'k1': 大於66的所有值列表, 'k2': 小於66的所有值列表} 6、輸出商品列表,使用者輸入序號,顯示使用者選中的商品 商品列表: goods = [{"name": "電腦", "price": 1999}, {"name": "滑鼠", "price": 10}, {"name": "遊艇", "price": 20}, {"name": "美女", "price": 998}, ] 要求: 1:頁面顯示 序號 + 商品名稱 + 商品價格,如: 1 電腦 1999 2 滑鼠 10 … 2:使用者輸入選擇的商品序號,然後列印商品名稱及商品價格 3:如果使用者輸入的商品序號有誤,則提示輸入有誤,並重新輸入。 4:使用者輸入Q或者q,退出程式。day5 作業
1. 字典的增刪改查。 2. 過濾敏感字元程式碼的默寫。 li = ["蒼老師","東京熱","武藤蘭","波多野結衣"] l1 = [] comment = input('請輸入評論>>>') for i in li: comment = comment.replace(i,'*'*len(i)) l1.append(comment) print(l1)day5 默寫
day6 資料型別和編碼
day7 集合和深淺拷貝
day8 檔案操作
函式
day9 初識函式
1. 函式的初識 2. 函式的返回值 3. 函式的引數day9 大綱
1,整理函式相關知識點,寫部落格。 2,寫函式,檢查獲取傳入列表或元組物件的所有奇數位索引對應的元素,並將其作為新列表返回給呼叫者。 3,寫函式,判斷使用者傳入的物件(字串、列表、元組)長度是否大於5。 4,寫函式,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。 5,寫函式,計算傳入函式的字串中,[數字]、[字母]、[空格] 以及 [其他]的個數,並返回結果。 6,寫函式,接收兩個數字引數,返回比較大的那個數字。 7,寫函式,檢查傳入字典的每一個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。 dic = {"k1": "v1v1", "k2": [11,22,33,44]} PS:字典中的value只能是字串或列表 8,寫函式,此函式只接收一個引數且此引數必須是列表資料型別,此函式完成的功能是返回給呼叫者一個字典,此字典的鍵值對為此列表的索引及對應的元素。例如傳入的列表為:[11,22,33] 返回的字典為 {0:11,1:22,2:33}。 9,寫函式,函式接收四個引數分別是:姓名,性別,年齡,學歷。使用者通過輸入這四個內容,然後將這四個內容傳入到函式中,此函式接收到這四個內容,將內容追加到一個student_msg檔案中。 10,對第9題升級:支援使用者持續輸入,Q或者q退出,性別預設為男,如果遇到女學生,則把性別輸入女。 11,寫函式,使用者傳入修改的檔名,與要修改的內容,執行函式,完成整個檔案的批量修改操作(升級題)。 12,寫一個函式完成三次登陸功能:(升級題,兩天做完) (1)使用者的使用者名稱密碼從一個檔案register中取出。 (2)register檔案包含多個使用者名稱,密碼,使用者名稱密碼通過|隔開,每個人的使用者名稱密碼佔用檔案中一行。 (3)完成三次驗證,三次驗證不成功則登入失敗,登入失敗返回False。 (4)登陸成功返回True。 13,再寫一個函式完成註冊功能:(升級題,兩天做完) (1)使用者輸入使用者名稱密碼註冊。 (2)註冊時要驗證(檔案regsiter中)使用者名稱是否存在,如果存在則讓其重新輸入使用者名稱,如果不存在,則註冊成功。 (3)註冊成功後,將註冊成功的使用者名稱,密碼寫入regsiter檔案,並以 | 隔開。 (4)註冊成功後,返回True,否則返回False。day9 作業
明日默寫。
①,return的作用。
②,傳參的幾種方法,每個都簡單寫一個程式碼。
如,實參,按位置傳參。
def func(x,y):
Pass
func(‘a’,’b’)
day9 默寫
day10 函式進階