课时40:if语句_2

简介: 本文围绕Python的if语句展开,介绍了if语句中代码块的概念及缩进规则,通过实例说明了如何使用逻辑运算符连接多个条件进行判断,还阐述了Python中缩进的两种方式(tab键和空格)及官方推荐使用空格的原因和设置方法,最后布置了一个利用if语句判断用户输入用户名的练习,并提示使用`input`函数获取用户输入。1.if语句代码块与缩进2.多条件判断与逻辑运算符的使用3.Python缩进方式及设置4.练习布置与`input`函数提示

课时40:if语句_2

摘要:本文围绕Python的if语句展开,介绍了if语句中代码块的概念及缩进规则,通过实例说明了如何使用逻辑运算符连接多个条件进行判断,还阐述了Python中缩进的两种方式(tab键和空格)及官方推荐使用空格的原因和设置方法,最后布置了一个利用if语句判断用户输入用户名的练习,并提示使用`input`函数获取用户输入。

1.if语句代码块与缩进

2.多条件判断与逻辑运算符的使用

3.Python缩进方式及设置

4.练习布置与`input`函数提示

 

01、 if语句代码块与缩进


刚刚我们介绍了最简单的if语句。if语句本身不难,主要要注意代码块。在Python中,缩进就表示代码块。当出现第一个缩进时,代码块就开始了;当缩进恢复到上一个缩进级别时,代码块就结束了。比如这里的`print`语句,如果它和`if`处于同一缩进级别,那它就不属于`if`语句的代码块。代码块里的代码,要么都执行,要么都不执行。

image.png

 

02、 多条件判断与逻辑运算符的使用


接下来继续演示。我先把条件改成`False`,这样代码块就不会执行了。我们还是以`Number`为例,现在`Number=10`。我写一个`ifNumber>10`,然后`print('Number比10大')`,保存并运行,发现没有执行。这是因为`Number`等于10,并不比10大。当我把`Number`改成20时,再运行,就会输出`Number比十大`。

image.png

我再改一下条件,不仅要求`Number`比10大,还要求`Number`比20小。我把`Number`改成18,运行后,`Number比十大,Number比20小`就输出了。但这里有个问题,如果我把`Number`改成28,按常理它不在10和20之间,可这句话依然会输出。这是因为我们在条件里只判断了`Number`是否大于10,没有判断是否小于20,只要`Number`比10大,就会输出。

image.png

现在有两个条件,一个是`Number`要比10大,另一个是`Number`要比20小,这两个条件需要同时满足。那该怎么写?很简单,我们要用逻辑运算符`and`来连接这两个条件,即`Number>10 and Number<20`。保存并运行,发现不执行了。因为`Number`是28,虽然满足大于10,但不满足小于20,一个条件为`True`,一个条件为`False`,根据`and`的规则,返回`False`,所以代码块不会执行。把`Number`改成18再运行,就可以执行了;改成8运行,也不会执行。

image.png

这里要注意逻辑运算符的运用,当需要多个条件时,可以用逻辑运算符来连接。`and`用于需要所有条件同时满足的情况;而`or`则表示只要有一个条件满足即可。如果用`or`连接`Number>10 or Number<20`,那就意味着`Number`比10大或者比20小都行,这样所有的数都会满足条件。所以一定要区分什么时候用`and`,什么时候用`or`。如果需要两边同时满足就用and,如果只需要一个条件满足就用or。

在Python中,还有一种写法。可以写成`10<Number<20`,这种写法和`Number>10 and Number<20`效果是一样的。当`Number`是8时,不会执行;改成18时,就会执行;改成28时,又不会执行。这种连着写的方式是Python独有的,它就相当于用`and`连接两个条件。

image.png


03、 Python缩进方式及设置


在Python里,是用缩进来表示代码块的。缩进有两种方式,一种是使用`Tab`键,另一种是使用空格,而且这里的空格是指四个空格。这两种方式用哪种都行,但Python官方文档推荐使用空格。为什么?因为`Tab`键在不同的文本编辑器里显示效果可能不一样,有些编辑器缩进显示长,有些显示短,这可能导致代码在不同编辑器里查看效果不一致。而空格一般大小是固定的,能保证在不同编辑器里看到的效果一样。

不过在实际使用中,两者差距没那么大。在开发时,用`Tab`键或者空格都行。如果公司习惯用`Tab`键,你就用`Tab`键;公司习惯用空格,你就用空格。但要注意,Python代码中使用的缩进方式必须统一,要么全用`Tab`键,要么全用空格,不能一行用`Tab`键,一行用空格,否则会报错。

有些同学可能觉得按四个空格太麻烦。其实现在大部分编辑器都有自动把`Tab`键转换成空格的功能。比如我按一下`Tab`键,当用方向键往回走或者用删除键往回删时,会发现是一个一个删的,这说明`Tab`键实际上已经被转换成四个空格了。要设置把`Tab`键转换成空格,在老版本里直接找设置用户,新版本点设置就行。然后找到`translate tabs to space`,把这句话加到配置文件里,以后输入`Tab`键就会自动转换成空格。当然,这不是强制的,具体还是要根据公司习惯来。

image.png image.png

 

04、 练习布置与`input`函数提示


到这里,最简单的if语句就讲完了。下面留一个小练习,在命令行中获取用户的输入,让用户输入一个用户名,然后进行判断。如果用户输入的用户名是`admin`,就显示`欢迎管理员光临`;如果输入的是其他用户名,则什么也不做。问题来了,我们怎么让用户输入一个用户名。

