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其实是一样的道理

【 python 中 if 的用法(if else, if not, elif)】相关推荐

  1. 五分钟理解yield在python中的简单用法,让你不再迷惑

    很多同学无论是在学习python还是使用python的过程中,都会遇到yield关键字,这个让人头大的问题,今天,就给大家分享一下我自学yield的心路历程 基本概念: (1)在 Python 中,使 ...

  2. format函数python的顺序_[转载] Python中format函数用法

    Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...

  3. python代码大全表解释-python中的字典用法大全的代码

    如下代码是关于python中的字典用法大全的代码. #!/usr/bin/env python # # [SNIPPET_NAME: Dictionaries 101] # [SNIPPET_CATE ...

  4. python教程实例-Python中函数的用法实例教程

    本文以数值计算为例讲述了Python中函数的用法,分享给大家供大家参考借鉴之用.具体如下: 我们都知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需 ...

  5. 详解python中的用法_详解python中*号的用法

    1.表示乘号 2.表示倍数,例如: def T(msg,time=1): print((msg+' ')*time) T('hi',3) 打印结果(打印3次): hi hi hi 3.单个 * (1) ...

  6. python中 str.strip()用法

    python中 str.strip()用法 1.描述 str.strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列. (即可以去除特殊字符串) 注意:该方法只能删除开头或是 ...

  7. Python中的del用法

    python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题. python的del不同于C的free和C++的delete. 由于pyth ...

  8. python中的super用法详解_【Python】【类】super用法详解

    一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...

  9. python中argv的用法

    python中argv的用法 sys.argv可以用来获取命令行参数,其中sys.argv[0]为脚本名,即python文件名,列表中的其他值为传入的参数值,一般定义方式为 script, arg1, ...

最新文章

  1. 使用Spring框架的好处
  2. Java 中的线程安全的类
  3. windows docker 空出C盘 迁移到其他盘
  4. 1.three.js世界的4大要素
  5. json接收与发送(转自csdnblog)
  6. java 网页应用 原理_【转载】Web应用工作原理
  7. ajax取返回值的方法
  8. IdentityServer4实战 - 谈谈 JWT 的安全策略
  9. crontrigger java_Java触发器CronTrigger
  10. ObsidianFolderSync 创作格外丝滑
  11. 烽火HG680-KA_310_免费升级刷机固件包及教程
  12. 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」之 字符串处理+动态规划 合集!
  13. D2. Coffee and Coursework (Hard Version)(思维+贪心)
  14. 病毒木马查杀实战第010篇:QQ盗号木马之十六进制代码分析
  15. 基于深度学习的智能车辆视觉里程计技术发展综述*--陈涛
  16. Wikibon 2018年云市场和2019趋势报告:云移向数据
  17. 【计算机网络】链路层
  18. 数学分析教程(科大)——1.8笔记+习题
  19. IBM DS8000系列存储电池故障处理方案
  20. 站群服务器C段是什么

热门文章

  1. 蓝牙耳机什么牌子好?推荐四个高品质蓝牙耳机品牌
  2. colmap 稀疏重建的相机轨迹能调吗? 相机轨迹图标太大了
  3. java 实验十 数据库实验_数据库实验十[荟萃内容]
  4. 守护生命之源,昇思MindSpore携手伙伴共同保护河流生态
  5. 【C语言练习——调整数组内奇数偶数的顺序】
  6. pxe装机原理_pxe装机方式
  7. 开关4元、瓷砖7.8元、地板79.... 3.30日广州惊现2014最低价!
  8. QT界面GUI设计之Lable图片及文字显示
  9. Minecraft 正版
  10. LA和LB合并成一个LC