Python从入门到上瘾04——运算符以及表达式

版权申明:原创文章,未经博主同意,不得转载!

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学习公众号,有海量优质资源免费领取!
Python从入门到上瘾04——运算符以及表达式_第1张图片

你可能感兴趣的:(Python入门到上瘾)