布尔值:
Python2中没有布尔值,直接用数字 0 表示False,用数字 1 表示True。
Python3中,把True和False定义成了关键字,但是他们的本质还是 1 和 0 ,甚至可以和数字相加。
a = True
b = 3
c = a + b #c的值是4
print(c)
print('空字符串的布尔类型的值:',bool("")) #False
print('空列表布尔类型的值:',bool([])) #False
print('None布尔类型的值:',bool(None)) #False
print('0布尔类型的值:',bool(0)) #False
print('字符串True和False转成布尔都是True:',bool("False")) #True
第 9 行(字符串True和False转成布尔都是True)解释
a = True
b = 5
print(a+b) #结果是 6
if("False"): #返回的是True
print("我被执行了") #因为返回True所以输出
if(""): #空字符串,返回的是False,
print("我没有被执行") #因为返回的是False所以不执行
在Python语言底层中,会将布尔值True看作 1 ,将布尔值False看作 0 ,尽管从表面上看,True和 1 、False和 0 是完全不相同的两个值,但实际上,它们是相同的。
在Python语言中,有一些特殊的布尔类型值为False,例如False、0、0.0、空值None、空序列对象(空列表、空元组、空集合、空字典、空字符串)、空range对象、迭代对象。其他情况,均为True。
运算符:
包括逻辑运算符;比较运算符;位运算符;加法操作补充;乘法操作补充;增强赋值运算符(补充);同一运算符;成员运算符
逻辑运算符:
运算符? ? ? ? ? ? ? ? ? ? ? ?格式? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 说明
or? ? ? ? 逻辑或? ? ? ? ? ??x or y? ? ? ? ? ? ? ? ? ? ? ? ? ? x为true则不计算y,直接返回true;x为false则返回y
and? ? ? 逻辑与? ? ? ? ? x and y? ? ? ? ? ? ? ? x为true则返回y的值;x为false,则不计算y,直接返回false
not? ? ? ? 逻辑非? ? ? ? ?not x? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? x为true返回false;x为false返回true
比较运算符:
所有比较运算符返回 1 表示真,返回 0 表示假。分别与特殊变量True和False等价,假设a为15,b为30:
运算符? ? ? ? ? ? ? ? ? ? ? ? 描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 实例
==? ? ? ? ? ? ? ? ? ? ? ? 等于-比较对象的值是否相等? ? ? ? ? ? ? ? ? ? ? ? (a==b)返回False
!=? ? ? ? ? ? ? ? ? ? ? ? ?不等于-比较两个对象的值是否相等? ? ? ? ? ? ? (a!=b)返回True
>? ? ? ? ? ? ? ? ? ? ? ? ? 大于-返回 x 是否大于 y? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (a>b)返回False
<? ? ? ? ? ? ? ? ? ? ? ? ? 小于-返回 x 是否小于 y? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (a<b)返回True
>=? ? ? ? ? ? ? ? ? ? ? ? 大于等于-返回 x 是否大于等于 y? ? ? ? ? ? ? ? ? ?(a>=b)返回False
<=????????????????????????小于等于-返回 x 是否小于等于 y? ? ? ? ? ? ? ? ? ? (a<=b)返回True
? ?
a = 4
print(a <= 30)
#关系运算符可以连用
if(3 < a < 10):
print("a在3和10之间")
? ??
e = 100 < 200 and 50<(3/0) #and前边是True,则继续执行判断后边的,会报错
print(e)
e = 100 > 200 and 50<(3/0) #and前边是False,则后边不去执行,直接返回False
print(e)
f = 200
g = 50 < f <500
g2 = 50 < f and f < 500
print(g) #结果True
print(g2) #结果True
位运算符:
运算符? ? ? ? ? ? ? ? ? ? ? ? 描述
&? ? ? ? ? ?按位于运算符:参与运算的两个值,如果两个相应位都为 1 ,则该位的结果为 1 ,否则 0?
|? ? ? ? ? ? 按位或运算符:只要对应的二个二进位有一个为 1 时,结果就为 1?
^? ? ? ? ? ? 按位异或运算符:当两对应的二进制位相异时,结果为 1?
~? ? ? ? ? ?按位取反运算符:对数据的每个二进制取反,既把 1 变为 0 ,把 0 变为 1 ,x 类似于 -x-1
<<? ? ? ? ? 左移动运算符:运算符的每个二进制数全部左移若干位,由“<<”右边的数据指定移动的位数,高位丢弃,低位补 0?
>>? ? ? ? ? ?右移运算符:把“>>”左边运算数的每个二进制位全部右移若干位,“>>”右边的数指定移动的位数
a = 0b11001
b = 0b01000
print(bin(a|b)) #0b11001
print(bin(a&b)) #0b1000
print(bin(a^b)) #0b10001
print(3<<2) #12
print(20>>1) #10
加法操作补充-乘法操作补充:
数字相加 3+2 结果是 5
字符串拼接 "3" + "2" 结果是 "32"
列表、元组等合并 [10,20,30] + [5,10,100] 结果是 [10,20,30,5,10,100]
e = 3
f = 4
g = e + f
print(g) #结果:7
a = "3"
b = "4"
c = a + b
print(c) #结果:34
h = [10,20,30]
i = [5,10,100]
print(h + i) #结果[10, 20, 30, 5, 10, 100]
数字相乘 3 * 2 结果是 6
字符串的复制 "sxt" * 3 结果是 "sxtsxtsxt"
列表、元组等复制 [10,20,30] * 3 结果是 [10,20,30,10,20,30,10,20,30]
d = 'I love U!'
print(d * 3) #结果是I love U!I love U!I love U!
增强赋值运算符:
?!!!与 C 和 JAVA 不一样,Python不支持自增(++)和自减(--)