【自动化测试必学语言】python:判断和循环

目录

判断

if 的基本结构

 if else 结构

 if 和逻辑运算符结合使用

if elif else 结构

if 嵌套

案例:猜拳游戏 

循环

while 循环

死循环和无限循环

使用循环求 1-100 之间数字的和

使用循环求 1-100 之间偶数的和

for 循环

基本的 for 循环语法

for 做指定次数的循环

range()变形

break 和 continue


判断


日常生活中说的 如果 ... 否则 .... ,这个就是判断,在程序代码中需要使用 if(如果)elif(如果)else(否则)三个关键字来实现

if 的基本结构

  • 基本语法

if  判断条件:

        书写条件成立(真),执行的代码

        书写条件成立(真),执行的代码

顶格书写,没有缩进的代码,和 if无关,不管条件是否成立,都会执行

# 1. if 是一个关键字,和后续的判断条件之间需要一个空格

# 2. 判断条件后边需要一个冒号,不要少了

# 3. 冒号之后,回车,代码需要缩进,在 pycharm 中会自动进行缩进,一般是4个空格或者一个tab键

# 4. 所有在 if 代码下方的缩进中书写的代码,属于 if 语句的代码块,判断条件为True 的时候会执行

# 5. if 代码块中的代码,要么都执行,要么都不执行

# 6. if 代码块结束之后,代码要顶格书写(不再有缩进),表示是和 if 无关的代码

  • 代码案例

  1. 使用 input 获取用户的年龄
  2. 判断年龄是否满足 18 岁
  3. 如果年龄大于等于(满足)18 岁,输出 '满 18 岁了,可以进入网吧为所欲为了'
# 1. 使用 input 获取用户的年龄, 类型是 str
age = input('请输入你的年龄:')
# 2. 判断年龄是否满足 18 岁
if int(age) >= 18: # 字符串和 int 类型不能比大小, 先类型转换,再比大小
    # 3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了'
    print('满 18 岁了,可以进入网吧为所欲为了')
  • 练习

  1. 获取用户输入的用户名信息
  2. 如果用户名信息是 admin , 就在控制台输出出来
# 1. 获取用户输入的用户名信息
name = input('请输入你的用户名:')
# 2. 如果用户名信息是 admin, 就在控制台输出出来
if name == 'admin':
    print('欢迎 admin')

 if else 结构

  • 基本结构

if  判断条件:

书写条件成立(真),执行的代码

书写条件成立(真),执行的代码

else:

书写条件不成立(假), 执行的代码

书写条件不成立(假), 执行的代码

# 1. else 是关键字,后边需要冒号

# 2. 冒号之后回车,同样需要缩进

# 3. 处于 else 代码下方缩进中的内容,属于 else 的代码块

# 4. if 和 else 的代码块,只会执行其中的一个

# 5. else 需要结合 if 使用

# 6. if else 之间不能有其他顶格书写的内容(不提 elif)

  • 代码案例
  1. 使用 input 获取用户的年龄
  2. 判断年龄是否满足 18
  3. 如果年龄大于等于(满足)18 岁,输出 '满 18 岁了,可以进入网吧为所欲为了'
  4. 如果不满足,输出 '不满 18 岁,回去写作业吧'
# 1. 使用 input 获取用户的年龄, 类型是 str
age = input('请输入你的年龄:')
# 2. 判断年龄是否满足 18 岁
if int(age) >= 18: # 字符串和 int 类型不能比大小, 先类型转换,再比大小
    # 3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了'
    print('满 18 岁了,可以进入网吧为所欲为了')
# 4. 如果不满足, 输出 '不满 18 岁,回去写作业吧'
else:
    print('不满 18 岁,回去写作业吧')
  • 练习
  1. 获取用户输入的用户名信息
  2. 如果用户名信息是 admin,就在控制台输出出来
  3. 如果用户名信息不是 admin,就在控制台输出“用户名错误!
# 1. 获取用户输入的用户名信息
name = input('请输入你的用户名:')
# 2. 如果用户名信息是 admin, 就在控制台输出出来
if name == 'admin':
    print('欢迎 admin')
