【Python从入门到进阶】9、流程控制语句-条件语句(if-else)

news2024/11/24 6:03:57

接上篇《8、Python的输入输出》
上一篇我们学习了Python的输入和输出相关内容。本篇我们来学习Python的控制流语句。

一、流程控制语句的含义

之前我们分别学习过“变量及数据类型”、“运算符”,其中“变量及数据类型”相当于我们学习自然语言中的“字”,而“运算符”类似于相应的自然语言中的“词”,本篇我们要学习的“流程控制语句”,就是一个完整的“句子”甚至是一篇完整的“作文”。

官方释义:通过流程控制语句可以改变程序的执行顺序,也可以让指定的程序反复执行多次。流程控制语句在Python中包括三个部分。顺序执行语句、条件语句(if/else)和循环语句(for/while),如下图所示:

下面我们来一一学习它们。

二、if判断语句

if语句用于控制程序的执行,判断条件是否成立,根据条件的判断结果,选择相应执行的分支。

(1)基本if/else语句

基本形式为if/else:

if 判断条件:  
    执行的代码块1  
else:  
    执行的代码块2  

执行的流程是:当表达式的布尔值为真时,执行代码块1,为假时执行代码块2。
注意,冒号的下一行的缩进(四个空格)必须存在,用来标识执行代码的归属,两个代码块只能有一个被执行,这取决于哪个分支的条件成立。
如果没有else,或不用处理else的判断结果,则只需要判断if即可,语法为:

if 判断条件:
    执行的代码块1

示例:

# if中的条件成立,就执行冒号下的语句,否则执行else下的
age = 18
if age >= 18:
    # if和else下面的代码,必须是一个Tab键,或者4个空格
    print("我已经成年了")
else:
    print("我还未成年")

运行结果:

示例:

# if中的条件成立,就执行冒号下的语句,否则执行else下的
age = 16
if age >= 18:
    # if和else下面的代码,必须是一个Tab键,或者4个空格
    print("我已经成年了")
else:
    print("我还未成年")

运行结果:

(2)if嵌套语句

有时候,一个条件成立无法满足需求,需要用多重判断,那么就要用到if嵌套语句,基本形式如下:

if 判断条件1:  
    # 代码块1,其内部的if语句无论多复杂,都属于代码块1
    if 分支条件1:  # 分支条件
        执行的分支代码块1.1  # 如果该分支条件成立,执行的代码块
    else:  
        执行的分支代码块1.2  # 分支条件不成立执行的代码块
else:  
    # 代码块2,当代码块1条件不成立时执行的代码块
    执行的代码块2  

示例:

if 有疫情:
    if 疫情严重:
        戴N95口罩
    else:  
        戴普通医学口罩
else:
    不戴口罩

执行过程:上述逻辑就是根据是否有疫情判断,如果没有疫情,则执行第6行的else。而如果有疫情这个条件成立,程序就进入代码块1中,此时,程序会再次判断根据子条件作出判断,疫情是否严重,如果严重,则戴N95口罩,否则戴普通医学口罩。执行过程如下图所示:

注意:if语句的嵌套不易过多,这样会降低代码的可读性。

(3)elif语句

elif语句主要用于在else的情况下,判断另一种情况。
这里我们举一个例子,例如下面这个成绩情况判断的逻辑:

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

if score>=90:
    print("优秀")
if score>=80:
    print("良好")
if score>=70:
    print("中等")
if score>=60:
    print("及格")
if score<60:
    print("不及格")

我们执行后,输入90分,想得到的是“优秀”,但是结果却是:

这是因为单条if条件只要判断成立,就会执行后面的代码块,不受前面的if语句结果影响,你可以理解为每个if语句是独立的一行,你只是重复写了不同条件的if来进行分别判断而已。

这时我们要通过elif语句来将判断分隔并延续判断,即不满足if条件后进入else且立刻进入下一个新的if判断,如果已经满足if条件,则不会再进入elif的代码块,这样就避免上面的重复判断,优化后代码:

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

