选择结构

选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分
支、双分支、多分支。

流程图如下:

单分支结构
alt
双分支结构
alt
多分支结构
alt

单分支选择结构

if 语句单分支结构的语法形式如下:

if 条件表达式:
  语句/语句块

其中:
1 .条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
2 .语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。
【操作】 输入一个数字,小于 10,则打印这个数字

num = input("输入一个数字:")
if int(num)<10:
	print(num)

条件表达式详解

在选择和循环结构中,条件表达式的值为 False 的情况如下:
  False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字
符串)、空 range 对象、空迭代对象。

其他情况,均为 True。这么看来,Python 所有的合法表达式都可以看做条件表达式,甚至
包括函数调用的表达式。
**【操作】**测试各种条件表达式

if 3: #整数作为条件表达式
	print("ok")
	
a = [] #列表作为条件表达式,由于为空列表,是 False
if a:
	print("空列表,False")
	
s = "False" #非空字符串,是 True
if s:
	print("非空字符串,是 True")
	
c = 9
if 3<c<20:
	print("3<c<10")
if 3<c and c<20:
	print("3<c and 1<20")
	
if True: #布尔值
	print("True")

执行结果如下:

ok
非空字符串,是 True
3<c<10
3<c and c<10
True

条件表达式中,不能有赋值操作符“=”
在 Python 中,条件表达式不能出现赋值操作符“=”,如下代码将会报语法错误:

if 3<c and (c=10):
	print("赋值符不能出现在条件表达式中")

双分支选择结构

双分支结构的语法格式如下:

if 条件表达式 :
  语句 1/语句块 1
else:
语句 2/语句块 2

【操作】 输入一个数字,小于 10,则打印该数字;大于 10,则打印“数字太大”。

num = input("输入一个数字:")
if int(num)<10:
	print(num)
else:
	print("数字太大")

三元条件运算符

Python 提供了三元运算符,用来在某些简单双分支赋值情况。
三元条件运算符语法格式:

条件为真时的值  if (条件表达式)  else 条件为假时的值

上一个示例代码,可以用三元条件运算符实现:
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
](这条语句可有可无)

多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序。
【操作】 输入一个学生的成绩,将其转化成简单描述:不及格(小于 60)、及格(60-79)、良
好(80-89)、优秀(90-100)。

方法 1:

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

每个分支都使用了独立的、完整的判断,顺序可以随意挪动,而不影响程序运行。

方法 2:

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

多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序。

【操作】已知点的坐标(x,y),判断其所在的象限

x = int(input("请输入 x 坐标"))
y = int(input("请输入 y 坐标"))
if(x==0 and y==0):
	print("原点")
elif(x==0):
	print("y 轴")
elif(y==0):
	print("x 轴")
elif(x>0 and y>0):
	print("第一象限")
elif(x<0 and y>0):
	print("第二象限")
elif(x<0 and y<0):
	print("第三象限")
else:
	print("第四象限")

选择结构嵌套

选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了
代码的从属关系。语法格式如下:

if 表达式 1:
  语句块 1
if 表达式 2:
  语句块 2
else:
  语句块 3
else:
  if 表达式 4:
   语句块 4

   
【操作】输入一个分数。分数在 0-100 之间。90 以上是 A,80 以上是 B,70 以上是 C,60
以上是 D。60 以下是 E。

    score = int(input("请输入一个在 0-100 之间的数字:"))
    grade = ""
    if score>100 or score<0:
    	score = int(input("输入错误!请重新输入一个在 0-100 之间的数字:"))
    else:
	    if score>=90:
	    	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))

或者:成绩低于60分下,访问字符串"ABCDE"的下标4(相等于9-5)对应的元素;70分下,访问下标3(相当于9-6)的元素;其余,类似。

    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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值