《Python编程》03-01 运算符与表达式

【1】算数操作符

和大多数语言一样,python的算数操作符绝大部分能被我们所理解,注意不是全部。

+   -   *   /     %      **           //

加  减  乘   除   取模    求幂          取整
               (取余) (math.pow)

前面四个应该不用多说了,大名鼎鼎的四则运算。

num1 = 5
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)
print(num1 ** num2)#5^3  pow(5, 3)
print(num1 // num2)



>>>8
>>>2
>>>15
>>>1.6666666666666667
>>>2
>>>125
>>>1

【2】赋值运算符和赋值运算表达式

赋值运算符 =

赋值运算表达式
格式:变量 = 表达式
功能:计算了等号右侧“表达式”的值,并赋值给等号左侧的变量
值:赋值结束后变量的

num3 = 10
num4 = num3 + 20

print(num3,num4)

>>>10 30

【3】复合运算符

复合运算符
+=   a += b     a = a + b
-=   a -= b     a = a - b
*=   a *= b     a = a * b
/=   a /= b     a = a / b
%=   a %= b     a = a % b
**=   a **= b     a = a ** b
//=   a //= b     a = a // b

【4】优先级问题

当一个表达式存在多个运算符的时候,就可能发生不知道先运行谁的情况;

比如小学数学规定,先括号在乘除,加减是最低,这就是优先级。

例如:

-3 * 2 + 5 / -2 -4

相当于:

(-3) * 2 + 5 / (-2) -4 

#这个大家很容易理解

python有一个特殊的乘法,双星号(**)幂运算,

例如:

3 ** 2

星号左侧是底数,星号右侧是指数,这叫做3的2次幂,或者3的2次方

因为幂运算操作符和一元操作符的优先级关系比较特别,幂运算操作符比期左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。

-3 ** 2

>>>9

3 ** -2

>>>0.1111111111111111

【5】位运算符

位运算符:按位运算符是把数字看做二进制数来进行计算

& 按位与运算符

相应的位数都为1,则该位的结果是1,否则为0

print(5 & 7)
'''
5 ->101
7 ->111


101
111
————
101

101->5
'''
>>>5

| 按位或运算符

两个二进制位有一个位1时,结果为1

print(5 | 7)

'''
101
111
---
111
'''

>>>7

^ 按位异或运算符

二进制的两位相异时,结果为1

print(5 ^ 7)

'''
101
111
---
010
'''
>>>2

~ 按位翻转运算符

将二进制数+1之后乘以-1

print(~5)
'''
~101
___
(101+1) * -1
___
(111) * -1
__——
-111
'''

>>>-6

<< 左移动运算符

各二进制位全部左移动若干位,由<<右侧的数字决定,高位丢弃,低位补0

方法: X<<N 将一个数字X所对应的二进制数向左移动N位.

print(2 << 2)

'''
0000 0010
___
0000 1000
'''

>>>8

>> 右移动运算符

各二进制位全部右移动若干位,由>>右侧的数字决定

方法: X>>N 将一个数字X所对应的二进制数向右移动N位.

print(8 << 2)

'''
0000 1000
___
0000 0010

'''

>>>2

【6】比较运算符

比较运算符根据表达式值得真假返回布尔值。

格式: 表达式1 关系运算符 表达式2

== != > < >= <=

python在布尔值处理上有些不同,True等于整数1,False等于整数0

#全等于,包括数据类型,布尔型的
print(1 == 2)      >>>False
print(1 == '1')    >>>False
print(1 == True)   >>>True
#不等于
print(1 != 2)      >>>True
print(0 != False)  >>>False
print(1 != '1')    >>>True
#大于
print(1 > 2)       >>>False
print(True > False) >>>True
#小于
print(3 < 8)       >>>True
print(True < False) >>>False
#大于等于
print(True >= False) >>>True
print(1 >= True)  >>>True
#小于等于
print(3.14 <= 3.14)  >>>Ture
print(math.ceil(math.pi) <= math.floor(math.pi)) >>>True

【7】逻辑运算符

逻辑操作符包括andornot

逻辑与:and操作符左边的操作符为真,右边也为真,那么结果为真。

and执行的是一个串联的短路原则,一个地方坏了都换了(悲观原则)

a = 0
b = 1
print(a==0 and b==1)
print(a==0 and b==2)

>>>True
>>>False

逻辑与:or操作符只需要左边或右边有一个为真,那么结果为真。

or是一个并联的原则,其它的短路了我这里依然是好的,只要一个是好的那就是好的(乐观原则)

a = 0
b = 1
print(a==2 and b==12)
print(a==0 or b==2)

>>>False
>>>True

逻辑非:not操作符是一个一元操作符,它的作用是得到一个和操作符相反的布尔类型。

a = 0

print(not a==1)
print(not a==0)

#这里相当于 !=

>>>True
>>>False

【8】成员运算符

成员运算符包括innot in,从字义上可以看,他是判断在什么里面和不在什么里面,返回一个布尔值。

格式: x in y x not in y

a = 'qwert'

print('e' in a)
print('e' not in a)

>>>True
>>>False

【9】身份运算符

身份运算符包括isis not,判断标识符是不是引用同一个对象。

格式: x is y x is not y

还有 3% 的精彩内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。
支付 ¥1.00 继续阅读