if score>=90:
    print("优秀")
elif score>=80:
    print("良好")
elif score>=70:
    print("中等")
elif score>=60:
    print("及格")
elif score<60:
    print("不及格")

效果:

至此,有关Python的流程控制语句的条件语句(if/else)的内容就讲解完毕了,下一篇我们继续来学习流程控制语句中的循环语句(for/while)。

参考:尚硅谷Python爬虫教程小白零基础速通教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/129229563

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

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

相关文章

【数据库系统概论】基础知识总结

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…

Linux基础命令和工具使用详解

Linux基础命令和工具使用详解一、grep搜索字符二、find查找文件三、ls 显示文件四、wc命令计算字数五、uptime机器启动时间负载六、ulimit用户资源七、curl http八、scp远程拷贝九、dos2unix和unix2dos十、sed 行处理10.1、简单模式10.2、替换模式十一、awk 列处理11.1、打印某…

【C++从入门到放弃】类和对象(上)

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《C从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; 类和对…

JavaScript 高级1 :面向对象

JavaScript 高级1 &#xff1a;面向对象 Date: January 16, 2023 Text: 面向对象、ES6中类和对象、类的继承、面向对象案例 目标&#xff1a; 能够说出什么是面向对象 能够说出类和对象的关系 能够使用 class 创建自定义类型 能够说出什么是继承 面向对象编程介绍 面向过…

JDK安装指导

Oracle官网地址https://www.oracle.com/java版本查询这里仅标识了java19和java17java archived 查看更多随便进入一个&#xff0c;根据后缀提示下载对应包即可Linux安装&#xff08;示例 java 1.8版本&#xff09;https://www.oracle.com/java/technologies/javase/javase8u211…

基于MaixBit(K210芯片)的图像识别猜拳手势博弈装置

本文介绍了一种基于嵌入式平台开发的图像识别部署装置&#xff0c;其主要功能包括实现机器与人的“猜拳博弈”&#xff0c;其组成分为三个部分&#xff1a;手势检测数据集图像识别模型训练模型格式部署maixbit开发板部署手势检测数据集&#xff1a;本项目的数据集包括三种标签&…

2023自动化测试岗位需求的 7 项必备技能 (最新版)

目录&#xff1a;导读 一、自动化测试员技能——编程语言 二、自动化测试员技能–出色的手动测试技能 三、.自动化测试员技能–自动化工具专业知识 四、自动化测试员技能–了解业务需求 五、自动化测试员技能–自动化工具故障排除 六、自动化测试员技能–具有测试管理工具…

Android 网络框架——Retrofit源码精析

众所周知&#xff0c;Retrofit是OkHttp的封装&#xff0c;APP对网络交互部分的实现基本上都是RxJavaRetrofitOkHttp架构&#xff08;或协程RetrofitOkHttp&#xff09;&#xff0c;可以说&#xff0c;Retrofit已经广为人知。本文主要介绍Retrofit主线源码实现机制&#xff0c;及…

二叉树的前序遍历-java两种方式-力扣144

一、题目描述给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。示例 1&#xff1a;输入&#xff1a;root [1,null,2,3]输出&#xff1a;[1,2,3]示例 2&#xff1a;输入&#xff1a;root []输出&#xff1a;[]示例 3&#xff1a;输入&#xff1a;root [1]输出…

MySQL进阶(二)

目录 1、视图 1、检查选项 2、视图的更新 3、视图作用 2、存储过程 1、语法 2、变量 1、系统变量 2、用户定义变量 3、局部变量 3、if 4、参数 5、case 6、循环 1、while 2、repeat 3、loop 7、游标、条件处理程序 8、存储函数 3、触发器 4、锁 1、全局锁 2、表级锁 …

AIR系列|板载LED|gpio引脚选择|GPIO|流水灯|LuatOS-SOC接口|官方demo|学习(20-1):GPIO库基础