# 3. 如果用户名信息不是 admin, 就在控制台输出"用户名错误!"
else:
    print('用户名错误!')

 if 和逻辑运算符结合使用

  • 案例一
  1. 获取用户输入的用户名和密码
  2. 判断用户名是 admin 并且密码是 123456 时,在控制台输出:登录成功!
  3. 否则在控制台输出:登录信息错误!
# 1. 获取用户输入的用户名和密码
name = input('请输入用户名:')
pwd = input('请输入密码:')
 
# 2. 判断用户名是 admin 并且密码是 123456 时, 在控制台输出: 登录成功!
if name == 'admin' and pwd == '123456':
    print('登录成功!')
# 3. 否则在控制台输出: 登录信息错误!
else:
    print('登录信息错误!')
  • 案例二
  1. 获取用户输入的用户名
  2. 判断用户名是 admin 时,在控制台输出:欢迎 admin 登录!
  3. 用户名是 test 时,在控制台输出:欢迎 test 登录!
  4. 如果是其他信息,在控制台输出:查无此人!
# 1. 获取用户输入的用户名
username = input('请输入用户名:')
# 2. 判断用户名是 admin 时, 在控制台输出: 欢迎 admin 登录!
# 3. 用户名是 test 时, 在控制台输出: 欢迎 test 登录!
if username == 'admin' or username == 'test':
    print(f'欢迎 {username} 登录!')
# 4. 如果是其他信息, 在控制台输出: 查无此人!
else:
    print('查无此人!')

if elif else 结构

如果某个判断条件有多个,此时建议使用 if elif else 结构来实现

  • 语法

if  判断条件1:

        判断条件1成立,执行的代码

elif  判断条件2:         # 只有判断条件1不成立,才会判断判断条件2

        判断条件2成立执行的代码

else:

        以上条件都不成立,执行的代码

# 1. elif 也是关键字,后边和判断条件之间需要一个空格,判断条件之后需要冒号

# 2. 冒号之后回车需要缩进,处在这个缩进中的的代码表示是 elif 的代码块

# 3. 在一个 if判断中,可以有很多个 elif

# 4. 只有 if 的条件不成立,才会去判断 elif 的条件

# 5. 在一个if 中,如果有多个 elif,只要有一个条件成立,后续的所有都不再判断

# 6. if elif else 结构,和 if 的缩进相同的只能是 elif 和 else,如果是其他的,就表示这个判断结构结束了

if  判断条件1:

        执行的代码

if  判断条件2:

        执行的代码

if  判断条件3:

        执行的代码

# 多个 if 的结构,每个 if 都会进行判断,之间没有关联系

  • 案例
  1. 定义 score 变量记录考试分数
  2. 如果分数是大于等于 90 分应该显示优
  3. 如果分数是大于等于 80 分并且小于 90 分应该显示良
  4. 如果分数是大于等于 70 分并且小于 80 分应该显示中
  5. 如果分数是大于等于 60 分并且小于 70 分应该显示差
  6. 其它分数显示不及格
  • elif 实现
# 1. 定义 score 变量记录考试分数
score = int(input('请输入你的分数')) # int float
# 2. 如果分数是大于等于90分应该显示优
if score >= 90:
    print('优')
# 3. 如果分数是大于等于80分并且小于90分应该显示良
elif (score >= 80) and score < 90:
    print('良')
# 4. 如果分数是大于等于70分并且小于80分应该显示中
# and score < 80 可以不写的, 原因只有上边一个判断条件不成立(一定满足 score<80),才会执行
这个
elif score >= 70:
    print('中')
# 5. 如果分数是大于等于60分并且小于70分应该显示差
elif score >= 60:
    print('差')
# 6. 其它分数显示不及格
else:
    print('不及格')
  • 多个 if 实现
# 1. 定义 score 变量记录考试分数
score = int(input('请输入你的分数')) # int float
# 2. 如果分数是大于等于90分应该显示优
if score >= 90:
    print('优')
# 3. 如果分数是大于等于80分并且小于90分应该显示良
if (score >= 80) and score < 90:
    print('良')
# 4. 如果分数是大于等于70分并且小于80分应该显示中
if (score >= 70) and score < 80:
    print('中')
# 5. 如果分数是大于等于60分并且小于70分应该显示差
if (score >= 60) and score < 70:
    print('差')
