课时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详解:从入门到实践
719 0
|
消息中间件 存储 运维
Rabbitmq消息大量堆积怎么办?
该文讨论了一个系统架构问题,主要涉及RabbitMQ在处理订单消息时遇到的性能瓶颈。首先,系统使用RabbitMQ是为了解耦和提高性能,前端创建订单后通过RabbitMQ发送消息给订单履约系统消费并执行后续操作。当订单流量激增时,消息堆积导致服务器压力增加。 排查解决方案: 1. 增加消费者以提高消费速度,但发现即使增加消费者,消息堆积问题仍未解决。 2. 分析消费者逻辑,发现调用库存系统接口可能导致处理速度慢。库存系统压力大,接口响应慢,加剧问题。 3. 实施清空堆积消息的策略,新建消费者快速消费消息并存储在表中,减轻服务器压力。待库存服务恢复后,再将消息推回RabbitMQ处理。
846 1
|
Ubuntu Linux
在Linux中如何解压 .xz 和 tar.xz 文件?
【4月更文挑战第17天】
10080 6
在Linux中如何解压 .xz 和 tar.xz 文件?
|
Unix Linux 程序员
Py之curses:curses库的简介、使用、安装方法详细攻略
Py之curses:curses库的简介、使用、安装方法详细攻略
Py之curses:curses库的简介、使用、安装方法详细攻略
|
编译器 Linux 调度
makfile的编译选项:CFLAGS、CPPFLAGS、LDFLAGS、LIBS
makfile的编译选项:CFLAGS、CPPFLAGS、LDFLAGS、LIBS
2841 0
|
11月前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能植物生长监测与优化
使用Python实现深度学习模型:智能植物生长监测与优化
868 0
|
持续交付 jenkins Devops
云效流水线 Flow测评
从入门到实践,多方位带你领略云效Flow的优与劣
1014 8
|
C语言
使用C语言实现简单的字符串反转函数
在编程中,字符串操作是非常常见的任务之一。而字符串反转是其中一个经典的问题。本文将介绍如何使用C语言来实现一个简单的字符串反转函数。
1016 0
|
Linux 网络安全 开发工具
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
本文介绍了如何基于Linux Kernel 5.15.102版本和BusyBox创建一个自定义的迷你Linux ARM系统,并使用QEMU进行启动和调试,包括内核和BusyBox的编译配置、根文件系统的制作以及运行QEMU时的命令和参数设置。
1160 0
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
|
SQL 存储 分布式计算
MaxCompute 入门:大数据处理的第一步
【8月更文第31天】在当今数字化转型的时代,企业和组织每天都在产生大量的数据。有效地管理和分析这些数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个用于处理海量数据的大规模分布式计算服务。它提供了强大的存储能力以及丰富的数据处理功能,让开发者能够快速构建数据仓库、实时报表系统、数据挖掘等应用。本文将介绍 MaxCompute 的基本概念、架构,并演示如何开始使用这一大数据处理平台。
1722 0