Day03.分支结构

A2B V1.0协议学习笔记(A2B System Specification V1.0) A2B全称是 Automotive Audio Bus 汽车音频总线,主要是解决传统音频总线线多、线重、成本贵等问题。本文是以A2B V1.0规范为准,现在ADI又推出了A2B V2.0,物理层不兼容,采用了QPSK编码方式,后续有时间再更新。A2B总线的优点:支持1主多从的架构(最多10个子节点)支持50Mbps(具体是49.152 Mbps)的高带宽传输以及 阅读详情

分支结构



前言

迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关,还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为“分支结构”或“选择结构”。

提示:以下是本篇文章正文内容,下面案例可供参考

一.if语句的使用

在Python中,要构造分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名(事实上,用作其他的标识符也是不可以)。下面的例子中演示了如何构造一个分支结构。

# 用户身份验证
username = input("请输入用户名:")
password = input("请输入口令:")

# 用户名是admin 且 密码时123456则身份验证成功否则失败
if username == "admin" and password == "123456":
    print("身份验证成功!")
else:
    print("身份验证失败!")

# 请输入用户名:admin
# 请输入口令:123456
# 身份验证成功!

需要说明的是和C/C++、Java等语言不同,Python中没有用花括号来构造代码块而是使用了缩进的方式来表示代码的层次结构,如果if条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以了。换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块,相当于是一个执行的整体。缩进可以使用任意数量的空格,但通常使用4个空格,建议大家不要使用制表键或者设置你的代码编辑工具自动将制表键变成4个空格。

当然如果要构造出更多的分支,可以使用if...elif...else...结构或者嵌套的if...else...结构,下面的代码演示了如何利用多分支结构实现分段函数求值。 f ( x ) = { 3 x − 5 (x>1) x + 2 (-1 ≤ x ≤ 1) 5 x + 3 (x<-1) f(x)=\begin{cases} 3x-5&\text{(x>1)}\\x+2&\text{(-1}\leq\text{x}\leq\text{1)}\\5x+3&\text {(x<-1)}\end{cases} f(x)=⎩⎪⎨⎪⎧​3x−5x+25x+3​(x>1)(-1≤x≤1)(x<-1)​

x = float(input("x= ")) 
if x > 1 : 
    y = 3 * x - 5 
elif x >= -1 : 
    y = x + 2 
else: 
    y = 2 * x + 3

print("f(%.1f)=%.1f" % (x, y))

# x= 5
# f(5.0)=10.0

当然根据实际开发的需要,分支结构是可以嵌套的,例如判断是否通关以后还要根据你获得的宝物或者道具的数量对你的表现给出等级(比如点亮两颗或三颗星星),那么我们就需要在if的内部构造出一个新的分支结构,同理elif和else中也可以再构造新的分支,我们称之为嵌套的分支结构,也就是说上面的代码也可以写成下面的样子。 f ( x ) = { 3 x − 5 (x>1) x + 2 (-1 ≤ x ≤ 1) 5 x + 3 (x<-1) f(x)=\begin{cases} 3x-5&\text{(x>1)}\\x+2&\text{(-1}\leq\text{x}\leq\text{1)}\\5x+3&\text {(x<-1)}\end{cases} f(x)=⎩⎪⎨⎪⎧​3x−5x+25x+3​(x>1)(-1≤x≤1)(x<-1)​

x = float(input('x = '))

if x > 1:
    y = 3 * x - 5
else:
    if x >= -1:
        y = x + 2
    else:
        y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))

说明: 大家可以自己感受一下这两种写法到底是哪一种更好。在之前我们提到的Python之禅中有这么一句话“Flat is better than nested.”,之所以提倡代码“扁平化”是因为嵌套结构的嵌套层次多了之后会严重的影响代码的可读性,所以能使用扁平化的结构时就不要使用嵌套。

二.练习

练习1:英制单位英寸与公制单位厘米互换。

value = float(input('请输入长度: '))
unit = input('请输入单位: ')

if unit == 'in' or unit == '英寸':
    print('%.2f英寸 = %.2f厘米' % (value, value * 2.54))
elif unit == 'cm' or unit == '厘米':
    print('%.2f厘米 = %.2f英寸' % (value, value / 2.54))
