分支结构
- 应用原理:
- 在程序的运行过程中,对产生的不同情况进行选择
- 分支关键字:if、else、elif
单分支结构
-
由if和else组成,只有两种输出结果
- 语法
if 条件: 代码块 else: 代码块 # else分支可写也可不写
- 示例
UserName = input('请输入账号: ') pwd = input('请输入密码: ') if UserName == 'admin' and pwd == '123456' print('登陆成功') else: print('账号或密码错误')
多分支结构
-
由if、elif和else组成,其中可以有无数个elif条件,else在结尾可以被省略
- 语法
if 条件: 代码块 elif 条件: 代码块 elif 条件: 代码块 ...... else: 代码块 # elif 可以写无数个,else看情况写或不写
- 示例
score = 60 if score >= 90: print('A') elif 80 <= score < 90: print('B') elif 70 <= score < 80: print('C') elif 60 <= score < 70: print('D') else: print('E')
嵌套分支
-
原理:一个分支结构内再嵌套多个分支结构
- 公式
if 条件: if 条件: 代码块 elif 条件: 代码块 elif 条件: 代码块 ...... # if/if-else/if-elif-else格式内可以嵌套if、if-else或if-elif-else形式的公式 # 不建议大量使用嵌套,难以操作且可读性差,违背python的原则
- 示例
num = 20 if num % 2 ==0 print(f'{num}是偶数') if num % 10 == 0 print(f'{num}是10的倍数') else: print(f'{num}不是10的倍数') else: print(f'{num}是奇数')
三目运算符
-
单分支结构的简化版方法,性能和单分支结构没有差异
- 语法
变量 = 结果1 if 条件 else 结果2 # 如果条件成立,执行结果1,否则执行结果2
- 示例
age = 20 result = '成年' if age >= 18 else '未成年' print(result)
循环
- 应用原理:
- 循环结构可以用来处理某些重复且繁琐的事情
- 循环关键字:for、in、while、break、continue、else
for循环
-
语法
for 变量 in 容器: 代码块
- 示例
sum = 0 # 总和sum的初始值为0 for i in range(1, 101): # range是容器 sum += i # 将遍历的每个i元素进行相加 print(sum) # 输出总和
-
range的原理
- range(M, N, step): M是范围的起点,N是范围的终点,step是步长,其默认值为1,可以不写
range(1, 11) # 获取1-10十个元素 range(1, 11, 3) # 获取1、4、7、10四个元素 range(10) # 获取0-9十个元素 range(12, 4) # 获取不到元素 range(0, 10 , -1) # 获取不到元素,0-10为递增关系,-1为递减关系 range(11, 1, -1) # 从11取到2,一共10个元素
-
注意:
a. 步长决定了下一个元素是谁, 当前元素 + 步长step = 下一个元素
b. 如果 step > 0, 需要 M < N; 如果 step < 0, 需要 M > N
-
示例
# 计算100以内2的倍数的和 sum = 0 for i in range(0, 101, 2): sum += i print(sum)
while循环
-
原理:for适合循环确定的循环,while既适合确定次数的循环,同时也适合次数不确定的循环
- 语法
while 条件: 代码块
- 示例
sum = 0 i = 1 while i < 101: sum += i i += 1 print(sum)
while猜字游戏(二分法)
-
条件:随机产生一个数,如果猜的数字比较大,提示再小一点;如果猜的数字比较小,提示再大一点。如果猜对了,程序结束;如果7次猜不对,提示智商有限
- 代码
import random # 导包 num = random.randint(1, 100) # 1-99随机取一个数 print(num) flag = True count = 0 # 统计猜的次数 while flag: num1 = int(input('请输入你猜的数字: ')) count += 1 if num1 > num: print('再小一点') elif num1 < num: print('再大一点') else: print('猜对了!') flag = False if count > 7: print('智商有限')
结束和跳出循环关键字
- break: 触发break时,当前所在循环直接结束,break后面的代码全部不执行
- continue: 触发continue时,跳出档次循环,不打印当次循环中continue后的语句,直接进行下一次循环
for-else循环
-
原理:适用于所有结论考虑完才能得到某一结论的场景
- 语法
for 变量 in 容器: 代码块 else: 代码块
- 示例
# 找出100内的所有素数 # 只有1和本身两个因子的正整数叫做素数 for i in range(2, 101): if i == 2: print('2是素数') else: for j in range(2, i): if i % j ==0: print(f'{i}不是素数') break else: print(f'{i}是素数')