python学习笔记之条件判断

一、python里面的布尔值

1.假值:False,None,所有类型的数字0,空序列,空字典;

2.真值:所有的非空值;

3.bool函数可以用来将其他值转换成布尔值;

注意:1.Python包含 6 中内建的序列,包括列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。所以空列表,空字符串也是假值

2.尽管假值具有不同的类型,但是不同的假值之前也是不相等的。(很显然,空列表怎么能和空字典相等呢?)

例如:

print {}==[]
返回的是False

3.bool函数是例如  x>y   x is y 等函数,比较好理解


二、if  ...esle

只要接触过编程语言的,都有这个条件判断语句。python 也不例外,具体的用法如下:

if condition:
    doSomething1()
elif condition:
    doSomething2()
else:
    doSomething3()

当然,if里面也能继续嵌套使用

不过,python里面提供了一种特殊用法

doSomething1() if condition else doSomething2()
比如,我们可以这样使用

x=a if a>b else b
把 a和b中的较大的值赋给x


三、一些特殊的条件判断语句

1.and-or方法

在Python 中,and 和 or 执行布尔逻辑演算,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。

a and b 返回的不是 True 或者 False 而是 a 或者 b( 依次从左往右检查,遇到的第一个假值,返回该假值,否则返回最后一个) 

or 方法于and类似,只是or是遇到第一个为真的返回,否则返回最有一个

那么,怎么利用and-or 方法进行条件判断呢,

1. condition and a or b

这种方法的初衷是想,如果condition为真值,那么返回a,否者返回b,

>>> a = "first"

>>> b = "second"

>>> 1 and a or b

'first'

>>> 0 and a or b

'second'


但是这种方法存在一个缺陷,既如果a本身就是一个假值,那么无论如何,返回的都是b。

>>> a = ""

>>>b = "second"

>>> 1 and a or b        

'second'

怎么改善这个缺陷呢?最常用的方法就是把 a和b放入一个列表中去,这样,无论如何,[a]都不会是假值。于是我们可以这样写

>>> a=""
>>> b="second"
>>> (1 and [a] or [b])[0]
''

2.利用元祖的方法

首先,我们看一个情况
 

>>> 1==True
True
>>> 0==False
True
于是,我们就可以这样

>>> print ('condition if false','condition is true')[1==1]
condition is true



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值