# 6. 其它分数显示不及格
if score < 60:
    print('不及格')

if 嵌套

if 嵌套,是指在一个 if(elif else) 中嵌套另一个 if
使用场景:判断条件存在递进关系(只有第一个条件满足了,才会判断第二个条件)

  • 语法

if  判断条件1:

        判断条件1成立,执行的代码

        if  判断条件2:

                判断条件2成立,执行的代码

        else:

                判断条件2不成立,执行的代码

else:

        判断条件1不成立,执行的代码

  • 代码案例

取款机取钱的过程,假定 你的密码是: 123456,账户余额为 1000

1. 提示用户输入密码

2. 判断密码是否正确

3. 密码正确后,提示输入取款的金额

4. 判断取款的金额和余额的关系

# 取款机取钱的过程, 假定 你的密码是: 123456, 账户余额为 1000
pwd = '123456' # 可以预先定义变量,也可以在判断的时候直接使用
money = 1000 # 可以预先定义变量,也可以在判断的时候直接使用
# 1. 提示用户输入密码
password = input('请输入密码:')
# 2. 判断密码是否正确
if password == pwd:
    print('密码正确,登录成功')
    # 3. 密码正确后,提示输入取款的金额,
    get_money = int(input('请输入要取款的金额:'))
    # 4. 判断取款的金额和余额的关系
    if money >= get_money:
        print('取款成功')
    else:
        print('余额不足')
else:
print('密码有误,请再次尝试')
  • 练习

假定某网站用户名固定为 'admin',密码固定为 '123456',验证码 固定为 '8888'

1. 获取用户输入的用户名,密码和验证码

2. 先判断验证码是否正确,如果正确打印输出验证码正确,再判断用户名和密码是否正确

3. 如果验证吗不正确,直接输出验证码不正确,请重新输入

# 假定某网站用户名固定为 'admin', 密码固定为'123456', 验证码 固定为 '8888'
# 1. 获取用户输入的用户名,密码和验证码
username = input('请输入用户名:')
pwd = input('请输入密码:')
code = input('请输入验证码:')
# 2. 先判断验证码是否正确,如果正确打印输出验证码正确,再判断用户名和密码是否正确
if code == '8888':
    print('验证码正确')
    # 再判断用户名和密码是否正确
    if username == 'admin' and pwd == '123456':
        print('用户名密码正确,登录成功')
    else:
        print('用户名或者密码错误,请再次尝试')
# 3. 如果验证吗不正确,直接输出 验证码不正确,请重新输入
else:
    print('验证码不正确')

案例:猜拳游戏 

import random
 
# 1. 自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
player = int(input('请出拳石头(1)/剪刀(2)/布(3):')) # 不要忘了类型转换
# 2. 电脑随机出拳 (使用随机数模块(工具)完成) (computer)
computer = random.randint(1, 3)
# 3. 判断输赢
# 3.1 玩家胜利
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3
and computer == 1):
    print('恭喜你获得胜利')
# 3.2 平局 player == computer
elif player == computer:
    print('平局')
# 3.3 玩家输了 else
else:
    print('输了, 不要放弃, 再来一局')

循环


while 循环

  • 语法

1. 设置循环的初始条件(计数器)

2. 书写循环的判断条件

  • while 判断条件:
    • # 3. 需要重复执行的代码
    • # 4. 改变循环的初始条件(计数器)
  • # 1. while 是关键字
  • 代码
# 1. 设置循环的初始条件 (记录说了几遍 我错了)
i = 0
 
# 2. 书写判断条件
while i < 5:
    # 3. 重复执行的代码
    print('媳妇, 我错了')
    # 4. 改变初始条件,
    # i = i + 1
    i += 1

死循环和无限循环

死循环:一般是由写代码的人不小心造成的 bug,代码一直不停的运行下去

无限循环:写代码的人故意让代码无限制的去执行,代码一直不停的运行下去

无限循环的使用场景:在书写循环的时候,不确定循环要执行多少次

无限循环的使用一般会在循环中添加一个 if 判断,当 if 条件成立,使用关键字 break 来终止循环

使用循环求 1-100 之间数字的和

