分享

运算符(2)--Python

 靓拖鞋 2021-12-17

1-4、逻辑运算符

逻辑运算符用于对bool类型变量进行运算,其结果也是bool类型。

以下假设变量:a=4,b=2:

运算符名称举例描述说明
not逻辑非not a
a为True时,返回值为False;a为False时,返回值为True返回值False。
and逻辑与a and ba、b全为True时,返回值为True;否则返回值False返回值True。
or逻辑或a or ba、b全为False时,返回值为False;否则返回值True返回值True。

举例:

a = 10

b = 20 

if a and b

print "1 - 变量 a 和 b 都为 true"

else

print "1 - 变量 a 和 b 有一个不为 true" 

if a or b

print "2 - 变量 a 和 b 都为 true,或其中一个变量为 true"

else

print "2 - 变量 a 和 b 都不为 true" 

a = 0                                   # 修改变量 a 的值

if a and b

print "3 - 变量 a 和 b 都为 true"

else

print "3 - 变量 a 和 b 有一个不为 true" 

if a or b

print "4 - 变量 a 和 b 都为 true,或其中一个变量为 true"

else

print "4 - 变量 a 和 b 都不为 true" 

if not( a and b )

print "5 - 变量 a 和 b 都为 false,或其中一个变量为 false"

else

print "5 - 变量 a 和 b 都为 true"

运行结果:

1 - 变量 a 和 b 都为 true

2 - 变量 a 和 b 都为 true,或其中一个变量为 true

3 - 变量 a 和 b 有一个不为 true

4 - 变量 a 和 b 都为 true,或其中一个变量为 true

5 - 变量 a 和 b 都为 false,或其中一个变量为 false

1-5、位运算符

位运算,是以二进位为单位进行位运算的,操作数和结果都是整数类型的数据。

以下假设变量:a=60,b=13:

运算符名称举例描述说明
&
按位与运算符a & b
参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。返回值12
|按位或运算符a | b只要对应的2个二进位有一个为1时,结果位就为1。返回值61
^按位异或运算符a ^ b当两对应的二进位相异时,结果为1返回值49
~按位取反运算符a ~ b对数据的每个二进制位取反,即把1变为0,把0变为1。返回值-61
<<左移动运算符a << 2运算数的各二进位全部左移若干位,由"<<"右边的数字指定了移动的位数,高位丢弃,低位补0。返回值240
>>右移动运算符a >> 2把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数字指定了移动的位数。返回值15

举例:

a = 60                     # 60 = 0011 1100 

b = 13                     # 13 = 0000 1101 

c = 0 

c = a & b;                # 12 = 0000 1100

print "1 - c 的值为:", c 

c = a | b;                  # 61 = 0011 1101 

print "2 - c 的值为:", c 

c = a ^ b;                # 49 = 0011 0001

print "3 - c 的值为:", c 

c = ~a;                     # -61 = 1100 0011

print "4 - c 的值为:", c 

c = a << 2;               # 240 = 1111 0000

print "5 - c 的值为:", c 

c = a >> 2;               # 15 = 0000 1111

print "6 - c 的值为:", c

运行结果:

1 - c 的值为:12

2 - c 的值为:61

3 - c 的值为:49

4 - c 的值为:-61

5 - c 的值为:240

6 - c 的值为:15

1-6、成员运算符

成员运算符用于运算成员是否在指定序列中,包含有字符串,列表或元组,其结果为Bool类型。

以下假设变量:a=4,b=2,list=[2,4,8,16]:

运算符名称举例描述说明
in
成员内a in list如果在指定的序列中找到值时,返回值为True,否则返回值为False返回值True
not in成员外
b not in list
如果在指定的序列中没有找到值时,返回值为True,否则返回值为False返回值False。

举例:

a = 10

b = 20

list = [1, 2, 3, 4, 5 ]

if ( a in list )

print "1 - 变量 a 在给定的列表中 list 中"

else

print "1 - 变量 a 不在给定的列表中 list 中" 

if ( b not in list )

print "2 - 变量 b 不在给定的列表中 list 中"

else

print "2 - 变量 b 在给定的列表中 list 中" 

a = 2                              # 修改变量 a 的值

if ( a in list )

print "3 - 变量 a 在给定的列表中 list 中"

else

print "3 - 变量 a 不在给定的列表中 list 中"

运行结果:

1 - 变量 a 不在给定的列表中 list 中

2 - 变量 b 不在给定的列表中 list 中

3 - 变量 a 在给定的列表中 list 中

1-7、身份运算符

身份运算符用于比较两个对象的存储单元(内存地址),其结果为Bool类型。

运算符名称举例描述说明
is
a is b
判断两个标识符是不是引用自一个对象。如果引用的是同一个对象则返回 True,否则返回 False。
is not
a is not b判断两个标识符是不是引用自不同对象。如果引用的不是同一个对象则返回结果 True,否则返回 False。

is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

举例:

a = 1

b = -1

c-1

print (id(a)) 

print (id(b))

print (id(c))

print ('{} is {} 的结果是{}'. format(a,b,a is b))

print ('{} is {} 的结果是{}'. format(a,c,a is c))

print ('{} is not {} 的结果是{}'. format(c,b,c is not b))

运行结果:

1804495888

1804495824

1804495824

1 is -1 的结果是False

1 is -1 的结果是False

-1 is not -1 的结果是False

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多