Python 程序设计入门(017)—— 选择结构程序设计

Python 程序设计入门(017)—— 选择结构程序设计

目录

  • Python 程序设计入门(017)—— 选择结构程序设计
    • 一、if 语句
    • 二、if…else 语句
    • 三、if…elif…else 语句
    • 四、多分支选择语句与字典相结合
    • 五、逻辑运算符 and
    • 六、逻辑运算符 or
    • 七、if…else 语句的嵌套

程序中的选择结构也称为判断结构,按照条件选择执行不同的代码片段。Python 中的选择结构主要有三种形式:if 语句、if…else 语句和 if…elif…else 语句。

一、if 语句

if 语句的语法格式如下:

if 表达式:语句块

说明:

(1)表达式:可以是比较表达式或逻辑表达式。如果表达式的值为 True,则执行语句块;如果表达式的值为 False,则跳过语句块,继续执行后面的语句。

(2)表达式中常用的比较运算符如下表所示:

比较运算符>>===!=<<=
作用大于大于或等于等于不等于小于小于或等于

逻辑运算符:

逻辑运算符andornot
作用逻辑与逻辑或逻辑非

(3)Python 采用代码缩进和冒号区分代码之间的层次。if 表达式行尾的冒号和下一行的缩进(通常情况下采用 4 个空格作为一个缩进量)表示一个代码块的开始,而缩进结束则表示一个代码块的结束。使用 if 语句时,必须严格按照缩进规则进行编码。

例1:

test = input("请输入转账金额:")
if int(test) > 5000:print("单笔转账金额不能超过5000元")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入转账金额:8000
单笔转账金额不能超过5000

例2:缩进问题

test = input("请输入转账金额:")
if int(test) > 5000:print("单笔转账金额不能超过5000元")
print("程序结束")  # 该行代码不属于if语句的代码块运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入转账金额:2000
程序结束

例3:

num = int(input("请输入一个整数:"))
if num > 0 and num % 2 == 0:num **= 2
print(num)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:4
16
>>> 
请输入一个整数:15
15

二、if…else 语句

if…else 语句的语法格式如下:

if 表达式:语句块1
else:语句块1

说明:如果满足表达式指定的条件,则执行 if 后面的语句块,否则,执行 else 后面的语句块。

例1:

num = int(input("请输入一个整数:"))
if num % 2 == 0:print("你输入了一个偶数")
else:print("你输入了一个奇数")
print("程序结束")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:15
你输入了一个奇数
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个整数:200
你输入了一个偶数
程序结束

例2:if…else 语句的嵌套

num = float(input("请输入一个数:"))
if num > 0:print("你输入了一个正数")
else:if num < 0:print("你输入了一个负数")else:print("你输入的数是0")
print("程序结束")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:100
你输入了一个正数
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-2.5
你输入了一个负数
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
你输入的数是0你
程序结束

三、if…elif…else 语句

if…elif…else 语句的语法格式如下:

if 表达式1:语句块1
elif:语句块2
elif:语句块3
....
else:语句块n

说明:if…elif…else 语句是一个多分支选择语句,当某一个表达式的值为真时,执行其后的语句块;如果表达式的值为加,跳过其后的语句块,进行下一个 elif 表达式的判断。如果所有的表达式都不为真,则执行 else 后面的语句块。

例1:判断一个数是正数、负数还是 0

num = float(input("请输入一个数:"))
if num > 0:print("你输入了一个正数")
elif num < 0:print("你输入了一个负数")
else:print("你输入数是0")
print("程序结束")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:5
你输入了一个正数
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
你输入数是0
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-12.5
你输入了一个负数
程序结束

例2:输入分数,判断其等级(优、良、中等、及格、不及格)

num = float(input("请输入考试成绩:"))
if num > 100 or num < 0:print("成绩输入错误!")
elif num >=90:print("优秀")
elif num >=80:print("良好")
elif num >=70:print("中等")
elif num >=60:print("及格")
else:print("不及格")
print("程序结束")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:500
成绩输入错误!
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:100
优秀
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:25
不及格
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:60
及格
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:80
良好
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入考试成绩:75
中等
程序结束

四、多分支选择语句与字典相结合

对于一些语句块比较简单(语句块只有一个输出)的 if…elif…else 语句,可以把表达式和语句块的输出内容保存到字典中。

例如:

dict1 = {"1":"查看","2":"添加","3":"删除","4":"更新","0":"退出系统"}
num = input("请输入你的操作类型(0-4):")
select = dict1.get(num,"a")
if select != "a":print("你选择的操作类型为:",select)
else:print("不存在你要选择的操作")
print("程序结束")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4)0
你选择的操作类型为: 退出系统
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4)1
你选择的操作类型为: 查看
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4)2
你选择的操作类型为: 添加
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4)3
你选择的操作类型为: 删除
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4)4
你选择的操作类型为: 更新
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入你的操作类型(0-4)5
不存在你要选择的操作
程序结束

五、逻辑运算符 and

使用 and 运算符可以进行多个条件的判断,只有同时满足多个条件才能执行 if 后面的语句块。

例如:

score1 = float(input("请输入笔试成绩:"))
score2 = float(input("请输入机试成绩:"))
if score1 >= 60 and score2 >= 60:print("计算机等级考试通过!")
else:print("计算机等级考试没通过!")
print("程序结束")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入笔试成绩:80
请输入机试成绩:90
计算机等级考试通过!
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入笔试成绩:50
请输入机试成绩:90
计算机等级考试没通过!
程序结束

六、逻辑运算符 or

使用 or 运算符可以进行多个条件的判断,多个条件中只要满足一个条件即执行 if 后面的语句块。

例如:

java_score = float(input("请java语言考试成绩:"))
python_score = float(input("请python语言考试成绩:"))
go_score = float(input("请go语言考试成绩:"))
if java_score >= 60 or python_score >= 60 or go_score >= 60:print("计算机等级考试通过!")
else:print("计算机等级考试没通过!")
print("程序结束")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请java语言考试成绩:50
请python语言考试成绩:0
请go语言考试成绩:0
计算机等级考试没通过!
程序结束
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请java语言考试成绩:88
请python语言考试成绩:0
请go语言考试成绩:0
计算机等级考试通过!
程序结束

七、if…else 语句的嵌套

if…else 语句的嵌套形式如下所示:

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

例如:

num = float(input("请输入一个数:"))
if num >= 0:if num > 0:print(num,"是一个正数。")else:print(num,"是0。")
else:print(num,"是一个负数。")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
0.00>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:12.5
12.5 是一个正数。
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-2
-2.0 是一个负数。

以上代码可以写成如下形式:

num = float(input("请输入一个数:"))
if num > 0:print(num,"是一个正数。")
else:if num < 0:print(num,"是一个负数。")else:print("输入的数是0。")运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:1.2
1.2 是一个正数。
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:-2.58
-2.58 是一个负数。
>>> 
===================== RESTART: C:\Python\Python38\First.py =====================
请输入一个数:0
输入的数是0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/29854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php webshell 免杀入门

webshell 查杀软件&#xff1a; d盾、安全狗、护卫神、Sangfor WebShellKill 在线查杀 百度WEBDIR https://scanner.baidu.com 河马 https://www.shellpub.com cloudwalker牧云 https://webshellchop.chaitin.cn 查杀技术 静态检测、动态检测、日志检查 静态检查&#xff1a…

【安卓串口通信】

安卓串口通信需要使用到串口适配器和USB OTG线。首先需要在Android设备上安装串口调试助手或其他支持串口通信的应用程序。然后将串口适配器连接到Android设备&#xff0c;使用USB OTG线连接即可。 接下来&#xff0c;您需要打开串口调试助手或其他应用程序&#xff0c…

研发工程师玩转Kubernetes——PVC使用storageClassName选择PV

除了《研发工程师玩转Kubernetes——PVC使用Label和storage选择PV》中介绍的使用Label做选择因子外&#xff0c;PVC还可以通过storageClassName选择符合条件的PV。 StorageClass的设计是用于描述如何动态创建PV。最开始时&#xff0c;管理员需要一次性申请好所有的PV&#xff0…

Cesium中通过射线计算日照

Cesium中通过射线计算日照 前段时间接触到一个需求&#xff0c;需要实时的计算建筑的日照&#xff0c;通常优先通过shadow map来实现。通过shadow map可以直接获取某一时刻的光照信息&#xff0c;累积不同太阳光位置的shadow map即可得到物体表面的光照时长。 不过本人技术有限…

SPINN:基于设备和云的神经网络协同递进推理

SPINN&#xff1a;基于设备和云的神经网络协同递进推理 论文标题&#xff1a;SPINN: synergistic progressive inference of neural networks over device and cloud 原文链接&#xff1a;https://dl.acm.org/doi/10.1145/3372224.3419194 论文动机 现代CNN过多的计算需求&am…

redis的缓存更新策略以及如何保证redis与数据库的数据一致性

redis的缓存更新策略有这么几种&#xff1a; 1、由应用直接和redis以及数据库相连接&#xff1a; 查询数据时&#xff0c;应用去redis中查询&#xff0c;查不到的话再由应用去数据库中查询&#xff0c;并将查询结果放在redis&#xff1b; 更新数据时&#xff…

在jupyter中下载数据集失败及解决方法(以IMDB为例)

在IMDB数据集下载时&#xff0c;由于网络原因下载失败&#xff0c;报错如下&#xff1a; Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/imdb.npz ConnectionResetError Traceback (most recent call last) … Exception: URL fetch f…

windos wsl2 docker unix:///var/run/docker.sock

解决方案 问题如下 rootDESKTOP-VM0J0I4:~# docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?启动下docker sudo service docker startcsdn 等风来不如迎风去 htp://t.csdn.cn/Gh365

将 Kwargs 传递给 Python 中的另一个函数

文章目录 Python 中的关键字参数在 Python 中使用**kwargs 调用函数使用 Python 将 kwargs 传递给另一个函数总结 Python 列出了可以传递给程序中的函数的两种类型的参数。 非关键字参数 (**args) 和关键字参数 (**kwargs)。 通常&#xff0c;python 函数必须使用正确数量的参…

electron、electron-forge 安装

npm修改了registry&#xff0c;安装依旧无效 使用cnpm 倒是可以解决&#xff0c;但是 npx electron-forge import 中 Installing dependencies 使用的是npm 给出一次性解决方案&#xff1a; step1&#xff1a;切换npm的下载源&#xff0c;可以使用nrm 进行管理&#xff0c;有…

华秋亮相2023世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展

洞悉全球汽车产业格局&#xff0c;前瞻业界未来趋势。2023年7月27日-30日&#xff0c;时隔三年&#xff0c;重聚武汉国际博览中心&#xff0c;2023世界汽车制造技术暨智能装备博览会盛大开幕。深耕汽车行业多年的世界汽车制造技术暨智能装备博览会&#xff0c;掀起行业热点新高…

死磕Android性能优化,卡顿原因与优化方案

随着移动互联网的快速发展&#xff0c;Android应用的性能优化变得尤为重要。卡顿是用户体验中最常见的问题之一&#xff0c;它会导致应用的响应变慢、界面不流畅&#xff0c;甚至影响用户的使用体验。因此&#xff0c;我们需要深入了解卡顿问题的原因&#xff0c;并寻找相应的解…

Java中ArrayList常用方法的学习

Java中ArrayList常用方法的学习 需求分析代码实现小结Time 需求分析 ArrayList集合的常用方法学习 代码实现 java.util.ArrayList;/*** Author:LQ* Description:* Date:Created in 16:45 2023/8/9*/ public class ListTest {public static void main(String[] args) {ArrayLis…

WMS系列:层级树的surface 的创建

WMS 创建的surface 与 surfaceflinger 创建的Layer 是一一对应的&#xff0c;只不过可能是创建不同的 Layer 1. DefaultTaskDisplayArea 对应的surface 的创建 DefaultTaskDisplayArea 的调用栈如下&#xff0c;是在系统进程启动服务的时候&#xff0c;去创建对应的SurfaceCont…

Flutter:屏幕适配

flutter_screenutil flutter_screenutil是一个用于在Flutter应用程序中进行屏幕适配的工具包。它旨在帮助开发者在不同屏幕尺寸和密度的设备上创建响应式的UI布局。 flutter_screenutil提供了一些用于处理尺寸和间距的方法&#xff0c;使得开发者可以根据设备的屏幕尺寸和密度…

Segment Anything(SAM) 计算过程

给定输入图像 I ∈ R 3 H W I \in R^{3 \times H \times W} I∈R3HW。给定需要的prompts&#xff1a; M ∈ R 1 H W M \in R^{1 \times H \times W} M∈R1HW&#xff0c;代表图片的前背景信息。 P ∈ R N 2 P \in R^{N \times 2} P∈RN2&#xff0c;其中 N N N 是点的个数…

vscode 搭建STM32开发环境

1.需要软件 1.1 vscode 1.2 STM32CubeMX&#xff0c;这个不是必须的&#xff0c;我是为了方便生成STM32代码 2.vscode配置 2.1安装keil Assistant 2.2配置keil Assistant 3.STMCUBE生成个STM32代码 &#xff0c;如果有自己的代码可以忽略 4.代码添加到vscode&#xff0c;并…

模拟出栈的所有顺序(dfs+回溯)

题目&#xff1a; 已知某一个字母序列&#xff0c;把序列中的字母按出现顺序压入一个栈&#xff0c;在入栈的任意过程中&#xff0c;允许栈中的字母出栈&#xff0c;求所有可能的出栈顺序 示例&#xff1a; 输入abc 输出abc、acb、bac、bca、cba 代码如下 #define _CRT_SECURE…

JAVA集合框架 一:Collection(LIst,Set)和Iterator(迭代器)

目录 一、Java 集合框架体系 1.Collection接口&#xff1a;用于存储一个一个的数据&#xff0c;也称单列数据集合&#xff08;single&#xff09;。 2.Map接口&#xff1a;用于存储具有映射关系“key-value对”的集合&#xff08;couple&#xff09; 3.Iterator接口&#…

【ChatGPT 指令大全】怎么使用ChatGPT来辅助学习英语

在当今全球化的社会中&#xff0c;英语已成为一门世界性的语言&#xff0c;掌握良好的英语技能对个人和职业发展至关重要。而借助人工智能的力量&#xff0c;ChatGPT为学习者提供了一个有价值的工具&#xff0c;可以在学习过程中提供即时的帮助和反馈。在本文中&#xff0c;我们…