Python 分支结构之if语句

在之前编写的Python中我们都是一条一条的编写的语句,没有任何条件或判断,程序会按照代码编写顺序依次执行,这种编写结构叫顺序结构,是编程中最基本的控制结构。除了顺序机构,还有一个比较基本的控制结构,那就是分支结构(选择结构),这个结构是根据条件的真假来选择不同的执行路径。

分支结构可以使用if语句来实现。if语句的语法是:

if condition:# 执行条件为真时的代码块
else:# 执行条件为假时的代码块

其中condition是一个表达式,它的值可以是TrueFalse。如果conditionTrue,则执行if代码块中的语句;如果conditionFalse,则执行else代码块中的语句。

如:

username = input('用户名:')
password = input('密码:')if username == 'admin' and password == 'admin':print('登陆成功!')print('欢迎使用xxx系统!')else:print('登陆失败!')print('用户名或密码错误!')print('程序结束,再见!')

该例使用了两个赋值表达式和与运算,只有同时满足上面两个表达式的条件,才会执行if里的代码块,否则执行else后面的代码块。

代码块:代码块是一组在程序中按照特定规则组织在一起的代码语句。代码块通常由花括号({})括起来,或者通过缩进来表示。

在大多数编程语言中,代码块用于将一组相关的语句作为一个整体来执行。代码块可以包含单个语句,也可以包含多个语句。代码块的主要目的是定义一个作用域,其中的变量和语句可以相互访问和影响。
需要说明的是,Python中没有用花括号来构造代码块,而是使用了缩进的方式来表示代码的层次结构,如果if条件成立的情况下需要执行多条语句,只需保持多条语句具有相同的缩进就可以了。缩进可以使用任意数量的空格,但通常使用4个空格,强烈建议大家不要使用制表键来缩进代码,如果你已经习惯了这么做,可以设置代码编辑工具将一个制表键自动变成4个空格,很多的代码编辑工具都支持这项功能。

除了基本的if-else结构,还可以使用if-elif-else结构来处理多个条件。elifelse if的缩写,用于检查多个条件。

