当前位置: 首页 > news >正文

Python 程序设计讲义(19):选择结构程序设计

Python 程序设计讲义(19):选择结构程序设计

目录

  • Python 程序设计讲义(19):选择结构程序设计
    • 一、单分支选择结构
        • 1、单分支选择结构的语法
        • 2、单分支选择结构的程序流程图
        • 3、单分支选择结构举例
    • 二、双分支选择结构
        • 1、双分支选择结构的语法
        • 2、双分支选择结构的程序流程图
        • 3、双分支选择结构举例
        • 4、双分支选择结构的简化形式
        • 5、if...else 的嵌套
    • 三、多分支选择结构
        • 1、多分支选择结构的语法
        • 2、多分支选择结构的程序流程图
        • 3、多分支选择结构举例

在程序中,根据条件选择执行不同的语句或语句块,这样的语句称为选择语句。选择语句根据分支的多少分为:单分支选择结构、双分支选择结构和多分支选择结构。

一、单分支选择结构

单分支选择结构只有一个条件和结果。当条件成立时执行某些语句,而当条件不成立时不执行任何语句。

1、单分支选择结构的语法

单分支选择结构的语法格式如下:

if 条件:语句

说明:

(1)条件:为关系表达式或逻辑表达式,条件后面必须使用冒号(:)。

(2)语句:前面必须缩进4个空格(可以使用 Tab 键),表示语句与 if 具有包含关系。

例如:输入一个整数,判断是否大于100

n=int(input("请输入一个整数:"))
if n>100:print("你输入了一个大于100的整数。")运行结果为:
请输入一个整数:200
你输入了一个大于100的整数。
2、单分支选择结构的程序流程图

单分支选择结构的程序流程图如下图所示:

在这里插入图片描述

3、单分支选择结构举例

(1)通过键盘输入一个数,如果输入的是一个正数,则显示输入的结果,并输出提示信息:你输入了一个正数。

程序如下:

n=int(input("请输入一个整数:"))
if n>0:print(n)print("你输入了一个正数。")运行结果为:
请输入一个整数:50
50
你输入了一个正数。    

(2)定义一个变量a,并赋值为20,然后通过键盘输入一个数,如果输入一个偶数,则和a相加,输入相加之后的结果。

程序如下:

a=20
n=int(input("请输入一个整数:"))
if n%2==0:a+=nprint(a)运行结果为:
请输入一个整数:100
120

二、双分支选择结构

双分支选择结构包含两个分支,当条件成立时执行一个分支,当条件不成立时执行另一个分支。

1、双分支选择结构的语法

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

if 条件:语句1
else:语句2

说明:

(1)当条件成立时,执行语句1,当条件不满足时,执行else后面的语句2。

(2)语句1和语句2具有相同的缩进。

例如:输入一个整数,判断其是偶数还是奇数。

n=int(input("请输入一个整数:"))
if n%2==0:print(n,'是一个偶数')
else:print(n, '是一个奇数')运行结果为:
请输入一个整数:55
55 是一个奇数
2、双分支选择结构的程序流程图

在执行 if…else 语句时,先对 if 后面的条件进行判断,如果条件成立,则执行 if 后面的语句1,再执行 if…else 语句以外的其他语句。如果条件不成立,则执行 else 后面的语句2,再执行 if…else 语句以外的其他语句。

双分支选择结构的程序流程图如下图所示:

在这里插入图片描述

3、双分支选择结构举例

通过键盘输入一个整数,表示一个人的年龄,如果输入的年龄大于18,显示已成年,否则显示未成年。

程序如下:

n=int(input("请输入一个年龄:"))
if n>18:print('已成年')
else:print('未成年')运行结果为:
请输入一个年龄:20
已成年
4、双分支选择结构的简化形式

在书写 if…else 语句时,可以使用简化形式。

格式如下:

语句1 if 条件 else 语句2

当满足 if 后面的条件时,执行语句1,否则执行语句2。

例如:判断分数是否及格。

程序如下:

score=float(input("请输入考试分数:"))
y='及格' if score>=60.0 else '不及格'
print(y) 运行结果为:
请输入考试分数:50
不及格
5、if…else 的嵌套

if…else 的嵌套是指在 if…else 语句中嵌套另一个 if…else 语句。根据嵌套的位置不同,可分为三种情况。

(1)if…else 放在 if 分支中

语法格式如下:

if 条件A:语句块Aif 条件B:语句块Belse:语句块C
else:语句块D     

例如:输入一个整数,如果是整数,输出1,如果是负数,输出-1,如果是0,输出0

程序如下:

n=int(input("请输入一个整数:"))
if n>=0:if n>0:y=1else:y=0
else:y=-1
print(y)程序的运行结果为:
请输入一个整数:0
0

(2)if…else 放在 else 分支中

语法格式如下:

if 条件A:语句块A
else:语句块B    if 条件B:语句块Celse:语句块D

例如:输入一个整数,如果是整数,输出1,如果是负数,输出-1,如果是0,输出0

程序如下:

n=int(input("请输入一个整数:"))
if n>0:y=1
else:if n<0:y=-1else:y=0
print(y)程序的运行结果为:
请输入一个整数:-25
-1

(3)if…else 分别放在 if 和 else 分支中

语法格式如下:

if 条件A:语句块Aif 条件B:语句块Belse:语句块C
else:语句块Cif 条件C:语句块Eelse:语句块F

例如:某一门课程的考试分笔试和机试,如果笔试和机试成绩都及格,则考试通过;如果机试和笔试都不及格,机试和笔试都需要补考;如果机试及格,笔试不及格,则笔试需要补考;如果笔试及格,机试不及格,则机试需要补考。

程序如下:

bs=int(input("请输入笔试成绩:"))
js=int(input("请输入机试成绩:"))
if bs>=60:if js>=60:result='成绩合格'else:result='成绩不合格:需要补考机试'
else:if js>=60:result = '成绩不合格:需要补考笔试'else:result = '成绩不合格:需要补考机试和笔试'
print(result)程序的运行结果为:
请输入笔试成绩:50
请输入机试成绩:50
成绩不合格:需要补考机试和笔试

三、多分支选择结构

多分支选择结构使用 if…elif…else 语句,由 if、elif 和 else 构成,它在 if … else 语句的基础上使用 elif (可以有一个或多个 elif)进行扩展。

1、多分支选择结构的语法

多分支选择结构语法格式如下:

if 条件1:语句块1
elif 条件2:语句块2
elif 条件3:语句块3
...
else:语句块n
2、多分支选择结构的程序流程图

在执行 if…elif…else 语句时,先判断 if 后面的条件,如果条件成立,执行 if 后面的语句块;如果条件不成立,接着判断 elif 后面的条件,如果成立,就执行后面的语句块;如果条件不成立,继续判断下一个 elif 后面的条件,以此类推。如果所有的 elif 后面的条件都不成立,则执行 else 后面的语句块。

多分支选择结构的程序流程图如下图所示:

在这里插入图片描述

3、多分支选择结构举例

通过键盘输入学生的成绩(百分制),根据成绩确定一个等级(90-100分:优秀,80-90分:良好,70-80分:中等,60-70分:及格,60分以下:不及格,超过100分或低于0分,显示输入错误)。

程序如下:

score=int(input("请输入学生成绩:"))
if score>100 or score<0:y='输入错误'
elif score>=90:y="优秀"
elif score>=80:y="良好"
elif score>=70:y="中等"
elif score>=60:y="及格"
else:y="不及格"
print(y)程序的运行结果为:
请输入学生成绩:66
及格
http://www.dtcms.com/a/297832.html

相关文章:

  • 架构篇(一):告别MVC/MVP,为何“组件化”是现代前端的唯一答案?
  • [2025CVPR-图象分类方向]CATANet:用于轻量级图像超分辨率的高效内容感知标记聚合
  • Git常用命令赏析
  • Spring Boot 优雅实现多租户架构!
  • 谁将统治AI游戏时代?腾讯、网易、米哈游技术暗战
  • 基于Android的2048休闲益智游戏App
  • 上位机程序开发基础介绍
  • 大型微服务项目:听书——11 Redisson分布式布隆过滤器+Redisson分布式锁改造专辑详情接口
  • HTML5武汉旅游网站源码
  • ZedGraph 可选定轴 通过鼠标移动或通过滚轮设置轴的范围
  • linux-开机启动流程
  • 解密国密 SSL 证书:SM2、SM3、SM4 算法的协同安全效应
  • 物联网技术:起源、发展、重点技术、应用场景与未来演进
  • [RPA] Excel中的字典处理
  • Y1第4课题解(A~E)
  • Kubernetes深度解析:企业级容器编排平台的核心实践
  • 在OpenMP中,#pragma omp的使用
  • JAVA_FourTEEN_常见算法
  • Python爬虫实战:研究flanker相关技术
  • 通过 Web3 区块链安全评估,领先应对网络威胁
  • Java零基础入门学习知识点2-JDK安装配置+Maven
  • k8s常用基础命令总结
  • P1106 删数问题 - 洛谷
  • 深度学习day02--神经网络(前三节)
  • 使用 Dijkstra 算法 和 旅行商问题(TSP) 规划快递员配送路线(python)
  • Qwen3-235B-A22B-Thinking-2507 - 开源思维推理模型的新标杆
  • ClickHouse 常用的使用场景
  • Java学习第七十四部分——Elasticsearch(ES)
  • 订单数据解密:从数据来源到状态分析的SQL实战指南
  • 【Python】一些PEP提案(四):scandir、类型约束,异步asyncawait