day1知识回顾:
postman自动化
1.参数文件,username和password value 中做成参数{username} {password}
2.Tests中检查点
3.Runner中设置循环次数,选择参数文件
day1作业
import datetime
today = datetime.datetime.today()
user = 'cheery'
for i in range(3):
username = input('username:').strip()
password = input('password:').strip()
if username =='' or password =='':
print('账号/密码不能为空!')
elif username.lower()==user.lower() and password='123456':
print('登陆成功,欢迎%s登陆,今天的日期是%s'%(username,today))
else:
print('账号/密码错误!')
else:
print('登陆次数过多,请稍后再试!')
#写一个随机产生138开头的手机号的程序
#1.输入一个数量,产生XX条手机号
prefix='138'138+randint(100000000,99999999)
#2.产生的这些手机号不能重复
import random
number = int(input('请输入:'))
all_phone_number = [] #存放所有手机号
for i in range(number):
prefix = '138'
end = str(random.randint(10000000,99999999))
phone_number = prefix + end
if all_phone_number.count(phone_number)==0: #判断电话号码是否存在
all_phone_number.append(phone_number)
print(phone_number)
print(all_phone_number)
**********************list操作****************************
#列表 数组 list
l =['cheery','lily','cc'] #一维数组
l3 = [1,2,3,4,['abc','cc','234']] #二维数组
l[4][2] #取元素 234
#索引 下标 角标 list取元素是根据编号取值的
print(l[0]) #cheery
#增 append
l.append('李巧利') #在list 末尾增加元素
l.insert(0,'周杰伦') #在指定位置增加元素
l.insert(7,'abc‘) #如果你指定的下标不存在,默认加在最后
#修改
l[2]='财哥'
#删除 3种方法
l.pop(3) #指定下标删除
l.remove('cc') #指定元素删除
del l[0] #指定下标删除
print(l.count('cc')) #cc在list中出现了多少次
index = l.index('cc') #找某个元素的下标
l.reverse() #反转list 元素排序
list2 =[4,2,45,43]
list2.sort() #排序 默认升序
list2.sort(reverse=True) #降序 传参数 reserve=True
list2.clear() #清空list
print(l +list2 ) #直接相加就是把两个list合并成一个list
l.extend(l2) # 把l2的元素加到l中
list循环
students =['zouzou','gaoti','liqiaoli']
for i in students:
print(i) #直接循环取元素
if 'zouzou' in students: #判断存在 in
print('存在')
elif 'zou' not in students: #判断不存在 not in
print('不存在')
**********************字典*********************************
students =['zouzou','gaoti','liqiaoli']
stu2=[['abc','未知',24,'北京',123343333],['abc2','未知',24,'北京',123343333],['abc3','未知',24,'北京',123343333]]
#字典dictionary key-value 速度非常快
d = {'name':'zouzou',
'sex':'未知',
'addr':'北京',
'手机号':110}
#字典 增 删 改 查
#取值 查
print(d['name']) #取不存在的key,报错
print(d.get('手机号')) #get方式取不到元素,返回none
print(d.get('手机号',0)) #get后面加了参数(默认值),就会返回默认值0
#增加Key
d['money'] = 500 #d['sex']=500 直接修改值
d.setdefault('car','bmw','sex') #增加一个已经存在的key,那就不管
print(d)
#修改
d['sex'] = '女'
#删除
d.pop('sex') #删除指定的key,会返回删除的值 result= d.pop('sex')
del d['sex'] #删除指定的key
print(d)
d.clear() #清空字典
print(d.keys()) #字典中所有的key
print(d.values()) #字典所有的value
字典循环
d = {
'id':315,
'name':矿泉水,
'sex':女,
'age':23,
'addr':上海,
'gold':100
}
for k in d: #直接循环字典,每次去的是字典里面的key
value = d.get(k) #循环的时候同时取到key 和value
print(k,value)
#print(d.items())
或者:
for key,value in d.items(): #第二种方式 效率低(先将字典转成list,再循环遍历)
print(key,value)
#if 'id' in d: #如果字典用in来判断的话,它判断的是key是否存在
举例:注册
#1.输入账号、密码、确认密码来注册
2.如果账号不存在的话,可以注册
3.两次密码输入一致,可以注册
stus = {'cheery':'123456','cc':'456789'}
for i in range(3):
username = input('username:').strip()
pwd = input('pwd:').strip()
cpwd = input('cpwd:').strip()
if username =='' or pwd =='':
print('不能为空')
elif username in stu2:
print('用户名已注册')
elif pwd!=cpwd:
print('两次输入的密码不一致')
else:
stu.setdefault(username,pwd) #字典插入新元素,也可以使用 #d[username]=pwd
print('注册成功')
print(stu)
从字典取账号密码写登录
import datetime
today = datetime.datetime.today()
stu = {'cheery':'123456','cc':'456789'}
user= input('username:').strip()
pwd= input('password:').strip()
for i in range(3):
if user == '' or pwd =='':
print('账号/密码不能为空')
elif user.lower() in stu and pwd == stu.get('user'):
print('登录成功,欢迎%s登录,今天的日期是%d'%(user,today))
break
else:
print('用户名或密码不正确')
**********************切片*********************************
切片:list取值的一种方式,范围取值
l = [1,2,3,4,5,6,7] #单个取值,通过下标l[0]
print(l[0:3]) #0,1,2,切片:顾头不顾尾,包含前面的值,不包含后面的元素
print(l[:3]) #冒号前面数字可不写,代表从最前面开始取值;冒号后边不写,代表取到结束
s = 'abc1234'
print(s[-1]) # 取到了4,字符串下标访问
print(s[2:5]) #c12
l2 = l[:] #代表取全部元素
l3 = l[0:7:2] #2代表步长,隔几个元素取一个
l4 = [::-1] #步长为负数,从后面往前面取值,[7,6,5,4,3,2,1]
l5 = [-1:-5:-1] #[7,6,5,4] #步长为负数,前面下标也要为负数
print(l3) #[1,3,5,7]
**********************元组*********************************
元组:也是一种list,元组的值创建后不能更改
l=[1,2,3,4] #list
l2 = (1,2,3,4) #小括号,元组里边的值不允许修改,如append
s = ('abc',) #元组定义只有一个元素时,需要加上一个逗号,否则无法识别
print(type(s3)) #tuple 不加逗号,就是str
db_info = ['192.168.1.1',3306,'root','123456','db1']
#可变数据类型:list,dict
#不可变数据类型:元组tuple,str,float,int
#不要循环删除list,会导致下标错乱
l = [1,1,2,3,4,5,6]
l2 = [1,1,2,3,4,5,6] #等同于:l2 = copy.deepcopy(l) 深拷贝
下标 0 1 2 3 4 5 6
for i in l2:
if i%2 !=0: #判断是奇数,就删除
l.remove(i)
print(l) #[1,2,4,6] 结果多了个1,删除list元素后下标错乱,定义两个list,循环和删除不从同一个list中
l = [1,1,2,3,4,5,6]
#l2 = l 存的内存地址是相同的 ,浅拷贝
print('l的内存地址:'id(l))
print('l2的内存地址:'id(l2))
l.append('cheery')
l2.remove(1)
print('l',l)
print('l2',l2)
#浅拷贝 深拷贝
#浅拷贝内存地址不变,深拷贝的话,内存地址会改变