1.while循环
-while循环作用在不断重复运行某段代码
-判断条件跟if相似
if 条件:
语句1 #执行一次,无论条件成不成立,都会执行语句2
语句2
while 条件:
语句1 #直到条件不成立,才执行语句2
语句2
-whilie 和 if 区别:
if只执行一次判断,while可以执行多次判断
-while循环判断的依据
先判断条件 在根据条件的值 决定是否要执行下面的代码块
执行完毕 会再次判断while后面的条件 决定是否要执行下面的代码块
-死循环 (1,非空数据,结果为True的条件)
while True:
print("123")
输出结果不会停下 一直循环消耗cpu,直到电脑卡死
-不执行循环 (0,空数据,结果为False的条件)
while False:
print("123")
不会执行代码
那么如何防止进入死循环呢?有两种方法
1.while后面的条件不为恒定值
引入变量,让变量递增或递减,直到不满足while的条件
count = 0
while count < 3:
print("123")
count += 1 ##改变变量的值,打破条件
输出结果为
2.while后面的条件不为恒定值
加入break关键字强制退出循环
while True:
print("123")
break
结果只会执行一次
加入continue
count = 0
while count < 3:
print("123")
count += 1
continue #表示终止此次循环,进入下一次循环,所以不会执行下面的语句
print("456")
输出结果为
2.for循环
遍历一个变量(数据) 数据通常是str list dict tuple
for item in 数据:
语句
item 是一个临时变量,表示遍历时每次从数据中取出来的那个元素
1.遍历字符串
for item in "python":
print(item)
输出结果是
因为每次print的结果默认是换行,所以我们也可以将数据打横打印出来
for item in "python":
print(item,end = " ") #end = "" 代表打印的格式,默认是\n,代表下次打印是换行还是空格
输出结果是
如果不输出遍历的变量名
for i in "python":
print("我喜欢conlin")
输出结果
就代表遍历了几次,就输出几次下面的语句
2.遍历列表
dalaos = ["小芳","温暖如初","小蚊子"]
for index,dalao in enumerate(dalaos): #一遍获取索引号,一遍打印值,只有用enumerate才能有多个变量
print(f"""索引为{index},值为{dalao}""",end=" ")
结果为:
enumerate() 一边获取索引号,一边获取列表的值,括号里输入列表变量,可以获取的对象是能够用索引的数据类型
enumerate关键字可以让我们引申到另一种用法,把两个列表变为一个键值对形式的字典
num = ['1','2','3','4','5','6','7'] #要定义字典的key
day = ['周一','周二','周三','周四','周五','周六','周日'] #定义字典的value
dict_1 = {}
for index,key in enumerate(num):
for index1,value in enumerate(day):
if index == index1:
dict_1[key] = value
print(dict_1)
输出结果为:
3.遍历字典
-默认遍历字典的是key
user = {"name":"小芳","age":17}
for item in user:
print(item)
结果为
-也可以遍历字典的value
user = {"name":"小芳","age":17}
for item in user.values():
print(item)
结果为:
-还可以同时遍历字典的key value,需要用2个变量
user = {"name":"小芳","age":17}
for key,value in user.items():
print(value)
输出结果可以是任意一个,我这里想输出的是value.所以结果为
range
生成一个类似于列表的数据
range(1,6) 就是[1,2,3,4,5] 跟切片相似,格式是(start,end) 不包括end
for item in range(1,6):
print(item)
结果是
还可以加入步长(start,end,step)
for item in range(3,8,2):
print(item)
结果为
for 和 if 的嵌套
dalaos = ["小芳","温暖如初","小蚊子"]
for dalao in dalaos:
if dalao == "小芳": #每次遍历元素后都进行判断
print("村里有个姑娘")
else:
print("没有")
结果为:
users = [{"name":"yuze","age":18},{"name":"小芳","age":16},{"name":"v","age":19},{"name":"w","age":20}]
#把成年和未成年分别加入响应的列表
adult = []
kids = []
for uesr in users: #遍历users列表里的每一个字典
if uesr["age"] >= 18: #判断字典里age的值
adult.append(uesr["name"]) #在adult列表里加入这个字典
else:
kids.append((uesr["name"]))
print(adult)
print(kids)
输出结果为
双重for循环嵌套
users = [{"name":"yuze","age":18},{"name":"小芳","age":16},{"name":"v","age":19},{"name":"w","age":20}]
for user in users:
for key,value in user.items():#遍历{"name":"yuze","age":18}
print(key,value,end="\t")
print() #表示每次遍历完第二个for语句,都要再空一行,
结果为:
先把嵌套的for语句全部完成遍历后,才返回到外层for语句开始第二次遍历
由内到外
for循环的自动化测试实际使用
遍历测试用例 用例是用嵌套数据类型:[(),(),()] [[],[],[]] [{},{},{}]