python中if的基础用法(if else和if not)
作者:福永~ 发布时间:2021-02-01 01:56:18
前言
python 中 if 的用法(if else, if not, elif)
if语句实际上是:if True: …执行后面的语句
python 中的 if 有下面几种常见用法:
if … else…
if …elif…else…
if not …
if … not …
1.if … else …
实际上,还可以用用下面这种方式,使代码更精简:
赋值也是可以的:
2. if … elif … else…
elif 是多条件判断语句,比如:
当然,当条件很多时,可以有多个elif,比如上面这个简单的例子可以再增加几个条件
3.if not …
i在讲 if not 之前,得先弄清楚 not 在python中的意思:
not 是一个逻辑判断词
当 not 与变量连用的时候:
所以,在python中,None, False, 空字符串 ‘’ , 0, 空列表[], 空字典{}, 空元组() 都相当于False。
要注意的是,虽然”0“是 False,但是 ”[0]" 是True ,因为只有空列表为False,字典也是如此,另外有空格的字符串 ’ ’ 也不算空字符串。
仔细的同学可能看到上面元组(0)并不是True,那是因为在写元组tupple时,如果只有一个元素,需要在元素后面加上逗号,比如:(0,),指定为元组类型,如果不加逗号,python会把它当成整型,整数 0 为False,所以(0)也为False。
弄清楚not之后,加上 if 就很简单了,如果if not 后面的语句是False,则执行冒号后面的语句,否则执行else(如果有else的话)。
注意:有时候if not 的语句很长,又夹带is、and、or,容易理解错误,比如:
if not x is a:
应该理解为if not (x is a) ,而不是if (not x) is a
if not x or a =b:
应该理解为if (not x) or (ab),而不是 if not (x or ab),当然这里a==b可以换成其他条件。or 换成and也是一样,也就是说,(and、or)和is不一样,要仔细甄别。
if not语句是非常常用的语句,尤其在数据结构中。由于python语言的简洁,if not 和and. or. is.连用可以减少大量的代码空间。
4. if … not…
这种情况一般 not 与 is 连用,is not 直接按字面理解即可。理解为 if x (is not) None,而不是if x is (not None)。
补充:
在实际写代码的时候,经常遇到要判断None的情况,可能会遇见下面这些写法:
if x is None:…#最好使用这种写法
if not x:…
if not x is None: …
而在判断None的过程,常常伴随着 [] 的判断,这时我们使用if not x是有问题的:
因为上面讲过,not是逻辑判断,而列表、空字典等的逻辑和None是一样的,都是False,if not 是没办法区分的,输出的都是True。所以要确定变量=[]时对if not 的判断没有影响,否则会报错。
使用 if not x is None也是有问题的,这种写法容易误解为if (not x) is None,而实际上应该理解为 not (a is None)
a is None 返回False ,所以not(False)返回True,而实际上[] 并不是None,应该返回False
所以最好直接使用if x is None,简介明了。
a is b比较的a 和 b的id,只有a,b的id相同才会输出True:
上面if … not …中的 is not其实是一样的道理
补充:if条件语句综合练习
判断闰年:
用户输入年份year, 判断是否为闰年?
我们知道:能被4整除但不能被100整除的 或者 能被400整除 那么就是闰年
year = int(input('输入年份:'))
if year %4 ==0 and year %100 != 0:
print('%d是闰年' %year)
elif year %400 ==0:
print('%d是闰年'%year)
else:
print('%d不是闰年' %year)
结果:
来源:https://blog.csdn.net/F_Y202172/article/details/123997181
猜你喜欢
- 前言metrics用于判断模型性能。度量函数类似于损失函数,只是度量的结果不用于训练模型。可以使用任何损失函数作为度量(如logloss等)
- 字符串中字符大小写的变换1. str.lower() //小写>>> 'SkatE'.lower()
- Pycharm作为一款强力的Python IDE,在使用过程中感觉一直找不到全面完整的参考手册,因此决定对官网的Pycharm教程进行简要翻
- Python中核心的数据类型有哪些?变量(数字、字符串、元组、列表、字典)什么是数据的不可变性?哪些数据类型具有不可变性数据的不可变是指数据
- 1. 为什么需要Simhash?传统相似度算法:文本相似度的计算,一般使用向量空间模型(VSM),先对文本分词,提取特征,根据特征建立文本向
- js function定义函数的4种方法1.最基本的作为一个本本分分的函数声明使用。 复制代码代码如下: function func(){}
- 本文实例讲述了Python实现的远程登录windows系统功能。分享给大家供大家参考,具体如下:首先安装wmi 命令:pip install
- 谢谢icedblog提供的代码, 从那个js中我参考了moveSelect的利用, 不过那个代码中有几个BUG, 比如按住鼠标不放会不见显示
- 前言本文主要介绍 MySQL 是如何开启一个事务的,相关资料也可以查阅官方文档。https://dev.mysql.com/doc/refm
- 参考项目描述Python 标准库DougHellmann 著 / 刘炽 等 译搜索引擎BingPyt
- 本文主要讨论了python中getpass模块的相关内容,具体如下。getpass模块昨天跟学弟吹牛b安利Python标准库官方文档的时候偶
- 线程池的概念是什么?在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是 如此,虚
- 初学python,看来零零碎碎的格式化文本的方法,总结一下python中格式化文本的方法。使用不当的地欢迎指出谢谢。1、首先看使用%格式化文
- 如下所示:fp = open(''test2.txt','w') #打开你要写得文件test2.tx
- 前言在python中, 切片是一个经常会使用到的语法, 不管是元组, 列表还是字符串, 一般语法就是:sequence[ilow:ihigh
- 1、pyecharts绘制时间轮播柱形图from random import randintfrom pyecharts import op
- 概述Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。包括以下工具:在 CSS 过渡和动画中自动应用 class可以
- 如下所示:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional
- 本文实例讲述了symfony2.4的twig中date用法。分享给大家供大家参考,具体如下:获得当前时间:{{ "now"
- 摘要:NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率。这些函数包括数组元素的选取和多