Learn_Python_运算符02

一.什么是运算符

运算符是一种特殊的符号,通过运算符对相应的数据类型的运算数进行运算

例如:加法运算符 + 可用于将两个整数类型的运算数进行相加的运算,比如:3+5

布尔运算符 and 可用于将两个布尔类型的运算数进行逻辑 与 的运算,比如: True and False

二.常见的运算符

1.标准算术运算符

2.取余运算符

3.幂运算符

4.布尔运算符

5.比较运算符(含身份运算符is和is not)

6.赋值运算符

7.位运算符

print(3 + 5)
print(8 - 2)
print(5 * 6)
print(2.8 / 4) #加 减 乘 除
8
6
30
0.7

整数除运算符 //

当使用整数除运算符 // 对两个数值进行运算时,运算结果只保留整数部分。

整数除运算符 // 用于计算一个数值是另一个数值的多少倍

print(9 // 4) # 2
print(5.0 // 2.4)  #2.0
2
2.0
# 9 = (-4) * (-3) + (-3)  (-3)要在除数 -4 到 0 之间
print(9 // -4)
-3
# -9 = (4) * (-3) + (3)  (3)要在除数 0 到 4 之间
print(-9 // 4)
-3
# -9 = (-4) * (2) + (-1)  (-1)要在除数 -4 到 0 之间
print(-9 // -4)
2

取余运算符用 % 表示

a % b = a - b * 倍数 = a - b * (a // b) = 余数

print( 9 % 4)
print(1.25 % 0.5)
1
0.25
# 9 = (-4) * (-3) + (-3)  (-3)要在除数 -4 到 0 之间
print(9 % -4)
# -9 = (4) * (-3) + (3)  (3)要在除数 0 到 4 之间
print(-9 % 4)
# -9 = (-4) * (2) + (-1)  (-1)要在除数 -4 到 0 之间
print(-9 % -4)
-3
3
-1

幂运算符用两个 ** 表示

内置函数pow也可以是实现幂运算

print(3 ** 2)
print((-3) ** 2)
print(pow(3,2))
print(pow(-3,2))
9
9
9
9

布尔运算符用于对布尔值进行运算,运算结果仍然是一个布尔值

布尔运算符有三个:

and:当两个运算数都为 True 时,运算结果才为 True

or:只要有一个运算数为 True,运算结果就为 True

not:用于对运算数取反,如果运算数为True,运算结果为False

print(True and True)
print(True and False)
print(False and True)
print(False and False)
True
False
False
False
print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False
print(not True)
print(not False)
False
True

赋值运算符以及什么是变量

赋值运算符用 = 表示, = 的左边是变量, = 的右边是对象

在Python中,一切皆为对象

变量相当于标签,对于赋值语句:变量 = 对象,相当于给对象贴上了一个标签,标签名就是变量名

例如:

对于赋值语句 i = 18,
Python会分配一块内存空间用于存储整数对象18,然后相当于给整数对象18贴上名为 i 的标签,以后可以通过名为 i 的标签访问整数对象18了。
接下来执行赋值语句 i = 23,
Python会再分配一块内存空间用于存储整数对象23,
然后相当于把名为 i 的标签从整数对象18上撕下来并贴在整数对象23上,
这样,我们就无法再通过名为 i 的标签访问整数对象 18 了。
接下来执行赋值语句j = i,
相当于在整数对象23上又贴上了一个名为j的标签,
这样,我们既可以通过名为i的标签访问整数对象23,又可以通过名为j的标签访问整数对象23.

在某一时刻,一个标签只能贴在一个对象上,一个对象上可以贴多个标签。

变量是没有数据类型的,只有对象才有数据类型。

通常情况下,一个变量只引用一种数据类型的对象。

a = 18
print(a)   #18
18
# 变量a引用了另外一种数据类型的对象(但不推荐)
a = 'Hello'
print(a)  # Hello
Hello

赋值运算符支持链式赋值

如果想让多个变量同时引用同一对象,可以使用链式赋值

a = b = c = 18
print(a)
print(b)
print(c)
18
18
18

赋值运算符支持参数赋值

可以在赋值运算符的做左边添加其它运算符,从而实现参数赋值,例如:+= -= *= /= %=

a += b 相当于:a = a+b
参数赋值可以使代码更加简洁,而且可读性更强

a = 3
a += 5
print(a)
8

比较运算符用于比较两个运算符,比较结果使一个布尔值

比较运算符包括如下几个:

1.<

2.<= == 用于比较两个运算数是否相等,也就是说,用于“相等性”测试

3.>

4.>=

5.


6.!=

7.is is用于比较两个运算数是否是同一个对象,也就是说,is用于“同一性”测试

8.is not

print(6 < 8)
print(6 <= 8)
print(8 > 6)
print(8 >= 6)
print(8 == 8.0)
print(8 != 8.0)
True
True
True
True
True
False
a = b = [1,2,3]  #列表,之后会学
c = [1,2,3]
print(a == b)
print(a == c)
print(a is b)
print(a is c)
True
True
True
False

不可变类型对象的is比较

对于不可变类型的对象,其内存可能被重用,比如数值较小的整数对象。

可以调用内置函数id进行验证,内置函数id用于返回对象的唯一标识(对象在内存中的地址)。

a = 18
b = 18
print(id(a))
print(id(b))
print(a is b)
140725856694560
140725856694560
True

比较运算符可用于链式比较

age = 18
print(0 < age < 100)
# 以上语句相当于:print(0 < age and age <100)
True
print(1 == 2 < 3)
# 以上语句相当于:print(1 == 2 and 2 < 3)
False

位运算符:

运算符描述实例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

小技巧:Markdown在表格中输入 | ,可以用 \ |

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. 图解Python: http://e-learning.51cto.com/course/12803
  2. Python菜鸟教程:https://www.runoob.com/python/python-tutorial.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZPILOTE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值