python 中 if 的用法(if else, if not, elif)

Posted 福永~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 中 if 的用法(if else, if not, elif)相关的知识,希望对你有一定的参考价值。

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 else 和while else的用法

for else

在for 循环中,如果没有从任何一个break中退出,则会执行和for对应的else,只要从break中退出了,则else部分不执行。

while else
while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句,Break后跳出循环,不执行else内容。
 
两者都是说在for或者while后面正常执行完,没有中断的话,执行else语句,如果有中断,则else语句不执行

以上是关于python 中 if 的用法(if else, if not, elif)的主要内容,如果未能解决你的问题,请参考以下文章

python基础--input print if else elif while 用法说明

handlebars 怎么用else if

python条件语句实例代码

多个if else if语句的用法?

Python语法学习记录:if else写在一行&其他简单逻辑符号简单mark

关于C语言中if else的用法,高手来帮下忙