课时42:if-else语句

简介: 本文在回顾`Input`函数与简单`if`语句使用的基础上,指出简单`if`语句只能决定执行或不执行的缺陷,进而引入`if-else`语句。详细介绍了`if-else`语句的语法、执行流程,并通过年龄判断和用户名判断的实例进行演示,最后布置了修改之前练习的任务,帮助读者加深对`if-else`语句的理解和运用。1. 回顾练习与`if`语句缺陷2. `if-else`语句的引入3. `if-else`语句实例演示4. .练习布置

课时42:if-else语句

摘要本文在回`Input`函数与简单`if`语句使用的基础上,指出简单`if`语句只能决定执行或不执行的缺陷,进而引入`if-else`语句。详细介绍了`if-else`语句的语法、执行流程,并通过年龄判断和用户名判断的实例进行演示,最后布置了修改之前练习的任务,帮助读者加深对`if-else`语句的理解和运用。

1. 回顾练习与`if`语句缺陷

2. `if-else`语句的引入

3. `if-else`语句实例演示

4. .练习布置

 

01、 回顾练习与`if`语句缺陷


我们接着之前讲的`Input`函数和条件判断中的`if`语句继续学习。先做一个小练习,让用户在控制台输入年龄。代码实现很简单,使用`age=Input("请输入你的年龄:")`就可以让用户输入年龄。然后我们希望当用户年龄大于18岁时,显示“你已经成年了”,代码写成`ifage>18:print("你已经成年了")`。但是当我们运行程序,输入20时,却报错了,错误提示是“类型错误,大于等于不支持字符串和整数之间进行比较”。这是因为`Input`函数返回的结果是字符串类型,而我们直接拿这个字符串和整数18进行比较,这是不允许的。所以如果要和数字进行比较,一定要进行类型转换,可以使用`age=int(age)`或者直接在`Input`函数外面套上`int`,即`age=int(Input("请输入你的年龄:"))`。

image.png

 

不过,无论是之前欢迎管理员的练习,还是这个年龄判断的练习,都存在一个明显的缺陷。以年龄判断为例,当输入18时,程序会显示“你已经成年了”,但当输入17时,程序没有任何反应。这就是简单`if`语句的局限性,它只有执行或不执行两种选择,而在很多情况下,我们希望有更多的选择,即满足条件执行一个操作,不满足条件执行另一个操作。


02、 `if-else`语句的引入


为了解决简单`if`语句的这个缺陷,我们接下来要学习的是`if-else`语句,它是条件判断语句的一个升级版本。

首先来看`if-else`语句的语法。它以`if`开头,后面跟着条件表达式,然后是冒号,紧接着是代码块,这部分和简单`if`语句是一样的。不同的是,在后面可以再写一个`else`,注意`else`要和`if`对齐,如果缩进了就会被`if`包含。`else`后面不用跟条件表达式,直接接冒号,回车后写另一个代码块。

image.png

`if-else`语句的执行流程是:任何语句执行之前都会先对条件表达式进行求值判断,`if-else`语句也不例外。它先对`if`后面的条件表达式进行求值判断,如果结果为`True`,则执行`if`后面的代码块;如果结果为`False`,则执行`else`后面的代码块。也就是说,它比简单`if`语句多了一个选择。

 

03、 `if-else`语句实例演示

3.1 年龄判断示例

我们用`if-else`语句来改写之前的年龄判断代码。假设`age=18`,代码可以写成:

age=18
if age>17:
print("你已经成年了")
else:
print("你还未成年")
```

image.png

运行这段代码,如果`age`是18或者更大的数,会输出“你已经成年了”;如果`age`小于18,会输出“你还未成年”。这里要注意代码中的符号必须是英文符号,如果写成中文符号可能会报错,比如出现“`else`无效字符”的错误。

 

04、 用户名判断示例

之前的练习是当用户名是“admin”时,显示“欢迎管理员光临”,现在我们使用`if-else`语句增加一个选择,如果用户名不是“admin”,就显示“欢迎普通用户光临”。代码可以这样写:

user_name=Input("请输入你的用户名:")
ifuser_name=="admin":
print("欢迎管理员光临")
else:
print("欢迎普通用户光临")

大家把之前做的练习修改一下,运用`if-else`语句实现上述用户名判断的功能,通过实践加深对`if-else`语句的理解和运用,自己动手操作一下。

 

相关文章
|
Web App开发 数据采集 前端开发
基于Python的Selenium详解:从入门到实践
基于Python的Selenium详解:从入门到实践
784 0
|
消息中间件 存储 运维
Rabbitmq消息大量堆积怎么办?
该文讨论了一个系统架构问题,主要涉及RabbitMQ在处理订单消息时遇到的性能瓶颈。首先,系统使用RabbitMQ是为了解耦和提高性能,前端创建订单后通过RabbitMQ发送消息给订单履约系统消费并执行后续操作。当订单流量激增时,消息堆积导致服务器压力增加。 排查解决方案: 1. 增加消费者以提高消费速度,但发现即使增加消费者,消息堆积问题仍未解决。 2. 分析消费者逻辑,发现调用库存系统接口可能导致处理速度慢。库存系统压力大,接口响应慢,加剧问题。 3. 实施清空堆积消息的策略,新建消费者快速消费消息并存储在表中,减轻服务器压力。待库存服务恢复后,再将消息推回RabbitMQ处理。
1006 1
|
Unix Linux 程序员
Py之curses:curses库的简介、使用、安装方法详细攻略
Py之curses:curses库的简介、使用、安装方法详细攻略
Py之curses:curses库的简介、使用、安装方法详细攻略
|
5月前
|
数据可视化 算法 量子技术
量子开发者实战:用量子算法可视化工具撕裂量子黑箱
量子研究面临线路复杂、态演化抽象、纠错黑箱三大难题,造成资源浪费与理解偏差。解决方案需具备量子线路降维、态演化全息投影与纠错可视化能力。板栗看板、Qiskit Bloch Sphere、Quantastica等工具助力科研与教学,提升理解效率与算法调试速度,推动量子技术从黑箱走向直观可视。
量子开发者实战:用量子算法可视化工具撕裂量子黑箱
|
9月前
|
存储 安全 测试技术
云计算应该掌握的八种用途
云计算通过互联网提供按需付费的云服务,广泛应用于软件开发、社交网络、大数据分析、数据备份、文件存储、灾难恢复、云端通信和业务流程管理等领域。它帮助企业降低硬件成本、提高开发效率、保障数据安全、增强业务连续性,并支持多样化应用场景,成为数字化转型的核心引擎。
1936 2
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能植物生长监测与优化
使用Python实现深度学习模型:智能植物生长监测与优化
943 0
|
持续交付 jenkins Devops
云效流水线 Flow测评
从入门到实践,多方位带你领略云效Flow的优与劣
1123 8
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
1309 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
C语言
使用C语言实现简单的字符串反转函数
在编程中,字符串操作是非常常见的任务之一。而字符串反转是其中一个经典的问题。本文将介绍如何使用C语言来实现一个简单的字符串反转函数。
1153 0
|
Linux 网络安全 开发工具
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
本文介绍了如何基于Linux Kernel 5.15.102版本和BusyBox创建一个自定义的迷你Linux ARM系统,并使用QEMU进行启动和调试,包括内核和BusyBox的编译配置、根文件系统的制作以及运行QEMU时的命令和参数设置。
1321 0
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu