其他Python知识参考:软件测试基础(七)—— Python
目录
一、流程控制结构
1、流程控制
2、 Python中的流程控制语句
二、 分支结构
1、if 的基本结构
2、if-else 结构
3、if-elif-else 结构
4、if 嵌套
5、实战:猜拳游戏
三、循环结构
1、 死循环和无限循环
2、while循环
2.1、while案例1(猜拳游戏)
2.2、while案例2(使用循环求 1-100 之间偶数的和)
3、for 循环
3.1、for 做指定次数的循环
3.2、break 和 continue
也称控制流程,是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。
三大流程控制结构:
1. 顺序结构 :代码从上到下,全部执行
2. 分支结构 :判断语句,代码有选择性的执行
3. 循环结构 :重复执行某一部分的代码
注意:程序中除了分支结构和循环结构以外的程序部分都属于顺序结构
if、for、while、break、continue 五个。Python3.10增加了match。当然也有人会将pass(类似于汇编指令nop,什么也不做的空指令)归类于流程控制
编程时经常需要检查一系列条件,并据此决定采取什么措施。 在Python中,if 语句让你能够检查程序的当前状态,并采取相应的措施
只有if语句的条件成立, 会执行的代码
# 基本语法: if 判断条件: 书写条件成立(真),执行的代码 书写条件成立(真),执行的代码 顶格书写,没有缩进的代码,和 if无关, 不管条件是否成立,都会执行 # 1. if 是一个关键字, 和后续的判断条件之间需要一个空格 # 2. 判断条件后边需要一个冒号,不要少了 # 3. 冒号之后,回车,代码需要缩进, 在 pycharm 中会自动进行缩进, 一般是 4 个空格 或者 一个 tab 键 # 4. 所有在 if 代码下方的缩进中书写的代码,属于 if 语句的代码块, 判断条件为 True 的时候会执行 # 5. if 代码块中的代码,要么都执行,要么都不执行 # 6. if 代码块结束之后, 代码要顶格书写(不再有缩进), 表示是和 if 无关的代码 # 案例 # 1. 使用 input 获取用户的年龄, 类型是 str age = input('请输入你的年龄:') # 2. 判断年龄是否满足 18 岁 if int(age) >= 18: # 字符串和 int 类型不能比大小, 先类型转换,再比大小 # 3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了' print('满 18 岁了,可以进入网吧为所欲为了') print('我和 if 判断没有关系,不管怎样,都会执行')
如果 条件成立 做什么事 否则(条件不成立) 做另一件事
# 基本语法: if 判断条件: 书写条件成立(真),执行的代码 书写条件成立(真),执行的代码 else: 书写条件不成立(假), 执行的代码 书写条件不成立(假), 执行的代码 # 1. else 是关键字, 后边需要冒号 # 2. 冒号之后回车,同样需要缩进 # 3. 处于 else 代码下方缩进中的内容,属于 else 的代码块 # 4. if 和 else 的代码块, 只会执行其中的一个 # 5. else 需要结合 if 使用 # 6. if else 之间不能有其他顶格书写的内容(不提 elif) # 案例 # 1. 使用 input 获取用户的年龄, 类型是 str age = input('请输入你的年龄:') # 2. 判断年龄是否满足 18 岁 if int(age) >= 18: # 字符串和 int 类型不能比大小, 先类型转换,再比大小 # 3. 如果年龄大于等于(满足)18 岁, 输出 '满 18 岁了,可以进入网吧为所欲为了' print('满 18 岁了,可以进入网吧为所欲为了') # 4. 如果不满足, 输出 '不满 18 岁,回去写作业吧' else: print('不满 18 岁,回去写作业吧')
如果某个判断条件有多个, 此时建议使用 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,如果是其他的,就表示这个判断结构# 结束了 案例1: # 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 嵌套, 是指在一个 if(elif else) 中嵌套另一个 if.
使用场景: 判断条件存在递进关系(只有第一个条件满足了,才会判断第二个条件)
# 基本语法 if 判断条件1: 判断条件1成立,执行的代码 if 判断条件2: 判断条件2成立,执行的代码 else: 判断条件2不成立,执行的代码 else: 判断条件1不成立,执行的代码
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('输了, 不要放弃, 再来一局')
1. 需要重复地执行某些相似的任务,使用用循环结构(就是让 指定的代码 重复的执行)
2. 根据循环次数是否有限,循环可以分为循环次数有限的有限循环和循环次数无限的无限循环。无限循环又称死循环,不过死循环有时并非语法错误,有时候是正好需要死循环的
3. Python中的循环流程控制语句有for、while 两个。Python中没有do...while、wend语句
死循环: 一般是由写代码的人不小心造成的 bug, 代码一直不停的运行下去
无限循环: 写代码的人故意让代码无限制的去执行,代码一直不停的运行下去 无限循环的
使用场景: 在书写循环的时候,不确定循环要执行多少次 无限循环的使用一般会在循环中添加一个 if 判断, 当 if 条件成立,使用关键字 break 来终止循环
1. 设置循环的初始条件(计数器)
2. 书写循环的判断条件
while 判断条件:
# 3. 需要重复执行的代码
# 4. 改变循环的初始条件(计数器)
# 1. while 是关键字
# 案例 # 1. 设置循环的初始条件 (记录说了几遍 我错了) i = 0 # 2. 书写判断条件 while i < 5: # 3. 重复执行的代码 print('媳妇, 我错了') # 4. 改变初始条件, # i = i + 1 i += 1
# 基本语法:
while True:
重复执行的代码 # 可以在 if 的上边
if 判断条件:
break # 关键字的作用就是终止循环, 当代码执行遇到 break,这个循环就不再执行了
重复执行的代码 # 可以在 if 的下边
# 案例(猜拳游戏)
import random
while True: # 不知道你想玩几次,所以使用 无限循环
# 1. 自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
player = int(input('请出拳石头(1)/剪刀(2)/布(3)/退出(0):')) # 不要忘了类型转换
if player == 0:
break # 代码遇到 break,就会终止循环
# 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('输了, 不要放弃, 再来一局')
# 方法一
# 直接找到 1-100 之间所有的偶数,进行相加 2 4 6 8 .. 98 100
# 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循环可以遍历容器中的数据(
遍历: 从容器中把数据⼀个⼀个取出
容器: 可以简单理解为盒⼦, 盒⼦中可以存放很多的数据 (字符串 str, 列表 list, 元组 tuple, 字典 dict)
)
for 循环 也可以称为 for 遍历
# 基本语法 for 变量名 in 容器: 重复执⾏的代码 # 1. for 和 in 都是关键字 # 2. 容器中有多少个数据,循环会执⾏多少次(0 个数据,执⾏ 0 次, ...) # 3. 每次循环,会将容器中数据取出⼀个保存到 in 关键字前边的变量中
for 变量 in range(n):
重复执⾏的代码
# 1, range() 是 Python 中的函数, 作⽤使⽤可以⽣成 [0, n) 之间的整数,
# 不包含 n 的 , ⼀个有 n 个数字, 所 以这个循环循环 n 次
# 2, 想让 for 循环循环多少次,n 就写⼏
# 3, 变量的值 也是每次循环从 [0, n) 取出⼀个值, 第⼀ 次取得是 0 ,最后⼀次取得是 n-1
for 变量 in range(a, b):
重复的代码
# range(a, b) :作⽤是⽣成 [a, b) 之间的整数数字, 不包含 b
break 和 continue 是 Python 中的两个关键字, 只能在循环中使⽤
1. break: 终⽌循环, 即代码执⾏遇到 break, 循环不再执⾏,⽴即结束
2. continue: 跳过本次循环. 即代码执⾏遇到 continue,本次循 环剩下的代码不再执⾏, 继续下⼀次循环
其他Python知识参考:软件测试基础(七)—— Python