Python中有 布尔类型
- True 条件成立的时候
- False 不成立
先看一段代码
a = 1 > 2
print(a) # False
b = 2>3 or 0<1
print(b) # True
c = 3>4 and 3>2
print(c) # False
if 条件判断
在处理一些业务逻辑的时候,可以使用 if 语句。
# 提示用户输入用户名,将输入的结果保存到变量 username中
username = input("请输入用户名:")
password = input("请输入密码:")
print(f"现在使用用户名:{username},密码{password} 进行登录")
基本语法
if 条件: # 如果条件成立那么执行代码。
代码执行
if 3 > 2: # 条件成立
print("Yes") # 代码执行
if 0 > 1: # 条件不成立
print("OK") # 不会执行
# 提示用户输入用户名,将输入的结果保存到变量 username中
username = input("请输入用户名:")
password = input("请输入密码:")
print(f"现在使用用户名:{username},密码{password} 进行登录")
# 如果用户名为 admin 密码为 123456. 提示登录成功。 否认提示 登录失败。
if username == "admin" and password == "123456":
print("登录成功")
else:
print("登录失败")
使用 if … else 进行条件判断
else 表示如果上面的条件不成立 执行 else中的语句。
在这个例子中。总共需要考虑3种场景。原来使用的if else 只满足两种场景,要么成功。要么失败。
if…elif… else
当条件有很多个的时候,可以使用 elif 进行分支判断。
# 提示用户输入用户名,将输入的结果保存到变量 username中
username = input("请输入用户名:")
password = input("请输入密码:")
print(f"现在使用用户名:{username},密码{password} 进行登录")
# 如果用户名为 admin 密码为 123456. 提示登录成功。
if username == "admin" and password == "123456":
print("登录成功")
# 如果用户名或者密码为空 使用len 或者字符串的场景,空字符串的长度为0
elif len(username) == 0 or len(password) == 0:
print("信息不完整。")
elif username != "admin" or password != "123456":
print("用户名或密码错误")
# 以上条件都不成立
else:
print("我也不知道什么原因")
for 循环
循环也是在Python基础中使用比较多的。举个例子:后期做自动化测试,有多少条测试数据执行多少次。
for循环的基本用法
range() 函数可以生成指定序列
比如要循环10000次。
# range(10000) 生成0-9999总共10000个序列
for i in range(10000):
print(f"我爱学习{i}次!")
循环列表 for n in list
也可以使用for 循环,循环列表中的数据中。
基本使用
nums = [100,299,3,10,999,10,20]
# 循环列表的每个数据
for n in nums:
print(n)
也可以在for循环中添加 判断
将列表中 > 100 的数字打印出来。
nums = [100,299,3,10,999,10,20]
for n in nums:
if n > 100:
print(n)
for 循环集合
也可以循环集合中的数据。
nums = {100,299,3,10,999,10,20}
for n in nums:
if n > 100:
print(n)
for 循环字符串
words = "abcdefggdssdadfa"
for w in words:
print(w)
for 循环字典
good = {
"name":"iphone",
"price":5000
}
# .items() 循环字典时的固定写法 这个需要注意。
for k,v in good.items():
print(f"字典的键 {k}")
print(f"字典的值 {v}")
for … else… 语法
for循环中 也可以跟else 一起使用。
基本格式
for ...
else:
执行体
如果for 循环能够正常执行完毕,会执行else中的语句.
# 输入密码错误3次 提示明天再来
for i in range(1,4):
print(f'第{i}次输入错误')
else:
print("请明天重试!")
这个语法有个特点:
如果for循环没有正常执行完,执行过程中被break,
那么else中的语句将不会执行。
import random
passwd = 9
# 输入密码错误3次 提示明天再来
for i in range(1,4):
n = random.randint(0,9)
print(f'输入 {n}')
if n == passwd:
print("输入成功!")
break
else:
print(f'第{i}次输入错误')
else:
print("错误次数已经三次,请明天重试!")
在做自动化的时候,模拟输入次数输入错误三次,弹出验证码对话框, 可以使用上面的for else 语法来实现类似的自动化。
总结一下
- 当要循环多少次的时候,使用 range()
- 循环列表,字符串,集合,元组直接循环即可。
- 当循环字典的时候,变量有两个,分别对应 key, value。 循环的时候 字典要使用 items() 方法。
下面是一个商品搜索接口返回的结果/
result = [
{"name":"xiaomi","price":1999},
{"name":"iphone","price":5999},
{"name":"huawei","price":3999}
]
将price 在 1000-4000 之间的商品name 打印出来。
需要使用循环+判断。分析
- result 是列表类型数据,可以直接循环。
```python
result = [
{“name”:”xiaomi”,”price”:1999},
{“name”:”iphone”,”price”:5999},
{“name”:”huawei”,”price”:3999}
]
循环列表
for good in result:good 表示列表中的每个字典 添加判断
if 1000 < good.get(“price”) < 4000:print(good.get("name"))
![image.png](https://cdn.nlark.com/yuque/0/2022/png/87080/1656820007346-7b791a26-9ece-42d4-bc99-b2200f3438db.png#clientId=u629638a8-0f6a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=506&id=ufa7c3776&margin=%5Bobject%20Object%5D&name=image.png&originHeight=632&originWidth=1311&originalType=binary&ratio=1&rotation=0&showTitle=false&size=71355&status=done&style=none&taskId=ud391c732-0951-4fd3-aff0-c095d066d5b&title=&width=1048.8)
<a name="HHtn0"></a>
# while 循环
for循环的应用场景一般都是比较确定的场景,比如循环多少次。<br />while 循环除了可以应用在确定的场景中,也可以用在一些不确定的场景。<br />比如,无限循环。
```python
while True:
print("我爱学习")
也可以通过指定条件,使用while循环 循环指定的次数。
n = 1
while n < 100:
print(f"我爱学习{n}")
# 每次循环都会增加1
n = n + 1
while 循环应用场景
break 中断循环while
比如在做自动化的时候,遇到验证码问题,我们重试验证码。自己也不知道多少次能够成功。可以使用while 循环。
# Python 内置模块
import random
# 生成随机值 作为初始密码
num = random.randint(0,9999)
print(f"生成初始密码:{num}")
# 现在开始破解密码
while True:
# 生成随机值
n = random.randint(0,9999)
# 如果两个值相等 说明成功
if n == num:
print(f"破解成功,密码为{n}")
# 中断循环
break
break 中断for循环
for 循环中有break,也会中断整个for 循环。
# Python 内置模块
import random
# 生成随机值 作为初始密码
num = random.randint(0,9999)
print(f"生成初始密码:{num}")
for n in range(9999):
print(f"开始尝试使用{n}进行破解")
if num == n:
print(f"恭喜你成功! {n}")
break
break 在循环过程中,主要应用在 中断循环操作中,后期在自动化的使用场景中比较多的地方就是破解一个验证码之类。
continue 继续执行
与break 不同的地方是: break 是中断的整个循环。
continue结束单次循环。
import random
for i in range(10):
print("请问第"+str(i)+"个同学是否需要推荐工作?")
n = random.randint(0,1)
# n的值1表示有工作,0表示没有工作
if n == 0:
print("我需要推荐")
print("开始推荐")
else:
print("我不需要!")
使用continue
import random
for i in range(10):
print("请问第"+str(i)+"个同学是否需要推荐工作?")
n = random.randint(0,1)
print(n)
# n的值1表示有工作,0表示没有工作
if n == 1:
continue # 结束当次循环,进入下一轮循环
print("没有工作,需要推荐工作")
总结
循环后期再做自动化比如生成测试数据,都可以使用循环。
break 和 continue的区别:
break 中断的是整个循环,
continue中断的是当次循环,循环还会继续。