19道Python練習題


1、你是一個高級測試工程師,現在要做性能測試,需要你寫一個函數,批量生成一些注冊使用的賬號。

產生的賬號是以@163.com結尾,長度由用戶輸入,產生多少條也由用戶輸入,用戶名不能重復,用戶名必須由大寫字母、小寫字母、數字組成,結果如下圖:
在這里插入圖片描述
2、測試機器的磁盤太小,經常報警,要寫一個清理日志的腳本,每次運行就把三天之前的日志刪除,日志名的格式是xxx-20170623.log。

3、公司服務器,經常被別人攻擊,要寫個監控nginx日志的腳本,每分鍾運行一次,如果這一分鍾內同一個ip請求次數超過200次,加入黑名單,nginx日志每一行的格式如下:

46.161.9.44 - - [23/Jun/2017:03:17:37 +0800] "GET /bbs/forum.php?mod=forumdisplay&fid=2 HTTP/1.0" 200 48260 "http://aaaa.bbbbb.com/bbs/forum.php?mod=forumdisplay&fid=2" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"
46.161.9.44 - - [23/Jun/2017:03:17:39 +0800] "GET /bbs/forum.php?mod=forumdisplay&fid=2 HTTP/1.0" 200 46200 "http://aaaa.bbbbb.com/bbs/forum.php?mod=forumdisplay&fid=2" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-" 

4、額,來個小插曲,寫程序求出1-100的累加和。1+2+3+4+5+.....+100。

5、不知不覺你已經寫了很多python代碼了,代碼全部都放在e盤下面的my_code文件夾中,突然突發奇想,想統計了一下總共寫了多少行代碼,包括空行和注釋,要把代碼的行數、空行數、注釋行數都統計出來。

6、有一個文件,里面有一些敏感詞匯,如下,如果輸入這些詞,就用**代替,然后輸出,例如輸入今天沒吃飯,碰到一個傻逼,原來那個sb是小明。輸出今天沒吃飯,碰到一個**,原來那個**是小明。

傻逼
傻b
煞筆
煞比
sb
傻B
shabi

7、寫個簡單的爬蟲,把這個鏈接http://so.fengniao.com/index.php?action=Image&keyword=%E7%A7%81%E6%88%BF,里面所有的圖片保存到本地。

8、有一個存着學生成績的文件,里面存的是json串,json串讀起來特別不直觀,需要你寫代碼把它都寫到excel中,並計算出總分和平均分,json格式如下

{
"1":["小花",99,100,98.5],
"2":["小王",90,30.5,95],
"3":["小明",67.5,49.6,88]
}

寫完之后excel格式如下:
在這里插入圖片描述
9、列表、元組、集合有什么區別?

10、下面幾段代碼中哪個是錯誤的寫法,為什么?

var = [1,2,3,4]
var[1]=5
var1 = 'abc123'
var1[0]='s'
var2 = ('a','b','c','d')
var2[-1]=2
var3={'a',3,'b','4'}
var3[2]='c'
var4={'name':'lily','sex':'nv'}
print(var4['age'])

11、怎么通過不引入第三方變量的方式,交換兩個變量的值?

a=1
b=2

12、下面的代碼執行結果是什么,為什么?

#Python學習交流群:778463939

li = [1,1,2,3,4,5,6,7,8,9]
for i in li:
    if i%2!=0:
        li.remove(i)
print(li)

13、下面這段代碼的執行結果是什么?

money = 500
def test(consume):
 
return money - consume
 
def test1(money):
 
return test(money)+money
 
money = test1(money)
print(money)

14、下面這段代碼會打印什么,為什么?

def test():
global a
a = 5
 
def test1():
c = a+5
return c
 
res = test1()
print(res)
ok_req={
    "version": "9.0.0",
    "is_test": True,
    "store": "",
    "urs": "",
    "device": {
        "os": "android",
        "imei": "99001062198893",
        "device_id": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
        "mac": "02:00:00:00:00:00",
        "galaxy_tag": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
        "udid": "a34b1f67dd5797df93fdd8b072f1fb8110fd0db6",
        "network_status": "wifi"
    },
    "adunit": {
        "category": "VIDEO",
        "location": "1",
        "app": "7A16FBB6",
        "blacklist": ""
    },
    "ext_param":{
     "is_start" : 0,
     "vId":"VW0BRMTEV"
    }
}
not_ok={
"version": "9.0.0",
"is_test": True,
"urs": "",
"store": "",
"device": {
"os": "android",
"imei": "99001062298893",
"device_id": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
"mac": "02:00:00:00:00:00",
"galaxy_tag": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
"udid": "a34b1f67dd5797da93fdd8b072f1fb8110fd0db6",
"network_status": "wifi"
},
"adunit": {
"category": "VIDEO",
"location": "1",
"app": "7A16FBB6",
"blacklist": ""
},"ext_param": {
"is_start": 0,
"vid": "VW0BRMTEV"
}
}

15、上面有兩個字典,請寫一個函數打印兩個字典中不一樣的key和value

16、現有字符串a="Im Love python",需要變成b="python love Im"

17、 將"wdnwjfwj we hd 9#sdfekfmew 2011"里的數字取出來相加結果為2020

18、下面有兩個隊伍,,a不和x對戰,b不和y,z,請寫代碼實現。

team1 = ['a','b','c']
team2 = ['x','y','z']

結果如下圖:
在這里插入圖片描述
19、一個字符串里面aAd123sdacD12dad2,然后遇到數字取第一個,后面的數字用來分隔,結果如下

【aAd1,sdacD1,dad2】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM