python學習筆記(六)python練習題

2021-09-24 01:40:02 字數 2717 閱讀 3824

1.監控日誌的指令碼:

如果同乙個ip位址60s之內訪問超過200次,那麼就把ip加入黑名單裡

需求分析:

(1).60秒讀一次檔案

(2).分割,取到第乙個元素,ip位址

(3).把所有的ip加入到list裡,如果ip次數超過200次,加入黑名單

1 import time

2 point=0#檔案指標

3 while true:

4 ips=#存放所有的ip位址

5 blk_set = set()#存放需要加入黑名單ip

6 with open('access.log',encoding='utf-8')as f:

7 f.seek(point)

8 for line in f:

9 ip=line.split()[0]

11 if ips.count(ip)>10:

12 blk_set.add(ip)

13 for ip in blk_set:#這裡是因為防止ip重複加入黑名單,因為集合是去重的,所以裡面沒有重複的ip

14 print('已經把%s加入黑名單'%ip)

15 point=f.tell()

16 time.sleep(60)

2.對比請求報文:對比倆字典裡面不一樣的值

需求分析:

1.迴圈第乙個字典,取到k。然後從第二個字典裡面取值,然後判斷兩個值是否一樣

1 d1=

2 d2=

3 def compare(d1,d2):

4 for k in d1:

5 v1=d1.get(k)

6 v2=d2.get(k)

7 if v2:

8 if v1!=v2:

9 print('value不一樣的k是%s,v1是%s,v2是%s'%(k,v1,v2))

10 else:

11 print('key不一樣是%s'%k)

12 compare(d1,d2)

3.型別判斷:

1 if type(d1)==dict:

2 print('字典')

3 4 def print_var_type(var):

5 if type(var)==str:

6 print('字串')

7 elif type(var)==dict:

8 print('字典')

9 elif type(var)==int:

10 print('整數')

11 elif type(var)==list:

12 print('列表')

13 elif type(var) ==tuple:

14 print('元組')

15 elif type(var) ==float:

16 print('小數型別')

17 elif type(var) ==set:

18 print('集合')

#1.寫乙個校驗字串是否為合法的小數

#0.88

#-0.99

#1.小數點的個數,小數點的個數1

#2.按照小數點分割

1 def check_float(s):

2 s=str(s)

3 if s.count('.')==1:

4 s_list=s.split('.')

5 left=s_list[0]

6 right=s_list[1]

7 if left.isdigit()and right.isdigit():#正小數

8 return true

9 elif left.startswith('-')and left.count('-')==1:

10 if left.split('-')[-1].isdigit()and right.isdigit():

11 return true

12 return false

13 print(check_float(1.5))

14 print(check_float(-1.5))

15 print(check_float(2))

16 print(check_float('s.8'))

17 print(check_float('.8'))

18 print(check_float(.8))

19 print(check_float('.'))

20 print(check_float('-.5'))

21 print(check_float('-5.-5'))

Python學習筆記(六)

函式 呼叫python內建的函式,可以通過 help fun 進行查詢。舉例 abs x 求x絕對值 cmp x,y 比較兩個數大小,如果 xy,返回 1。int x 把其他資料型別轉換為整數,包括字串型別。str 把其他型別轉換成 str。編寫函式 def my abs x if x 0 retu...

Python學習筆記(六)

函式練習題 1 寫函式,檢查傳入字典的每乙個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。dic def dict func dic for key,value in dic.items if len value 2 value value 0 2 dic key...

Python學習筆記六

python課堂筆記六 常用模組已經可以在單位實際專案中使用,可以實現運維自動化。無需手工備份檔案,資料庫,拷貝,壓縮。常用模組 time模組 time.time time.localtime time.strftime os模組 主要針對作業系統的一些方法,如 切換目錄 sys模組 跟python...