要完成这个功能,需要调用一个函数来获取用户的输入。我们可以在Python的文档中查找,找到Python3.6的手册,在`Python Standard Library`(标准库)的`Built-in Functions`(内置函数)里找。之前用的`print`函数就在这里,而获取用户输入要用`input`函数。现在要求大家自己尝试使用这个`input`函数。

image.png

image.png

image.png

相关文章
|
安全 开发者 C++
Windows10安装modelscope后import这个模块报错:OSError: [WinError 1] 函数不正确。: 'D:\Anaconda\envs\MDS\lib\site-packages\modelscope\utils\ast_utils.py'
Windows10安装modelscope后import这个模块报错:OSError: [WinError 1] 函数不正确。: 'D:\Anaconda\envs\MDS\lib\site-packages\modelscope\utils\ast_utils.py'
589 1
测试闭环
一、需求评审 1.需求评审的目的 明确功能优先级,评审业务流程设计的合理性,评估技术可行性。 2.需求评审中注意事项 a)提前了解产品需求,明确核心流程、功能结构 b)评审过程中不避免乏味,时间越长越容易分心,所以先了解重点模块,循序渐进 c)评审中遇到争议点,避免发散讨论,引导大家快速决策,明确沟通,明确产品拍板 d)评审中遇到无法决策的点,记录下来,会后处理,不过多纠缠,后续让产品决策后更新需求文档。
3959 0
|
8月前
|
Linux 开发者
开源社区的兴起
源文化的起源 开源文化的起源可以追溯到上世纪80年代的计算机领域,其思想基础是自由软件和开放源代码运动。1983年,理查德·斯托曼(Richard Stallman)发起了自由软件运动,他提倡软件的自由使用和共享,并成立了自由软件基金会(Free Software Foundation),发布了GNU通用公共许可证(GPL)。这一运动强调用户应拥有运行、复制、分发、研究、修改软件的自由。随后,1991年,林纳斯·托瓦兹(Linus Torvalds)创造了Linux内核,并将其以GPL的形式开源,这一举动标志着开源运动的一个重要里程碑,为之后的开源项目树立了榜样。1998年,网景公司公开了其浏
239 5
开源社区的兴起
|
8月前
|
机器学习/深度学习 存储 编解码
YOLOv11改进策略【Neck】| ArXiv 2023,基于U - Net v2中的的高效特征融合模块:SDI(Semantics and Detail Infusion)
YOLOv11改进策略【Neck】| ArXiv 2023,基于U - Net v2中的的高效特征融合模块:SDI(Semantics and Detail Infusion)
380 7
YOLOv11改进策略【Neck】| ArXiv 2023,基于U - Net v2中的的高效特征融合模块:SDI(Semantics and Detail Infusion)
|
XML 监控 API
淘宝商品详情数据接口全攻略:如何高效获取与分析商品信息
【淘宝商品详情数据接口全攻略】:注册开发者账号,申请API权限,构建HTTP请求获取商品信息,包括基础属性、价格等。遵循规则,处理并分析数据,用于竞品分析、价格监控和用户行为洞察。利用接口高效获取数据,助力电商决策。#淘宝API #数据分析
|
12月前
|
安全 芯片
USB输入过压保护芯片,短路保护,适用于5V,6V,型号齐全0.5A-6A
USB输入过压保护芯片用于防止低质量USB充电器造成的高压损害及快充时的瞬间尖峰电压,确保设备安全。该系列芯片耐压40V-70V,内阻低,适用于不同电流需求,如PW2605适合0.5A,PW2609A适合1A-3A,并集成过压保护与限流功能,提升产品可靠性。
USB输入过压保护芯片,短路保护,适用于5V,6V,型号齐全0.5A-6A
|
编解码 算法 数据可视化
lintsampler:高效从任意概率分布生成随机样本的新方法
在实际应用中,从复杂概率密度函数(PDF)中抽取随机样本的需求非常普遍,涉及统计估计、蒙特卡洛模拟和物理仿真等领域。`lintsampler` 是一个纯 Python 库,旨在高效地从任意概率分布中生成随机样本。它通过线性插值采样算法,简化了复杂分布的采样过程,提供了比传统方法如 MCMC 和拒绝采样更简便和高效的解决方案。`lintsampler` 的设计目标是让用户能够轻松生成高质量的样本,而无需复杂的参数调整。
225 1
lintsampler:高效从任意概率分布生成随机样本的新方法
|
移动开发 小程序 安全
原生小程序Donut多端开发
随着移动应用开发的不断发展,跨平台开发成为了一个备受关注的话题。开发人员希望能够使用一套代码库,同时支持多个平台,从而提高开发效率并覆盖更广泛的用户群体。在小程序领域,微信 Donut 多端(也称为原生小程序 Donut 多端)为开发人员提供了一种全新的跨平台开发方式。本文将介绍 Donut 多端的概念、特点以及如何开始使用它来开发跨平台小程序。
406 0
|
数据采集 算法 网络架构
英伟达开源大模型FoundationPose称霸BOP排行榜
【4月更文挑战第10天】英伟达新推出的FoundationPose模型在6D对象姿态估计和跟踪上取得重大突破,荣登BOP排行榜首。该模型以统一框架兼容有模型和无模型设置,利用大规模合成数据和对比学习提高泛化能力,且在复杂场景中表现出高适应性。尽管在处理某些困难情况时仍有局限,如无纹理物体的定位,但它展示了巨大的潜力和对未来技术的启示。
399 1
英伟达开源大模型FoundationPose称霸BOP排行榜
|
SQL 关系型数据库 MySQL
sql数据库同步软件
SQL数据库同步软件有多种选择,以下是一些常见的工具: * SQL Data Compare:此工具可以帮助在SQL Server或Azure SQL数据库之间进行数据比较和同步。它能够自动检测