AIR系列各型号开发板板载LED对应管脚及GPIO控制代码 AIR103&#xff1a; rtos_bsp "AIR103" then -- Air103开发板LED引脚编号--return pin.PB26, pin.PB25, pin.PB24return 42,41,40 AIR105&#xff1a; rtos_bsp "AIR105" then -- Air105开发板LED引…

DFT基本入门介绍

1.什么是DFT&#xff1f;2.为什么要做DFT&#xff1f;3.“测试”与“验证”的区别4.DFT的核心技术1&#xff09;扫描路径设计&#xff08;Scan Design&#xff09;2)内建自测试&#xff08;Bist&#xff09;3)JTAG4)ATPG5.DFT工程师的岗位职责随着芯片的制程越来小(5nm), 芯片的…

xxjob分布式任务调度

前言 在工作中使用到了定时任务,通过查找资料选择了xxjob,以下是xxjob的介绍以及基本的使用. xxjob介绍 XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 将调度行为抽象形成“调度中心”公共平台&#xff0c;而平台自身…

vue3+rust个人博客建站日记3-编写主页

内容 绘制了主页的基本布局设置了封装了header栏组件并设置了全局黑夜模式. 选择一个组件库-Naive UI 如果没有设计能力&#xff0c;又想开发出风格统一的前端页面。就一定要选择一个漂亮的组件库。 本次项目选择使用Naive UI&#xff0c;NaivUI库曾被Vue框架作者尤雨溪推荐…

【云原生】k8s核心技术—集群安全机制 Ingress Helm 持久化存储-20230222

文章目录一、k8s集群安全机制1. 概述2. RBAC——基于角色的访问控制二、Ingress三、Helm1. 引入2. 使用功能Helm可以解决哪些问题3. 介绍4. 3个重要概念5. helm 版本变化6. helm安装及配置仓库7. 使用helm快速部署应用8. 自己创建chart9. 实现yaml高效复用四、持久化存储1.nfs—…

ArXiv简介以及论文提交

arXiv网站简介 arXiv是一个收集物理学、数学、计算机科学、生物学与数理经济学的论文预印本的网站。其中arXiv发音同“archive”&#xff0c;因为“X”代表希腊字母 &#xff0c;国际音标为[kai]。它于1991年8月14日成立&#xff0c;现由美国康奈尔大学维护。 ——维基百科 对…

在Angular项目中引入NG-ZORRO

在Angular项目中引入NG-ZORRO1.前置2.安装NG-ZORRO并进行初始化配置3.引入样式4.引入组件1.前置 首先创建一个angular项目&#xff1a;angular创建一个新项目的步骤 这是我项目的结构&#xff1a; 2.安装NG-ZORRO并进行初始化配置 安装NG-ZORRO&#xff1a;cd 到当前项目位…

微信小程序、小游戏的流量主一般可以赚多少钱?

本篇文章主要科普小程序、小游戏流量主一般赚钱的实际情况&#xff0c;通过在下长期运营的经验汇总而成。 日期&#xff1a;2023年2月26日 作者&#xff1a;任聪聪 小程序、小程序满1000用户后即可开通流量主&#xff0c;但实际上很多人并没有传说中的那种日赚几千的流量收入的…

学习笔记之Vuex(五)

Vuex&#xff08;五&#xff09;Vuex一、什么是Vuex二、Vuex工作原理三、搭建Vuex环境四、求和案例分析4.1 求和案例——vue实现4.2 求和案例——vuex实现&#xff08;五&#xff09;Vuex 一、什么是Vuex 1.概念 在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一…

第二节类型转换、运算符

类型转换 自动类型转换&#xff1a; 类型小的变量可以赋值给大的类型变量。 表达式的自动类型转换&#xff1a; byte short char在表达式中是当做 int计算的。 强制类型转换&#xff1a; 大类型的变量转化为小类型的变量。 注&#xff1a;浮点型转换为整数是直接丢掉小数部…