程序控制语句、结构
- 一、普通语句(顺序结构)
- 二、条件判断语句(选择结构)
- 1、if语句 & 单分支选择
- 2、if-else语句 & 双分支选择
- 3、if-elif-else语句 & 多分支选择
- 三、循环执行语句(循环结构)
- 1、for 循环(计数循环)
- 2、while循环(条件循环)
- 3、break语句、continue语句
- 四、习题练习
- 练习一、根据输入判断成绩
- 练习二、输出菱形图案
本文使用 Python 版本为 3.9.5
一、普通语句(顺序结构)
顾名思义,顺序结构就是语句不加控制地按句从上向下顺序执行,它是我们使用频率较高的结构,也是我们学习其他结构的基础。
#顺序结构:
#创建int变量
x = 3
#打印该变量
print(x) #结果:3
#查看该变量类型
type(x) #结果:<class 'int'>
以上语句就是一种顺序结构。
二、条件判断语句(选择结构)
条件判断语句,即根据布尔逻辑判断是否成立,从而影响后面代码块执行的选择。
1、if语句 & 单分支选择
if 表达式:
语句块
单分支选择:判断条件的成立与否,关乎着这部分代码块执行 / 跳过。
#创建int型变量
x = 3
#执行判断操作
if x == 4:
print('A')
print('Z')
执行以上代码,很显然,字母A 因为判断条件爱你不满足,不会被控制台打印输出,而 字母Z 会被正常输出。
#创建int型变量
y = 4
#执行判断操作(书写过程中注意缩进,Python是一门需严格控制缩进的语言)
if y == 4:
print('A')
print('Z')
执行以上代码,控制台先输出 字母A 再输出 字母Z。
2、if-else语句 & 双分支选择
if 表达式:
代码块
else :
代码块
双分支选择:为我们提供了两条路径,不满足判断条件 不再会跳过控制区域,而会进入 else语句 所管辖的代码块,待其行完成后,方可继续执行之后的代码。
我们以此为语句为例,更改以上代码:
#创建int型变量
x = 4
#执行判断操作(书写过程中注意缩进,Python是一门需严格控制缩进的语言)
if x == 3:
print('A')
else :
print('B')
print('Z')
此时,由于 变量x 并不等于 4,控制台会先输出 字母B,后输出 字母Z。
3、if-elif-else语句 & 多分支选择
if 表达式1:
代码块
elif 表达式2:
代码块
elif 表达式3:
代码块
......
elif 表达式n:
代码块
else :
代码块
多分支选择,根据条件不同,分别进入不同的代码块,从而完成多种情况的判断。else if代表当以上所有情况都不成立,但本 else if 控制条件成立时,所需要执行的代码块。由于else if 写起来不够便捷,Python 支持将其缩写为 elif 。
#创建int型变量
x = 12
#执行判断操作(书写过程中注意缩进,Python是一门需严格控制缩进的语言)
if x < 5:
print("x小于5")
elif x < 10:
print("x小于10,但不小于5")
elif x < 15:
print("x小于15,但不小于10")
else :
print("x不小于10")
很显然,控制台会执行输出:x小于15,但不小于10。
三、循环执行语句(循环结构)
1、for 循环(计数循环)
for 取值 in 序列 / 迭代对象:
代码块
[else:
代码块]
计数循环,即当计数数值不满足条件时,会一直持续进行下去,直到计数完成。
Python 的 for 需要使用 序列 / 迭代对象 辅助进行,常用的迭代对象为 range对象。并且支持 当循环结束时,执行 else 内的代码块。
将前100的正整数相加并输出:
#定义int变量,表示结果变量
int s = 0
for i in range(1,101):
s += i
print(s)
利用 for-else 结构,执行打印语句,else 代表无论循环是否能进行,总会在退出循环(计数大小不再满足条件)时,执行其内部的代码块:
#定义int变量,表示结果变量
int s = 0
#执行循环
for i in range(1,101):
s += i
else:
print(s) #5050
执行以上两种代码,控制台均会输出其最终结果:5050。
2、while循环(条件循环)
while 表达式:
代码块
[else:
代码块]
Python 的 while 循环为条件循环,即当条件满足时,会一直执行下去,直到不再满足条件,while 同样支持 当循环结束时,执行 else 内的代码块。
我们同样可以通过 while 循环完成 “将前100的正整数相加并输出” 的任务,只是这里判断、计数的方式不同:
#计数
int i = 0;
#存储结果
int s = 0;
#执行循环
while i <= 100:
s+=i;
i+=1;
else
print(s) #5050
执行以上代码,控制台最终会输出其结果:5050。
3、break语句、continue语句
break语句、continue语句在我们编写程序的过程中也十分常用,负责控制循环的跳出。
- break 语句:结束本层循环,不再执行代码块。
- continue 语句:跳过本次循环的执行,忽略其以后的所有代码,进入下一次循环。
寻找100以内最大素数(质数):
#外循环:从100开始,每次-1
for n in range(100,1,-1):
#判断是否可被2整除
if n % 2 == 0:
#若可被2整除必定不是素数,且已知2本身不是100以内的最大素数
continue
#从3开始,直到 n^0.5(取整)+1 结束循环,并且每次增加2
for i in range(3,int(n**0.5)+1,2):
#当n可被i整除时
if n % i == 0:
#结束内循环
break;
else:
#打印此时的n
print(n)
#结束外循环
break
这样,我们就找到了100以内的最小素数97。
四、习题练习
练习一、根据输入判断成绩
while True:
score = int(input('请输入成绩:\n'))
if score == -1:
print('退出!')
#退出总循环
break
elif score < 60 :
print('成绩不及格!')
elif score < 75:
print('成绩一般!')
elif score < 85:
print('成绩良好!')
elif score < 100:
print('成绩优秀!')
elif score == 100:
print('成绩满分!')
else:
print('输入成绩有误!')
练习二、输出菱形图案
n = int(input('请输入菱形行数:\n'))
for i in range(n):
print(('* ' * i).center(n * 3))
for i in range(n,0,-1):
print(('* ' * i).center(n * 3))