Python中有 布尔类型

  • True 条件成立的时候
  • False 不成立

先看一段代码

  1. a = 1 > 2
  2. print(a) # False
  3. b = 2>3 or 0<1
  4. print(b) # True
  5. c = 3>4 and 3>2
  6. print(c) # False

if 条件判断

在处理一些业务逻辑的时候,可以使用 if 语句。
Python 条件判断 - 图1

  1. # 提示用户输入用户名,将输入的结果保存到变量 username中
  2. username = input("请输入用户名:")
  3. password = input("请输入密码:")
  4. print(f"现在使用用户名:{username},密码{password} 进行登录")

执行代码
image.png

基本语法

  1. if 条件: # 如果条件成立那么执行代码。
  2. 代码执行
  1. if 3 > 2: # 条件成立
  2. print("Yes") # 代码执行

  1. if 0 > 1: # 条件不成立
  2. print("OK") # 不会执行

  1. # 提示用户输入用户名,将输入的结果保存到变量 username中
  2. username = input("请输入用户名:")
  3. password = input("请输入密码:")
  4. print(f"现在使用用户名:{username},密码{password} 进行登录")
  5. # 如果用户名为 admin 密码为 123456. 提示登录成功。 否认提示 登录失败。
  6. if username == "admin" and password == "123456":
  7. print("登录成功")
  8. else:
  9. print("登录失败")

使用 if … else 进行条件判断
else 表示如果上面的条件不成立 执行 else中的语句。
Python 条件判断 - 图3
在这个例子中。总共需要考虑3种场景。原来使用的if else 只满足两种场景,要么成功。要么失败。

if…elif… else

当条件有很多个的时候,可以使用 elif 进行分支判断。

  1. # 提示用户输入用户名,将输入的结果保存到变量 username中
  2. username = input("请输入用户名:")
  3. password = input("请输入密码:")
  4. print(f"现在使用用户名:{username},密码{password} 进行登录")
  5. # 如果用户名为 admin 密码为 123456. 提示登录成功。
  6. if username == "admin" and password == "123456":
  7. print("登录成功")
  8. # 如果用户名或者密码为空 使用len 或者字符串的场景,空字符串的长度为0
  9. elif len(username) == 0 or len(password) == 0:
  10. print("信息不完整。")
  11. elif username != "admin" or password != "123456":
  12. print("用户名或密码错误")
  13. # 以上条件都不成立
  14. else:
  15. print("我也不知道什么原因")

for 循环

循环也是在Python基础中使用比较多的。举个例子:后期做自动化测试,有多少条测试数据执行多少次。

for循环的基本用法

range() 函数可以生成指定序列

比如要循环10000次。

  1. # range(10000) 生成0-9999总共10000个序列
  2. for i in range(10000):
  3. print(f"我爱学习{i}次!")

image.png

循环列表 for n in list

也可以使用for 循环,循环列表中的数据中。
基本使用

  1. nums = [100,299,3,10,999,10,20]
  2. # 循环列表的每个数据
  3. for n in nums:
  4. print(n)

image.png
也可以在for循环中添加 判断
将列表中 > 100 的数字打印出来。

  1. nums = [100,299,3,10,999,10,20]
  2. for n in nums:
  3. if n > 100:
  4. print(n)

image.png

for 循环集合

也可以循环集合中的数据。

  1. nums = {100,299,3,10,999,10,20}
  2. for n in nums:
  3. if n > 100:
  4. print(n)

for 循环字符串

  1. words = "abcdefggdssdadfa"
  2. for w in words:
  3. print(w)

for 循环字典

  1. good = {
  2. "name":"iphone",
  3. "price":5000
  4. }
  5. # .items() 循环字典时的固定写法 这个需要注意。
  6. for k,v in good.items():
  7. print(f"字典的键 {k}")
  8. print(f"字典的值 {v}")

for … else… 语法

for循环中 也可以跟else 一起使用。
基本格式

  1. for ...
  2. else:
  3. 执行体

如果for 循环能够正常执行完毕,会执行else中的语句.

  1. # 输入密码错误3次 提示明天再来
  2. for i in range(1,4):
  3. print(f'第{i}次输入错误')
  4. else:
  5. print("请明天重试!")

