七、分支结构
- 在程序运行过程中能够对某些情况正确的做出选择。
- 系统关键字:if、elif、else
- 分为单分支结构和多分支结构。
1. 单分支结构
- 语法:
if 条件: # 条件成立,执行代码块1
代码块1
else: # 条件不成立,执行代码块2
代码块2
- 练习:使用input输入一个年龄,判断是否成年
age = int(input("请输入一个年龄:"))
if age >= 18:
print('成年')
else:
print('未成年')
2. 多分支结构
- 语法:
if 条件1: # 条件1成立,执行代码块1
代码块1
elif 条件2: # 条件1不成立,条件2成立,执行代码块2
代码块2
elif 条件3: # 条件1、2不成立,条件3成立,执行代码块3
代码块3
elif 条件4: # 条件1、2、3不成立,条件4成立,执行代码块4
代码块4
else: # 以上条件都不成立,执行代码块5
代码块5
注:elif 可以写无数个,else可以看情况不写。
- 案例:考试成绩划分等级(ABCDE)。
score = int(input('请输入成绩:'))
if score >= 90:
print('A')
elif score >= 80: # score>=80 and score<90 --> 80<=score<90
print('B')
elif score >= 70: # score>=70 and score<80 --> 70<=score<80
print('C')
elif score >= 60: # score>=60 and score<70 --> 60<=score<70
print('D')
else:
print('E')
3. 嵌套分支
- 一个分支结构再嵌套多个分支结构。
- 案例:判断数字是否是偶数,如果是偶数在判断其是否是10的倍数。
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}是奇数')
4. 三目运算符
- 单分支结构的简化,性能和单分支结构没有差异。
- 语法:
变量 = 结果1 if 条件 else 结果2
# 如果条件成立,执行结果1,否则执行结果2.
- 练习:判断是否成年。
age = 20
result = '成年' if age >= 18 else '未成年'
print(result)
八、循环
- 可以借助程序来解决某一类重复、繁琐的事情。
- 涉及到的关键字有:for、in、while、break、continue、else。
1. for循环
- 语法:
for 变量 in 容器:
代码块
注:容器中元素的个数决定了for循环的次数。
range()
- range(M, N, step): M是范围的起点,N是范围的终点,step是步长,默认值是1,可以不写。
a. 步长step决定了下一个元素获取谁,当前元素 + step = 下一个元素
b.如果range中有一个数字x,且x>0,代表从0获取到x-1,此时x等于结束范围N,0等于开始范围M
c.如果step>0,M<N;如果step<0,M>N。
range(1, 11): # 获取1~10十个元素。
range(1, 11, 3): # 获取1、4、7、10四个元素。
range(10): # 获取0~9十个元素。
range(12, 4): # 获取不到元素。
range(0, 10, -1): # 获取不到元素
range(11, 1, -1): # 从11取到2,一共10个元素
-----------------------------------------------
for i in range(6):
print(i) # 打印1~6
print('-'*20)
for i in range(1, 6, 5):
print(i) # 打印1
print('-'*20)
for i in range(1, 6, -1):
print(i) # 获取不到元素
print('-'*20)
for i in range(0, -10, -3):
print(i) # 打印0、-3、-6、-9
- 练习:计算1~100的和。
range(1, 100):左开右闭区间,生成[1,100)中所有的整数。
sum = 0
for i in range(1, 101):
# print(i)
sum += i
# i += 1
print(sum)
- 案例1:通过修改步长,计算100以内2的倍数的和。
sum = 0
for i in range(2, 101, 2):
sum += i
print(sum)
# for i in range(1, 101):
# if i % 2 == 0:
# print(i)
# sum += i
- 案例2:计算100的阶乘。
sum = 1
for i in range(1, 101):
sum *= i
print(sum)