list 字典 元組及常用字符串方法
List練習1
# 校驗用戶名是否合法:
# 輸入賬號 #input
# 如果賬號存在的,提示已經被註冊,如果不存在的,就讓他註冊 all_users 【 】
#不能為空 #strip()
#用戶名長度長度6-12之間 len()
#最多輸入3次 #循環
all_users = [‘牛寒陽‘,‘梁盼‘,‘zhangwifi‘]
for i in range(3): #range確定循環次數 for循環默認每次加1
username = input(‘請輸入賬號:‘).strip() #strip方法去掉前後空格
if len(username)>5 and len(username)<13:
elif all_users.count(username)>0: #通過count來統計判斷
print(‘這個名字太好啦,已經被註冊啦!‘)
else:
print(‘名字不錯,趕緊註冊吧!‘)
break
else:
print(‘用戶名長度不合法!長度6-12之間!‘)
else:
print(‘失敗次數過多‘)
6.list循環
lists = [‘張流量‘,‘李wifi‘,‘王路由器‘,‘牛網線‘,[1,2,3,4]]
words=‘marry,lily,joker‘
# for i in range(4): #其他語言實現取值
# # 0 ,1,2,3
# print(lists[i])
for name in lists: # 使用變量 代替列表中的元素
if type(name)==list: #判斷一個變量的類型,list是一種變量類型
for i in name:
print(i)
print(name)
輸出的結果:張流量 李wifi 王路由器 牛網線1 2 3 4 [1, 2, 3, 4]
for name in words:
print(name)
for循環在循環可叠代對象的時候,每次循環的是裏面的每一個元素
list 練習2
stus=[
[‘小明‘,‘未交‘],
[‘小白‘,‘已交‘],
[‘小紫‘,‘已交‘],
[‘小紅‘,‘未交‘],
[‘小綠‘,‘未交‘],
[‘小黃‘,‘未交‘],
[‘小黑‘,‘已交‘]
]
pass_list = [ ] #所有已經交作業的同學 #定義一個 list的空表
fail_list = [ ] #沒有交作業同學的名字
for stu in stus: #stu為list表中的元素
status = stu[1] #狀態 #定義列表中元素
name = stu[0] #名字
if status == ‘未交‘:
fail_list.append(name) #append方法進行添加
else:
pass_list.append(name)
print(‘未交作業的所有同學是 %s ,總共有 %s 個人‘%(fail_list,len(fail_list))) #len方法統計長度
print(‘已交作業的所有同學是 %s ,總共有 %s 個人‘%(pass_list,len(pass_list)))#直接使用函數做變量
7.list 切片(list的一種取值方式)
示例:
# 切片是list取值的一種方式
nums = [‘段佳林‘,‘陳衛亮‘,‘王占宇‘,‘李博‘]
print(nums[1:3])
print(nums[0])
print(nums[1:3]) #顧頭不顧尾
print(nums[1:]) #如果從某個下標開始取,取到末尾結束,那麽末尾的下標可以省略不寫
print(nums[:2]) #如果是從頭開始取,取到後面某個下標結束,那麽開頭的下標可以不寫
print(nums[:]) #取所有的
lis = list(range(1,21))#可以使用range 1-20
print(lis)
print(lis[::2]) #步長,隔幾個取一次
print(lis[::-2]) #步長,隔幾個取一次
# 如果步長是正數的話,從左往右邊開始取值
# 如果步長是負數的話,從右邊往左邊開始取值
print(lis[::-1]) #反轉list
print(lis)#所有值
print(lis[1::-1])# 取值為[2,1] *list[1’:2’:3’]取值先1’再3’最後2’的順序規律
print(lis[:])#所有值
lis.reverse() #改變了原來list的值 reverse會將中的值反序寫入
new_list = lis[::-1] #產生了新的一個list,不會改變原來list的值 會將新值寫入new_list
print(new_list)
print(list) #list值未改變
# 切片操作同樣適用於字符串。
# info = ‘你好,今天天氣很好‘
# print(lis)
# print(lis[:18:-1])
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
print(lis)
print(lis[::-2])
print(lis[::-1])
print(lis[:18:-1]) # -1倒序,開頭沒有取值,所以默認從20往左取值,取到18的下標(19),但不顧尾,所以19不取
s = ‘hahaha‘
s = ‘小黑‘
print(s)
print(s[0])
print(s[::-1])
8.元組 tuple
元組也是一個list,他和list的區別是,元組裏面元素無法修改
嘗試循環、切片、下標取值、修改值是否生效?
print(t[:1])
print(t[3])
# for i in t:
# print(i)
print(t)
#如果元組裏面 只有一個元素的話,那麽你必須在這個元素後面加一個逗號
t = (1,2,4,5,6,7) #用小括號括起來
words=(1,) #只有一個數字
words2=(‘abc‘,) #只有一個字符串
print(‘t‘,type(t)) #類型為tuple
print(‘words‘,type(words))
print(‘words2‘,type(words2))
print(t.index(2)) # 通過index()找到元素的下表
print(t.count(2)) #找到元素的個數
9.字典
字典是通過key - value 形式存放數據的
# string list dict
字典的優點 1、取數據方便2、速度快,
查找
print(infos.get(‘phone‘))#取不到這個key的話,就是None
print(infos.get(‘phone‘,110))#如果取不到這個key的話,默認就是110 可以添加錯誤返回結果幫助查看。
print(infos[‘phone‘])#如果key不存在會報錯
infos = {‘name‘:‘張流量‘,‘sex‘:‘男‘,‘addr‘:‘火星‘,‘age‘:180}
#增
infos[‘phone‘]=13611087045 #增加一個key
infos.setdefault(‘小金庫‘,‘2000w‘)
infos.setdefault(‘name‘,‘鵬妹妹‘) #如果key存在的話,不會修改原來key裏面的值
infos[‘name‘]=‘鵬妹妹‘ #如果key存在的話,會修改原來key對應的value
# print(infos)
**字典是無序的
#修改
infos[‘name‘]=‘鵬妹妹‘
#刪除
# infos.pop(‘name‘) #指定key來刪除
# infos.popitem() #隨機刪除一個key
# del infos[‘phone‘] #指定key來刪除
# infos.clear() #清空字典
#方法
# print(infos.values())#獲取到字典所有的value
# print(infos.keys()) #獲取到字典所有的key
# print(infos.items()) # 獲取字典所有的k-v
people = {
‘田雨‘:{
‘age‘:18,
‘money‘:200000,
‘clothes‘:‘100套‘,
‘hzp‘:‘n多‘,
‘shoes‘:[‘nike‘,‘addis‘,‘lv‘,‘chanle‘]
},
‘張流量‘:{
‘金庫‘:‘2000w‘,
‘house‘:[‘三環一套‘,‘4環2套‘],
‘cars‘: {
‘japan‘:[‘普拉多‘,‘蘭德酷路澤‘],
‘usa‘:[‘林肯‘,‘凱迪拉克‘,‘福特‘],
‘china‘:[‘五菱宏光‘,‘qq‘,‘紅旗‘]
}
}
}
people[‘張流量‘][‘cars‘][‘usa‘].append(‘牧馬人‘)
# people[‘田雨‘][‘shoes‘].append(‘匡威‘)
# print(people)
# people[‘田雨‘][‘money‘] = people[‘田雨‘][‘money‘]+200
# people[‘田雨‘][‘money‘] += 200
# print(people)
#直接循環一個字典的話,那麽循環的是字典的key
# for p in people:
# print(p)
for k,v in people.items(): #循環的時候,同時取key和value
print(k,‘======》‘,v)
字典練習
users = {
‘niuhanyang‘:‘123456‘,
‘yangyafu‘:‘456789‘,
}
#所有的賬號和密碼
# username
# pwd
# cpwd
# print( ‘123456‘ in users ) #字典裏面用in來判斷的話,只是判斷key是否存在
for i in range(3):
username = input(‘賬號:‘).strip()
passwd = input(‘密碼:‘).strip()
cpasswd = input(‘密碼確定:‘).strip()
if username==‘‘ or passwd==‘‘ or cpasswd==‘‘:
print(‘用戶名/密碼不能為空‘)
elif username in users:
print(‘用戶名已經被註冊!‘)
elif passwd!=cpasswd:
print(‘兩次輸入的密碼不一致‘)
else:
print(‘恭喜,註冊成功!‘)
# users.setdefault(username,passwd)
users[username]=passwd
break
else:
print(‘錯誤次數過多‘)
print(users)
10.常用的字符串方法
# a=‘ 字 符 串 \n\n\n\n\n‘
# c = a.strip() #默認去掉字符串兩邊的空格和換行符
# c= a.lstrip() #默認去掉字符串左邊的空格和換行符
# c = a.rstrip() #默認去掉字符串右邊的空格
# print(‘c...‘,c)
# print(‘a...‘,a)
words = ‘http://www.nnzHp.cn‘
# print(words.strip(‘day‘)) #如果strip方法指定一個值的話,那麽會去掉這兩個值
# print(words.count(‘a‘)) #統計字符串出現的次數
#print(words.index(‘z‘)) #找下標,如果元素找不到的話,會報錯
# print(words.find(‘z‘)) #找下標,如果元素找不到的話,返回-1
# print(words.replace(‘day‘,‘DAY‘)) #替換字符串
# print(words.isdigit()) #判斷字符串是否為純數字
# print(words.startswith(‘http‘)) #判斷是否以某個字符串開頭
# print(words.endswith(‘.jpg‘)) #判斷是否以某個字符串結尾
# print(words.upper()) #變成大寫的
# print(words.lower()) #變成小寫的
username = ‘abcdefADS12345@#¥‘
# print(username.isalpha()) #判斷字符串是否全為字母
# print(username.isalnum()) #判斷是否包含字母和數字,它是只要有字母或者有數字就返回true
上篇小結
上周回顧:
jmeter的壓測
tps 每秒鐘處理的請求數
響應時間 越小越好
聚合報告
jmeter 添加負載機
負載機:啟動jmeter-server
主控機:
在配置裏面添加 remote_hosts:ip:1099,ip:1099
jmeter linux下運行
jmeter -n -t xxx/sfdsdf/a.jmx -l res.jtl
charles 抓包工具
fiddler、winrek
1、定位問題
2、模擬一些異常的情況
3、弱網測試
python:
條件判斷
if :
x
else:
xx
循環
while for
for i in range(5):
python數據類型:
int 類型
float 小數類型
string 字符串
布爾類型
#可變變量
#裏面的元素你可以隨便修改
list
#不可變變量
裏面值不能修改
string、tuple
list 字典 元組及常用字符串方法