版权申明:原创文章,未经博主同意,不得转载!
Python从入门到上瘾04——运算符以及表达式
小白高效学习Python系列,50小时学会Python
表达各个变量间的关系,实现对变量的处理,就必须用到运算符以及表达式。通俗来讲,具有运算功能的符号称为运算符;由值、变量和运算符组成的式子为表达式。
“ 阅读本文需要大约10分钟。”
01 赋值、算数、位运算符
赋值运算符通俗来讲就是,把某种数据类型的值赋于某个变量。Python允许同时为多个变量赋值。
name='IEEE'
Alice, Bob, Charlie = '18岁','Beautiful', '帅' # 多个变量同时赋值
有时为简化程序,便于美观,可以在赋值运算符前结合其他运算符,称为复合赋值运算。例如:
a,b=12,11
c-=a #等价于c=c-a
c%=a #等价于c=c%a
其余复合赋值运算符如下:
+= | 加法赋值 |
---|---|
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 模运算赋值 |
<<= | 左移赋值 |
>>= | 右移赋值 |
&= | 位逻辑与赋值 |
= | 位逻辑或赋值 |
^= | 位逻辑异或赋值 |
算数运算符,算数运算符主要用于数学运算,例如
a=12
b=7
print(a//b) #运算结果为1
Python中算数运算符如下表
+ | 加 - 两个对象相加 |
---|---|
- | 减 - 得到负数或是一个数减去另一个数 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除 - x除以y |
% | 取模 - 返回除法的余数 |
** | 幂 - 返回x的y次幂 |
// | 取整除 - 向下取整 |
位运算符,把数字看作二进制来进行计算。位运算符可以直接操作整数类型的二进制位。例如
a=0xFFFF #十六进制
b=0b0011110000001111 #二进制
print(a&b)
print(a|b)
print(a<<2)
print(a>>2)
运算结果如下
15375 # 0b11110000001111
65535 # 0b1111111111111111
262140 # 0b111111111111111100
16383 # 0b11111111111111
位运算符如下表
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
---|---|
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:>>左侧的运算数的各二进位全部右移若干位,>> 右侧的数字指定了移动的位数,高位补0 |
02 比较、逻辑运算符
比较运算符也可叫做关系运算符,常用来比较两个数字的大小关系,返回值为True或者False。例如
a = 16
b = 18
if a == b :
print(" a 等于 b")
else:
print (" a 不等于 b")
其余比较运算符如下表:
== | 等于 - 比较对象是否相等 |
---|---|
!= | 不等于 - 比较两个对象是否不相等 |
<> | 不等于 - 比较两个对象是否不相等 |
> | 大于 - 返回x是否大于y |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 |
>= | 大于等于 - 返回x是否大于等于y。 |
<= | 小于等于 - 返回x是否小于等于y。 |
逻辑运算符,Python中只能使用and,or,not三种逻辑运算符。例如
a = 10
b = 20
if a and b :
print ("变量 a 和 b 都为 true")
else:
print (" 变量 a 和 b 有一个不为 true")
其余逻辑运算符如下
and | x and y | 布尔"与", 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 |
---|---|---|
or | x or y | 布尔"或" , 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 |
not | not x | 布尔"非" ,如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 |
03 成员、身份运算符
成员运算符(in,not in) 用来验证某个实例中是否存在给定的变量。该实例可以是字符串、列表、元组(后面会详细讲解)。
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | 如果 x 在 y 序列中返回 True。 |
---|---|---|
not in | 如果在指定的序列中没有找到值返回True,否则返回 False。 | 如果 x 不在 y 序列中返回 True。 |
a = 1
list = [1, 2, 3, 4, 5];
if ( a in list ):
print (" 变量 a 在给定的列表中 list 中")
else:
print (" 变量 a 不在给定的列表中 list 中")
b ='C'
s = 'Charlie'
if ( b not in s ):
print ("变量 b 不在给定的字符串中 s 中")
else:
print ("变量 b 在给定的字符串中 s 中")
运行结果如下
变量 a 在给定的列表中 list 中
变量 b 在给定的字符串中 s 中
身份运算符(is),用来比较两个标识符是不是引用自一个对象。要说明身份运算符,就得先来讲讲Python中变量的属性。Python中变量有3种属性,变量名(name),值(value),内存地址(id)。比较运算符“==”比较的是变量的值(value);身份运算符’‘is’’,比较的是变量内存地址(实际上说成是内存地址并不准确,新手可以这么理解)。下面代码说明了两者运算过程。
a = [1,2,3]
b = [1,2,3]
print(id(a))#2332942295624
print(id(b))#2332942295688
print(a is b) #False
print(a == b) #True
c = 1
d = 1
print(id(c)) #140727065228112
print(id(d)) #140727065228112
print(c is d) #True
print(c == d) #True
本期到此结束,扫下面二维码加Python学习公众号,有海量优质资源免费领取!