Python 入门笔记9——选择结构

控制语句

  变量、数据类型(整数、浮点数、布尔)、序列(字符串、列表、元组、字典、集合),可以看做是数据的组织方式。数据可以看做是“砖块”!
  流程控制语句是代码的组织方式,可以看做是“混凝土”。
  一个完整的程序,离不开“砖块”,也离不开“混凝土”。他们的组合,才能让我们建立从小到“一个方法”,大到“操作系统”,这样各种各样的“软件”。

选择结构

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

单分支结构

在这里插入图片描述

双分支结构

在这里插入图片描述

多分支结构

单分支选择结构

  if 语句单分支结构的语法形式如下:
  if 条件表达式:
    语句/语句块

其中:

  1. 条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
  2. 语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。

代码示例:输入一个数字,小于 10,则打印这个数字

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

条件表达式详解

  在选择和循环结构中,条件表达式的值为 False 的情况如下:
  False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空 range 对象、空迭代对象。
  其他情况,均为 True。这么看来,Python 所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式。

代码示例:测试各种条件表达式

if 3:
    print("ok")

if not []:
    print("空列表,False")

s = "False"

if s:
    print("非空字符串,是 True")

c = 9
if 3<c<10:
    print("3<c<10")
if 3<c and c<10:
    print("3<c and c<9")

if True:
    print("True")

执行结果:

ok
空列表,False
非空字符串,是 True
3<c<10
3<c and c<9
True

条件表达式中,不能有赋值操作符“=”
  在 Python 中,条件表达式不能出现赋值操作符“=”,避免了其他语言中经常误将关系运算符“==”写作赋值运算符“=”带来的困扰。如下代码将会报语法错误:

c= 9
if 3<c and (c=20):
    print(c)
    if 3<c and (c=20):
                 ^
SyntaxError: invalid syntax

双分支选择结构

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

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

代码示例:输入一个数字,小于 10,则打印该数字;大于 10,则打印“数字太大”

num = int(input("input a number:"))
if num < 10:
    print(num)
else:
    print("Too big to print")

三元条件运算符

  Python 提供了三元运算符,用来在某些简单双分支赋值情况。三元条件运算符语法格式如下:
  条件为真时的值 if (条件表达式) else 条件为假时的值

  上一个案例代码,可以用三元条件运算符实现:

num = int(input("input a number:"))
print(num if num < 10 else "Too big to print")

  可以看到,这种写法更加简洁,易读。

多分支选择结构

多分支选择结构的语法格式如下:
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("第三象限")
elif x>0 and y<0:
    print("第四象限")

选择结构嵌套

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

代码示例:输入一个分数。分数在 0-100 之间。90 以上是 A,80 以上是 B,70 以上是 C,60 以上是 D。60 以下是 E。
方法1:

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

方法2:

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
    if num == 10:
        num=9
    print("分数是{0},等级是{1}".format(score,degree[9-num]))

猜你喜欢

转载自blog.csdn.net/weixin_45031468/article/details/111885309
今日推荐