1. 程式人生 > >Python全棧學習_作業集錦(持續更新)

Python全棧學習_作業集錦(持續更新)

python基礎

day1 python初識

1. 計算機基礎(cpu,記憶體,硬碟,作業系統)           
2. Python出生於應用                              
3. python發展史                                               
4. 程式語言分類                                            
5. python優缺點                                          
6. python環境                                        
7. 執行Python程式碼 8. 變數 9. 常量 1. 註釋 11. 基礎資料型別初始 12. 程式互動input
13. 流程控制語句if.
day1 大綱
1、簡述變數命名規範

2、name = input(“>>>”) name變數是什麼資料型別?

3、if條件語句的基本結構?

4、用print打印出下面內容:

⽂能提筆安天下, 
武能上⻢定乾坤. 
⼼存謀略何⼈勝, 
古今英雄唯是君.

5、利用if語句寫出猜大小的遊戲:

設定一個理想數字比如:66,讓使用者輸入數字,如果比66大,則顯示猜測的結果大了;如果比66小,則顯示猜測的結果小了;只有等於66,顯示猜測結果正確。

6、提⽰⽤戶輸入他的年齡, 程式進⾏判斷. 

如果⼩於10, 提⽰⼩屁孩, 如果⼤於10, ⼩於 
20, 提⽰青春期叛逆的⼩屁孩. 如果⼤於20, ⼩於30. 提⽰開始定性, 開始混社會的⼩ 屁孩⼉, 如果⼤於30, ⼩於40. 提⽰看老⼤不⼩了, 趕緊結婚⼩屁孩⼉. 如果⼤於40, ⼩ 於50. 提⽰家⾥有個不聽話的⼩屁孩⼉. 如果⼤於50, ⼩於60. 提⽰⾃⼰⻢上變成不聽 話的老屁孩⼉.如果⼤於60, ⼩於70. 提⽰活著還不錯的老屁孩⼉. 如果⼤於70, ⼩於 90. 提⽰⼈⽣就快結束了的⼀個老屁孩⼉. 如果⼤於90以上. 提⽰. 再⻅了這個世界. 7、單⾏註釋以及多⾏註釋? 8、簡述你所知道的Python3x和Python2x的區別? 9、提⽰⽤戶輸入⿇花藤. 判斷⽤戶輸入的對不對. 如果對, 提⽰真聰明, 如果不對, 提⽰你 是傻逼麼
day1 作業
1,變數的命名規範。
2,單行註釋,多行註釋。
day1 默寫

day2 python初識

1. while迴圈
2. 格式化輸出
3. 運算子
4. 編碼初識
day2 大綱
1、判斷下列邏輯語句的True,False.
11 > 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. range
day4 大綱
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
ritian
day4 作業
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 滑鼠 102:使用者輸入選擇的商品序號,然後列印商品名稱及商品價格
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 函式進階