控制语句1:真假与if 语句
一、真假与运算符
1.1 真假的划分、查看
任何数据都可以分为两类:True 与 False
False : 0,None,空的数据结构例如:[] ,{},str1 = ''
True :除了上面情况都是真的。
我们可以用 bool 来查看是否为真。
>>> str1 = ''
>>> bool(str1)
False
>>> str1 = ' '
>>> bool(str1)
True
>>> li = []
>>> bool(li)
False
1.2 比较运算
a = True
b = False
1.3 逻辑运算符
and: 判断and前后是不是真,
真的话,返回最后一个真。
假的话,返回第一个假。 如果第一个就遇到假了,后面就不计算了。
or :判断or前后有没有真的值
遇到第一个真,就直接返回,后面就不去计算了
否则一直计算到最后。
not :等同与!=
如果真,则变为假
如果假,则变为真
================================
小列子: and 与 or的优先级。
and 优先 or
x = 1
y = 0
z = 0
x or y and z #真
(x or y) and z #假
1.4 身份运算符 is 与 ==的区别
is 比较的变量的id,也就是是否指向同一内存。 (id是内存引用的指针)
== 比较的是变量的值
这里有个地方要说明下,python 对数字的存储,在数值比较小的时候,引用的内存是一致的,id相同,
在数值变大的时候,内存就又不一致了。id不同
二、 if 语句
2.1 基本格式:
可支持多个elif,注意if是从上而下执行,当有上面满足的时候,下面的if 组合就不会去执行了。
if 条件:pass
elif 条件:pass
elif 条件:pass
else:pass
2.2 扩展组合
与 in组合
a = 5
li_num = [1, 2, 3, 4, 5, 6]
if a in li_num:
print('has a')
else:
print('not a')
与 in and 组合
a = 5
b = 1
li_num = [1, 2, 3, 4, 5, 6]
if a in li_num and b in li_num:
print('都在')
else:
print('可能在一个,可能一个都没有')
与any组合
li_num = [1,2,3,4,5]
if any(x > 3 for x in li_num): # any后面是一个可迭代的对象,这个对象中有一个为真,则为真。
print('ok')
else:
print('no')
结果:ok
与all组合
li_num = [1,2,3,4,5]
if all(x > 3 for x in li_num): # all后面是一个可迭代的对象,这个对象中全为真,则为真。 有一个假,就是假
print('ok')
else:
print('no')
结果:no