1 + 2 + 3 + ... + 99 + 100

# 1. 定义变量 保存求和的结果
num = 0
# 2 定义循环获取 1- 100 之间的数字并求和
# 2.1 定义初始条件
i = 1
# 2.2 书写循环的条件
while i <= 100:
    # 2.3 书写重复执行的代码
    # 0 + 1 + 2 + 3 + 4 + .. + 99 + 100
    num += i # 因为每一次 i 的值会变化
    # 2.4 改变计数器
    i += 1
# 3 打印求和的结果
print('求和的结果是:', num)

使用循环求 1-100 之间偶数的和

  • 方法一

直接找到 1-100 之间所有的偶数,进行相加

2  4  6  8 ..  98  10

# 1. 定义变量 保存求和的结果
num = 0
# 2 定义循环获取 1- 100 之间的偶数并求和
# 2.1 定义初始条件
i = 2
# 2.2 书写循环的条件
while i <= 100:
    # 2.3 书写重复执行的代码
    num += i # 因为每一次 i 的值会变化 num = num + i
    # print(i)
    # 2.4 改变计数器
    i += 2 # 每次加 2, 才可以保证所有的数字都是偶数
# 3 打印求和的结果
print('求和的结果是:', num)
  • 方法二

1. 找 1-100 之间所有的数字

2. 判断这个数字是不是偶数,如果是偶数再求和

偶数:能被 2 整除的数(数字除 2 的余数是 0)

i % 2 == 0

num = 0
 
i = 1
while i <= 100:
    # 判断该数字是不是偶数,如果是偶数再求和
    if i % 2 == 0:
        # print(i)
        num += i
    # 改变计数器
    i += 1
print('求和的结果是:', num)

for 循环

for 循环  也可以让指定的代码重复执行(循环)
for
循环  可以遍历容器中的数据
         遍历:从容器中把数据⼀个⼀个取出
        容器:可以简单理解为盒子,盒子中可以存放很多的数据
        (
字符串 str , 列表 list , 元组 tuple , 字典 dict
for
循环  也可以称为 for 遍历

  • 基本的 for 循环语法

for 变量名 in 容器:

重复执行的代码

  1. for 和 in 都是关键字
  2. 容器中有多少个数据,循环会执行多少次(0 个数据,执行0 次,...)
  3. 每次循环,会将容器中数据取出⼀个保存到 in 关键字前边的变量中
  • for 做指定次数的循环

for   变量   in   range ( n ):
重复执行的代码

  1. range() 是 Python 中的函数,作用使用可以生成 [0, n) 之间的整数,不包含 n 的,⼀个有 n 个数字,所以这个循环循环 n 次
  2. 想让 for 循环循环多少次,n 就写几
  3. 变量的值 也是每次循环从 [0, n) 取出⼀个值,第⼀次取得是 0,最后⼀次取得是 n-1
  • range()变形

# 需求:使用 for 循环获取 5 到 10 之间的数字
for 变量 in range ( a , b ):
        重复的代码
# range(a, b) 作用是生成 [a, b) 之间的整数数字, 不包含 b
for i in range(5): # [0 1 2 3 4 ]

        print ( i )
print ( '-' * 30 )

# 需求:使用 for 循环获取 5 到 10(包含) 之间的数字
for m in range ( 5 , 11 ):
        print ( m )

break 和 continue

breakcontinuePython 中的两个关键字 , 只能在循环中使用

break:终止循环,即代码执行遇到 break,循环不再执行,立即结束
continue:跳过本次循环,即代码执行遇到 continue,本次循环剩下的代码不再执行,继续下⼀次循环

# 1. 获取你输⼊的字符串
result = input('请输⼊⼀个字符串:')
# 2. 遍历打印这个字符串
for i in result:
    # 3. 在遍历的时候,如果这个字符是 e, 不打印(即后续的代码不执⾏)
     if i == 'e':
         continue # 本次循环后续的代码不执⾏,执⾏下⼀次循环
     print(i)
print('-' * 30)
 
for i in result:
     # 3. 在遍历的时候,如果这个字符是 e, 不打印(即后续的代码不执⾏)
     # 如果这个字符不是 e, 打印
     if i != 'e':
         print(i)

  • 22
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值