image.png
这个语法有个特点:
如果for循环没有正常执行完,执行过程中被break,
那么else中的语句将不会执行。

  1. import random
  2. passwd = 9
  3. # 输入密码错误3次 提示明天再来
  4. for i in range(1,4):
  5. n = random.randint(0,9)
  6. print(f'输入 {n}')
  7. if n == passwd:
  8. print("输入成功!")
  9. break
  10. else:
  11. print(f'第{i}次输入错误')
  12. else:
  13. print("错误次数已经三次,请明天重试!")

image.png
在做自动化的时候,模拟输入次数输入错误三次,弹出验证码对话框, 可以使用上面的for else 语法来实现类似的自动化。

总结一下

  1. 当要循环多少次的时候,使用 range()
  2. 循环列表,字符串,集合,元组直接循环即可。
  3. 当循环字典的时候,变量有两个,分别对应 key, value。 循环的时候 字典要使用 items() 方法。

下面是一个商品搜索接口返回的结果/

  1. result = [
  2. {"name":"xiaomi","price":1999},
  3. {"name":"iphone","price":5999},
  4. {"name":"huawei","price":3999}
  5. ]

将price 在 1000-4000 之间的商品name 打印出来。
需要使用循环+判断。分析

  1. 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:
    1. print(good.get("name"))
  1. ![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)
  2. <a name="HHtn0"></a>
  3. # while 循环
  4. for循环的应用场景一般都是比较确定的场景,比如循环多少次。<br />while 循环除了可以应用在确定的场景中,也可以用在一些不确定的场景。<br />比如,无限循环。
  5. ```python
  6. while True:
  7. print("我爱学习")

image.png
也可以通过指定条件,使用while循环 循环指定的次数。

  1. n = 1
  2. while n < 100:
  3. print(f"我爱学习{n}")
  4. # 每次循环都会增加1
  5. n = n + 1

while 循环应用场景

break 中断循环while

比如在做自动化的时候,遇到验证码问题,我们重试验证码。自己也不知道多少次能够成功。可以使用while 循环。

  1. # Python 内置模块
  2. import random
  3. # 生成随机值 作为初始密码
  4. num = random.randint(0,9999)
  5. print(f"生成初始密码:{num}")
  6. # 现在开始破解密码
  7. while True:
  8. # 生成随机值
  9. n = random.randint(0,9999)
  10. # 如果两个值相等 说明成功
  11. if n == num:
  12. print(f"破解成功,密码为{n}")
  13. # 中断循环
  14. break

break 也可以用在for 循环中。

break 中断for循环

for 循环中有break,也会中断整个for 循环。

  1. # Python 内置模块
  2. import random
  3. # 生成随机值 作为初始密码
  4. num = random.randint(0,9999)
  5. print(f"生成初始密码:{num}")
  6. for n in range(9999):
  7. print(f"开始尝试使用{n}进行破解")
  8. if num == n:
  9. print(f"恭喜你成功! {n}")
  10. break

break 在循环过程中,主要应用在 中断循环操作中,后期在自动化的使用场景中比较多的地方就是破解一个验证码之类。

continue 继续执行

与break 不同的地方是: break 是中断的整个循环。
continue结束单次循环。

  1. import random
  2. for i in range(10):
  3. print("请问第"+str(i)+"个同学是否需要推荐工作?")
  4. n = random.randint(0,1)
  5. # n的值1表示有工作,0表示没有工作
  6. if n == 0:
  7. print("我需要推荐")
  8. print("开始推荐")
  9. else:
  10. print("我不需要!")

使用continue

  1. import random
  2. for i in range(10):
  3. print("请问第"+str(i)+"个同学是否需要推荐工作?")
  4. n = random.randint(0,1)
  5. print(n)
  6. # n的值1表示有工作,0表示没有工作
  7. if n == 1:
  8. continue # 结束当次循环,进入下一轮循环
  9. print("没有工作,需要推荐工作")

总结

循环后期再做自动化比如生成测试数据,都可以使用循环。

break 和 continue的区别:
break 中断的是整个循环,
continue中断的是当次循环,循环还会继续。