else:
    print('请输入有效的单位')
  
# 请输入长度: 5
# 请输入单位: cm
# 5.00厘米 = 1.97英寸

练习2:百分制成绩转换为等级制成绩。

要求: 如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。

score = int(input("请输入您的分数:"))

if score >= 100 or score <= 0:
    grade = "输入错误!"
elif score >= 90 :
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70 :
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "E"
    
print("对应的等级是:", grade)

# 请输入您的分数:-5
# 对应的等级是: 输入错误!

练习3:输入三条边长,如果能构成三角形就计算周长和面积。

a = float(input("边长 a= "))
b = float(input("边长 b= "))
c = float(input("边长 c= "))

if a+b > c and a-b < c:
    p = 0.5 * (a + b + c)
    area = (p * (p-a) * (p-b) * (p-c)) ** 0.5
    print("该三角形的面积为:%.2f" %area)
else :
    print("无法构成三角形!")

# 边长 a= 5
# 边长 b= 5
# 边长 c= 5
# 该三角形的面积为:10.83

说明: 上面使用的通过边长计算三角形面积的公式叫做海伦公式。


总结

Python的分支结构主要是用来处理简单的“分支问题”,因为在日常生活中难以避免的会遇到“选择”,既然有选择,就会出现这种分支问题,然后再不断的去问题细化。当然也不是分类嵌套这种结构越多越好,而且在Python之禅也提到了,就是嵌套结构的嵌套层次多了之后会严重的影响代码的可读性,所以能使用扁平化的结构时就不要使用嵌套。作为一门解释性语言,最主要还是得通俗易懂嘛,然后才是各种优化(低层优化啥的咱也不懂,emm)。

溜了遛了。Loading(3/100)。。。。。。。。

使用 Visual Studio Code 连接 ABAP On-Premise 系统做开发的详细配置步骤 本文详细介绍了如何在Visual Studio Code中通过ABAP Development Tools扩展连接ABAP On-Premise系统。关键步骤包括:通过Ctrl+Shift+P打开命令行面板选择「ABAP: New Destination...」创建RFC连接(仅支持SSO单点登录),选择本地SAPGUI中已有的系统,输入Client ID、语言和用户名(无需密码),最后将目标系统添加到工作区即可开始开发。文章强调了企业安全考虑下仅支持SSO的设计理念,并展示了连接配置的JSON格式示例。整 阅读详情

相关推荐

别再为镜面物体检测发愁了!手把手教你用PMD相位偏折术增强2.5D形状图细节(附Python代码)

本文详细解析了PMD相位偏折术在工业视觉中镜面物体检测的应用,通过2.5D成像方案增强形状图细节。文章提供了Python代码示例,介绍了一种计算高效的局部特征增强算法,帮助解决产线环境中的噪声问题,提升缺陷识别准确率。

weixin_29299807的博客 346

分支结构和循环结构

一、分支结构  当需要在程序进行条件判断来决定是否执行后面代码的场合中,可以使用分支结构。  (1)if :如果成立则执行下列语句 如果不成立则不执行语句  (2)if else :  if{ 语句一 } else{ 语句二} 代表 如果成立则执行语句一 如果不成立则执行语句二 (3)if else if else 跟if else 相类似 只不过比if else 又多了几个分支 二、循环结构 在...

qq_44398610的博客 2119

Unity中5自由度机械臂运动控制与夹爪交互仿真实践

本文详细介绍了在Unity中实现5自由度机械臂运动控制与夹爪交互仿真的完整流程。从模型导入、物理组件配置到关节运动控制算法(包括逆运动学IK),再到夹爪抓取逻辑和工业分拣案例实战,提供了可落地的代码示例与性能优化方案,助力开发者快速掌握机械臂仿真核心技术。

weixin_29021757的博客 446

python分支结构的关键词_[Python basics]分支结构,入门,基础

