控制语句
控制语句:把语句组合成能完成一定功能的小逻辑模块。分为三类:顺序、选择和循环。
顺序结构即先做第一步,再做第二步,按照顺序进行,很好理解
本篇我们详细讲解选择结构(条件判断结构),循环结构放到下一篇讲
选择结构(条件判断结构)
“条件判断结构”代表“如果…,则…”
的逻辑。
比如:看到红灯,则停车;看到敌人,则开枪;
也就是判断条件被满足后,则执行代码,否则不执行
选择结构通过判断条件是否成立,来决定执行哪个分支。
选择结构有多种形式,分为:单分支、双分支、多分支。
单分支选择结构
if语句单分支结构的语法形式如下:
if 条件表达式:
语句/语句块
这段代码的意思是:如果 if: 后面结果为True,则执行语句
条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致
条件表达式详解:
在选择和循环结构中,条件表达式的值为False的情况如下:
False、0、0.0、空值None、空序列对象(空列表、空元组、空集合、空字典、空字符串)、
空range对象、空迭代对象。
其他情况,均为True。
这么看来,Python所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式
⚠️条件表达式中,不能有赋值操作符 =
实操:输入一个数字,小于10,则打印这个数字
num = input("输入一个数字:")
if int(num)<10:
print("小于10的数:"+num)
注意:为什么我们不能使用 num<10 进行判断,而是使用了 int(num)<10 呢?
因为 num 获得 input 捕获的数字后属于字符串,而字符串无法与整数型10相比较,
所以我们要将字符串num通过 int() 转换成整数型
双分支选择结构
双分支结构的语法格式如下:
if 条件表达式:
语句1/语句块1
else:
语句2/语句块2
这串代码的意思也很简单:
如果满足条件表达式,则执行if:后面的语句,否则执行else:后面的语句
实操:输入一个数字,小于10,则打印该数字;大于10,则打印“数字太大”
num = input("输入一个数字:")
if int(num)<10:
print("小于10的数:"+num)
else:
print("数字太大")
实操:使用单分支结构完成以下内容:
输入一个学生的成绩,将其转化成简单描述:
不及格(小于60)、及格(60-79)、良好(80-89)、优秀(90-100)
score = int(input("请输入分数:"))
grade = '' #这行代码可有可没有
if(score<60):
grade = "不及格"
if(60<=score<80):
grade = "及格"
if(80<=score<90):
grade = "良好"
if(90<=score<=100):
grade = "优秀"
print("分数为{0},成绩{1}".format(score,grade))
三元条件运算符
Python的三元运算符,用来在某些简单双分支赋值情况。
三元条件运算符语法格式如下:
输出条件为True的值 if (条件表达式) else 输出条件为False的值
这行代码很好理解:我们从最中间的条件表达式开始看,
如果条件表达式结果为True,则输出 if 前面的值,否则,输出else后面的值
注意:并不是刚才学习的执行语句,而是简单的输出值,所以无需print()也可以输出
实操:使用三元条件运算符完成上一个实操
num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")
多分支选择结构
多分支选择结构的语法格式如下:
if 条件表达式1 :
语句1/语句块1
elif 条件表达式2 :
语句2/语句块2
...
elif 条件表达式n :
语句n/语句块n
[else:
语句n+1/语句块n+1
]
这些代码的意思是 :如果满足 if 则执行语句1,整段代码结束运行
否则判断第一个elif是否满足条件,如果满足则执行语句1,整段代码结束运行
如果第一个eilf依然不满足条件,则判断第二个eilf是否满足,以此类推
最后一个判断结构可以使用eilf结尾,也可以使用学习过的else
实操:使用多分支结构完成以下内容:
输入一个学生的成绩,将其转化成简单描述:
不及格(小于60)、及格(60-79)、良好(80-89)、优秀(90-100)
score = int(input("请输入分数:"))
grade = '' #这行代码可有可没有
if score<60 :
grade = "不及格"
elif score<80 :
grade = "及格"
elif score<90 :
grade = "良好"
elif score<=100:
grade = "优秀"
print("分数为{0},成绩{1}".format(score,grade))
选择结构嵌套
选择结构可以嵌套,也就是将一个循环套入另一个循环里面
使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了代码的从属关系。
实操:选择结构嵌套
score = int(input("请输入一个在0-100之间的数字:"))
grade = ''
if score>100 or score<0: #第一个循环结构,判断数字是否在0-100之间
print("输入错误!请重新输入一个在0-100之间的数字")
else:
if score>=90: #在else后面放第二个单分支循环结构,判断成绩
grade = "A"
elif score>=80:
grade = 'B'
elif score>=70:
grade = 'C'
elif score>=60:
grade = 'D'
else:
grade = 'E'
print("分数为{0},等级为{1}".format(score,grade)) #输出成绩与等级
下面是一个代码量更少的写法,有兴趣的可以自己理解:
score = int(input("请输入一个在0-100之间的数字:"))
degree = "ABCDE"
num = 0
if score>100 or score<0:
score = int(input("输入错误!请重新输入一个在0-100之间的数字:"))
else:
num = score//10
if num<6:num=5
print("分数是{0},等级是{1}".format(score,degree[9-num]))