Python之路,第三篇:Python入门与基础3
1, 布尔运算符
运算符; not and or
not 运算符:
作用:逻辑取反
语法: not 表达式
例: not True # False
not False # True
not 100 #False 相当于not bool(100)
not 0.0 #True
not 0j #True
not 1+2j #False
not ‘ ’ #True
not “False” #False
not None #True
“False”(字符串)和 False 布尔类型
1 score = int(input("请输入:")) 2 if not 0 <= score <= 100: 3 print("Error, 您输入的不对!") 4 >>> 5 请输入:1000 6 Error, 您输入的不对! 7 >>>
and 运算符:
作用: 返回优先为假值(False)的对象
语法: 表达式1 and 表达式 2
例: 0 and 100 # 返回0
100 and 200 #返回200
说明: 当表达式1 的布尔测试值为True时, 返回 表达式2, 否则返回表达式1 。
bool(表达式1) and bool(表达式2) 结果的布尔测试值:
---------------------------------------------------------------------------
False False False
False True False
True False False
True True True
and 真值表:
x and y
bool(x) 返回值
True y #如果x为True,则返回y
False x #如果x为False ,则返回x
or 运算符:
作用:
优先返回值为真(True)的对象
语法: 表达式1 or 表达式2
例:
0 or 100 返回值是100
100 or 0 返回值 100
0.0 or 0 返回 0
3.14 or 0.618 返回 3.14
正负号运算符:
+(正号) 、 -(负号)
语法:
+ 表达式
- 表达式
说明:一元运算符;
位运算:
运算符:
& 位与
| 位或
^ 位异或
<< 左移
>> 右移
~ 求反
& 位与:
语法
表达式x & 表达式y
作用:
按位操作, 1,两个对应的位都为1,则结果为1
2,两个对应的位只要有一个为0,则结果为0
bin(x)函数:
bin(x) 将x转换为二进制(binary)的字符串
1 >>> bin(1) 2 '0b1' 3 >>> bin(2) 4 '0b10' 5 >>> bin(3) 6 '0b11' 7 >>> bin(4) 8 '0b100' 9 >>> bin(5) 10 '0b101' 11 >>> bin(6) 12 '0b110' 13 >>> bin(7) 14 '0b111' 15 >>> bin(8) 16 '0b1000' 17 >>> bin(9) 18 '0b1001' 19 >>> bin(10) 20 '0b1010' 21 >>> bin(11) 22 '0b1011'
| 位或
语法:
表达式x | 表达式y
作用:
按位操作, 两个对应的位只要有一个为1,则结果为1
两个对应的位都为0,则结果为0
^ 位异或
语法:
表达式x ^ 表达式y
作用:
按位操作, 两个对应的位不同,结果为1
两个对应的位相同,结果为0
<< 左移运算
语法格式:
表达式x << 整数表达式y
作用:
将x的二进制值,按位向左移动y位,低位补0
例:
x = 6 << 1
>> 右移运算
语法格式:
表达式x >> 整数表达式y
作用:
将x的二进制值,按位向右移动y位,低位溢出丢弃
例:
6 >> 1 # 3
6 >> 2 # 1
6 >> 3 # 0
6 >> 100 # 0
~ 按位求反
语法格式:
~ 表达式
作用:
将数据二进制相应位取反 ;
例:
~ 6
1 >>> ~1 2 -2 3 >>> ~2 4 -3 5 >>> ~3 6 -4 7 >>> ~4 8 -5 9 >>> ~5 10 -6 11 >>> ~0 12 -1 13 >>> ~7 14 -8 15 >>> ~10 16 -11 17 >>> ~200 18 -201
练习:
IP = 0xc0a80164 # IP: 192.168.1.100
MASK = 0xFFFFFF00 # 子网俺码 255.255.255.0
求:IP & MASK 的值 # 网段地址:192.168.1.0
求: IP | ~MASK 的值 # 广播地址:192.168.1.255
hex(x) 将一个整数转为16进制的字符串
255 ->0b11111111