分支结构分支结构即选择结构,对当前事件进行判断,产生分支,而且只有一个分支会被执行。在Python中,要构造分支结构可以使用‘if’、‘elif’和‘else’关键字。关键字就是由特殊含义的单词,像‘if’和‘else’就是专门用于构造分支结构的关键字,不能作为变量。if的使用eg.用户身份验证username = input('请输入用户名: ')password = input('请输入口令:...

weixin_29268267的博客 2646

手把手教你用RMII接口配置以太网PHY芯片(附YT8512实战代码)

本文详细介绍了如何使用RMII接口配置以太网PHY芯片,以国产YT8512为例,提供从硬件设计到软件驱动的全流程实战指南。内容包括RMII接口技术解析、YT8512硬件设计要点、驱动开发实战代码及常见问题排查,帮助开发者快速实现以太网通信功能。

mac99的博客 996

Rosetta基础2:preparing ligand

Rosetta是基于残基,也就是说Rosetta不把原子单独对待,而是把它们看作一个完整的化学实体。为了实现这个目标,Rosetta必须知道键长、键角以及其它性质。对标准残基和小分子残基模型都是必须的。Rosetta在params文件中对残基的性质进行编码。Rosetta数据库包含常见氨基酸残基和小分子残基的parmas文件。当我们添加新的配体时,需要生成新的parms文件。 What is a Params File params文件包含残基的几何形状和化学特征的信息,为了让Rosetta理解怎样运行这个

li1guangjun的博客 1755

Python基础学习:关键字elif

关键字elif是只存在If语句分支结构里的关键字,它是else if 的缩写,顾名思义,它就是在If语句中增加一个分支判断,当判断条件不满足上面的If判定条件时还需要进行分类讨论的话,就会使用elif进行再次分类。其格式为:if 条件一:       执行语句1elif条件二:       执行语句2………………else:#可选是否使用       执行语句n判断时判断条件一,条件一若为假,则继续...

zhtysw的博客 8346

RTC时钟芯片替换代码移植-IIC通信

1、问题 RTC时钟芯片由爱普生RX-8010SJ更换成大普INS5710A,两者都是IIC通信,更换大普芯片后时钟不走、以及报掉电错误。仿真分析原因是CPU和RTC芯片收发数据延时不够导致,根据爱普生芯片手册,8010收发数据不采取延时,但大普芯片采用同样方式读取不行(需要加延时) 2、RX-8010SJ手册说明(以读取数据为例) (1)寄存器读操作时序图 指定地址读操作: 1)CPU 发送开始条件[S] 2)CPU 传输RX-8010SJ 的从地址,用R/W 位设定写模式 3)检测从RX-8010

weixin_42851683的博客 2066

键盘输入一个英制的身高(几英尺几英寸),计算对应的公制身高(米)

1英尺foot=12英寸 1英尺foot=0.3048m ,要求定义符号常量FOOT,其值为0.3048。 【输入形式】分别输入身高的英尺数与英寸数 【输出形式】此身高对应的公制身高(米)。输出保留两位小数 【样例输入】 FOOT:5 INCH:10 【样例输出】 5feet,10inches is 1.78meters #include<stdio.h> int main() #define FOOT 0.3048 { int foot,INCH; float a,b; pr...

Angostura的博客 2239

嵌入式人工智能(18-基于树莓派4B的继电器JQC-3FF-S-Z)

本次实验的输出端控制不会接强电,就用LED灯来模拟即可,由于我那个流水灯模块是低电平点亮,所以接线稍有不同,同学们注意。只有继电器吸合,输出端的NO与COM就导通,给LED低电平然后就亮,否则继电器断开,NO与COM不导通,LED不亮。原理都一样,控制电流的接通与断开,这个模块看起来还简单点,毕竟还有2个指示灯,下端IN如接上电源红灯亮,继电器动作有电流通过绿灯亮。在实际应用中,可以通过编程控制继电器的通断状态,例如在Python编程中设置继电器模块的通断时间,从而实现自动化控制。

u010152658的博客 2531

100天精通Python(可视化篇)——第80天:matplotlib绘制不同种类炫酷柱状图代码实战(簇状、堆积、横向、百分比、3D柱状图)

0. 专栏导读 1. 普通柱状图 2. 簇状柱形图 3. 堆积柱形图 4. 横向柱状图 5. 横向双向柱状图 6. 百分比堆积柱形图 7. 3D柱形图 8. 3D堆积柱形图 9. 3D百分比堆积柱形图

努力让自己发光,对的人才能迎着光而来 2万+

