9

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

 3 years ago
source link: https://blog.csdn.net/weixin_45031468/article/details/111885309
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

单分支结构

在这里插入图片描述

双分支结构

在这里插入图片描述

多分支结构

单分支选择结构

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK