选择结构(条件判断结构)

控制语句

控制语句:把语句组合成能完成一定功能的小逻辑模块。分为三类:顺序选择循环

顺序结构即先做第一步,再做第二步,按照顺序进行,很好理解

本篇我们详细讲解选择结构(条件判断结构)循环结构放到下一篇讲

选择结构(条件判断结构)

条件判断结构”代表“如果…,则…”的逻辑。

比如:看到红灯,则停车看到敌人,则开枪

也就是判断条件被满足后,则执行代码,否则不执行

选择结构通过判断条件是否成立,来决定执行哪个分支

选择结构有多种形式,分为:单分支、双分支、多分支

单分支选择结构

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]))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值