Day03-分支结构

本文转自GitHub文章:Python - 100天从新手到大师 https://github.com/jackfrued/Python-100-Days Day03-分支结构 分支结构的应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在...

冰度猎魂的博客 175

ASPICE(Automotive SPICE)流程落地,研发管理工具自研,如何从量化数据体现研发效率提升的

摘要: ASPICE流程显著提升研发效率,主要体现在质量、成本和时间三个维度。关键量化指标包括:缺陷率降低30%-60%,维护工作量减少28%,研发周期缩短10%-20%,需求变更率降低58%,代码评审效率提升300%。初期开发成本虽增加9%,但长期回报率高。核心方法包括缺陷预防前移、需求精准管理和流程标准化与自动化。建立量化度量体系需覆盖缺陷密度、需求稳定性、进度偏差等指标,并依托工具链支持数据收集。实施ASPICE是短期投入换取长期质量提升和成本优化的高效投资。

汽车软件开发 183

Day03 -分支结构

Day03 - 分支结构 分支结构的应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后我们要根据玩家得到分数来决定究竟是进入第二关还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行,这就...

Laic Zhang的博客 1464

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Day03 - 分支结构

分支结构的应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后我们要根据玩家得到分数来决定究竟是进入第二关还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行,这就是程序中分支结构。类似的...

qq_41705041的博客 268

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python—Day03.分支结构,嵌套

​ Github: GitHub -https://github.com/jackfrued/Python-100-Days (骆昊) Gitclone: https://gitee.com/viitii/Python-100-Days 10.13 Day03.分支结构 1.双分支结构 if …else… username = input('请输入用户名: ') password = input('请输入口令: ') # 用户名是admin且密码是123456则身份验证成功否则身份验证失败 if usern

qq_46256912的博客 2631

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Day03_分支结构及嵌套

一. 基本if选择结构 语法: ​ if(布尔表达式) { ​ // 代码块 ​ } 执行流程: 对布尔表达式进行判断 结果为true,则先执行代码块,再执行后续代码。 结果为false,则跳过代码块,直接执行后续代码。 int score = 100; if (score > 90) { System.out.println("Win!"); } 二. if-else选择结构 语法: ​ if(布尔表达式) { ​ // 代码块1 ​ } else { ​ // 代码块2 ​ } 执行

不愿透露姓名的马建国的博客 869

Day03-流程控制_分支结构

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是一旦匹配成功,不会在判断下一个case的值,直接向后运行,直到遇到break或者整个switch语句结束,switch语句执行终止。如果根据进入分支的条件是几个固定的常量值,这时使用if和switch都可以,如果条件选项比较多时,适合使用switch语句(效率高)。以上程序是个求和的程序,我想在运行程序的时候,根据实际的输入的两个数,进行求和,就跟计算器一样,任意给两个数,计算得出结果,如何做?闰年2月份29天,平年28天。

小丁的博客 956

java day03 选择结构和分支结构

if else switch

qq_43642864的博客 425

Day03-分支结构和循环

Python循环

Kenny990531的博客 931

Day 03 运算符、分支结构

Day 03 ScorpioDong 1. 复习 1.1 第一行代码 a. 代码格式 b. 保存位置 c. 编译执行过程 javac 编译Java代码,生成字节码文件(.class) java 执行Java程序 1.2 变量 1. 特定的数据类型,定义后无法修改 2. 每一个变量都有一个相对独立的名字 3. 保存特定数据类型的值 定义格式 数据类型 变量名; 变量名...

m0_37771142的博客 393

day03 运算符和分支结构

逻辑运算符、赋值运算符和分支结构

qq_59492084的博客 837

day 03 运算符 分支结构

一、运算符 1.算术运算符 + - / * 加减乘除 ++ -- 自增 自减 运算 符号在前 先变化后使用 , 符号在后,先使用,后变化。 % 取余 2.逻辑运算符 & && 与 双与 增加短路功能 全真才真 有假则假 | || 或 双或 增加短路功能 全假才假 有真则真 3.比较运算符 < > <= >= == != 判断等等和不等 4.三目运算符 ...

m0_60585248的博客 407
上一篇: Day02.语言元素
下一篇: Day04.循环结构
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值