如下面是一个利用分支结构实现分段函数求值的案例。
f ( x ) = { 2 x − 6 , x > 1 x + 3 , − 1 ≤ x ≤ 1 6 x + 2 , x < − 1 f(x) = \begin{cases} 2x-6, &x \gt 1 \\ x + 3, & -1 \le x \le 1 \\ 6x + 2, & x \lt -1 \end{cases} f(x)= 2x6,x+3,6x+2,x>11x1x<1

x = float(input('x = '))
if x > 1:y = 2 * x - 6
elif x < -1:y = x + 3
else:y = 6 * x + 2
print(f'f({x}) = {y}')

上面案例先通过input输入一个数值x,然后判断x的值满足上面3个条件中哪一个,则执行相应的代码块,最终打印输出结果。

分支结构是可以嵌套的,如:

x = 10
y = 5if x > y:print("x 大于 y")if x > 0:print("x 是正数")else:print("x 是负数")
else:print("x 小于等于 y")

在这个示例中,使用了一个if语句检查x是否大于y,如果条件为真,那么会执行if代码块中的语句。其中又在该if代码块中,又嵌套了一个if-else语句来检查x是否大于0。

在实际编程中,我们可以根据具体需求嵌套多层分支结构,以实现更灵活和复杂的程序行为。

但是在Python中,它更希望我们遵循以下原则:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.

即:

漂亮的比丑陋的好
清晰的比晦涩的好
简单的比复杂的好
复杂的比错综复杂的好,正所谓简单即美,大道至简。
扁平的比嵌套的好
稀疏的比密集的好
可读性非常重要
特殊情况也不能狗特殊到破坏上述规则

所以分支结构可以嵌套使用,但是一定要注意嵌套的深度,嵌套太深会直接影响代码的可读性。

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

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

相关文章

Linux的SSH服务

一.SSH服务简介 1.什么是SSH SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理&#xff0c;其中包括用户登录时输入的用户口令&#xff0c;SSH 为建立在应…

【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(文件处理指令-上)

文件处理指令-上 背景前言专栏介绍面向对象重点内容文件处理命令file格式[options] 主要参数简单说明使用案例 mkdir格式[options] 主要参数应用实例 grep格式主要参数[optionsl 主要参数 应用实例pattern正则表达式主要参数 应用实例fgrep和egrep dd格式[options]主要参数 应用…

linux 网络设置

查看linux基础的网络配置 命令 网关route -nip 地址ifconfig / ip aDNS 服务器cat /etc/resolv.conf主机名hostname路由route -n网络连接状态ss / netstat 一&#xff0c;ifconfig 查看网络接口信息 &#xff08;一&#xff09;ifconfig …

设计模式—— 单例设计模式

单例设计模式 什么是单例模式 单例模式是一种对象创建型模式&#xff0c;使用单例模式&#xff0c;可以保证为一个类只生成唯一的实例对象。也就是说&#xff0c;在整个程序空间中&#xff0c;该类只存在一个实例对象。 为什么使用单例模式 在应用系统开发中&#xff0c;我…

聊聊PowerJob的UseCacheLock

序 本文主要研究一下PowerJob的UseCacheLock UseCacheLock tech/powerjob/server/core/lock/UseCacheLock.java Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface UseCacheLock {String type();String key();int concurrencyLevel(); }Use…

【MIdjourney】镜头效果关键词

1.景深(depth of field) 景深&#xff08;DOF&#xff09;&#xff0c;是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。镜头光圈、镜头距离、及焦平面到拍摄物的距离是影响景深的重要因素。 在MIdjourney中&#xff0c;该关键字会使得…

数字化时代,CDMP/CDGA认证企业个人都需要

&#x1f3af;数字化时代&#xff0c;CDMP(数据管理专业人士)和CDGA(数据治理工程师)认证对于企业和个人来说都是非常重要的。 &#x1f4d2;对于企业而言&#xff1a; ✅为企业赋能 数字化培训是企业在数字化转型中的重要考核标准之一。国资委、工信部、银保监会等都有明确的要…

【STM32读取HX711的函数】

[两个普通IO读取HX711数据的函数-主芯片是STM32F407] 以下是.h文件中的内容&#xff1a; #ifndef __hx711_h #define __hx711_h #define HX711CH1_DIO_GROUP GPIOA #define HX711CH1_CLK_GROUP GPIOA #define HX711CH1_DIO_PIN GPIO_Pin_1 #define HX711CH1_CLK_PIN GPIO_Pin…

深入浅出 Golang 中的参数传递机制

目录 什么是值传递 (Pass by Value) 引用传递 (Pass by Reference) Golang 中的参数传递方式 基本类型的值传递 切片的“引用”传递 使用指针实现引用传递 结构体的值传递 结构体指针的传递 小结 值传递&#xff08;Pass by Value&#xff09;和引用传递&#xff08;P…

Python之jieba分词相关介绍

1.jieba分词的安装 直接在cmd窗口当中pip install即可 2.jieba分词的介绍 jieba分词是目前比较好的中文分词组件之一&#xff0c;jieba分词支持三种模式的分词(精确模式、全模式、搜索引擎模式)&#xff0c;并且支持自定义词典(这一点在特定的领域很重要&#xff0c;有时候…

C++(20):list通过erase, erase_if删除元素

C++20前,使用成员函数erase删除元素,与vector的方法一致: iterator erase( iterator pos ); iterator erase( iterator first, iterator last ); 1.通过迭代器删除指定位置元素 需要说明的是,删除元素后,迭代器会失效,可以通过erase返回下一个有效的迭代器 #include &…

SpringBoot使用MockMVC单元测试Controller

对模块进行集成测试时&#xff0c;希望能够通过输入URL对Controller进行测试&#xff0c;如果通过启动服务器&#xff0c;建立http client进行测试&#xff0c;这样会使得测试变得很麻烦&#xff0c;比如启动速度慢&#xff0c;测试验证不方便&#xff0c;依赖网络环境等&#…

GitHub项目推荐-incubator

项目地址 Github地址&#xff1a;GitHub - apache/incubator-anser 官网&#xff1a;Apache Answer | Free Open-source Q&A Platform 项目简述 这是Apache的一个开源在线论坛&#xff0c;也可以部署成为一个自有的QA知识库。项目主要使用了Go和Typescript来开发&#…

【MATLAB源码-第109期】基于matlab的哈里斯鹰优化算发(HHO)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 哈里斯鹰优化算法&#xff08;Harris Hawk Optimization, HHO&#xff09;是一种受自然界捕食行为启发的优化算法。它基于哈里斯鹰的捕猎策略和行为模式&#xff0c;主要用于解决各种复杂的优化问题。这个算法的核心特征在于…

层叠布局(Stack)

目录 1、概述 2、开发布局 3、对齐方式 3.1、TopStart 3.2、Top 3.3、TopEnd 3.4、Start 3.5、Center 3.6、End 3.7、BottomStart 3.8、Bottom 3.9、BottomEnd 4、Z序控制 5、场景示例 1、概述 层叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一…

31 树的存储结构二

DIsplay() 递归显示 :图示 求树的高度时&#xff0c;递归的技巧 在递归的过程中&#xff1a;ret单独和任意一个子树的子高度比较&#xff0c;如果ret<max&#xff0c;retmax ------------- 注意&#xff1a;组织链表和子链表的【元素类型】都是TLNode* 链表都要先通过TLNod…

JavaScript 动态生成内容的过程

网页使用 JavaScript 动态生成内容的过程涉及到 JavaScript 脚本与网页的 HTML 和 CSS 的交互。基本过程如下&#xff1a; 浏览器加载 HTML&#xff1a;首先&#xff0c;浏览器加载网页的 HTML 内容&#xff0c;这构成了页面的基本结构。 执行 JavaScript&#xff1a;随后&…

Validation--自定义校验

前言&#xff1a; 今天学到这个&#xff0c;闲着也是闲着&#xff0c;就写一个记录一下&#xff0c;也算是总结 我们的步骤是这样的 1.自定义注解State 2.自定义校验数据的类StateValidation实现ConstrainValidator接口 3.在需要校验的地方使用自定义注解 1.自定义注解 这…

C语言如何提高程序的可读性?

一、问题 可读性是评价程序质量的一个重要标准&#xff0c;直接影响到程序的修改和后期维护&#xff0c;那么如何提高程序的可读性呢? 二、解答 提高程序可读性可以从以下几方面来进行。 &#xff08;1&#xff09;C程序整体由函数构成的。 程序中&#xff0c;main()就是其中…

【C++学习笔记】C++多值返回写法

C不像python可以轻易地处理多值返回问题&#xff0c;处理使用指针或者引用将需要返回的值通过参数带出来&#xff0c;还有几种特殊的方式。 引用自&#xff1a;https://mp.weixin.qq.com/s/VEvUxpcJPsxT9kL7-zLTxg 1. Tuple tie 通过使用std::tie&#xff0c;我们可以将tuple…