python运算符

算术运算符

算术运算符是处理四则运算的符号,在数字的处理中应用得最多。

运算符说明实例结果
+12.45 + 1527.45
-4.56 - 0.264.3
*5 * 3.618.0
/7 / 23.5
%取余,即返回除法的余数7 % 21
//整除,返回商的整数部分7 // 23
**幂,即返回x的y次方2 ** 416,即24

加法运算符

例如如下代码:

a = 5.2
b = 3.1
the_sum = a + b
# sum的值为8.3
print("the_sum的值为:", the_sum)

除此之外,“+”还可以作为字符串(包括后续要介绍的序列)的连接运算符。例如如下代码:

s1 = 'Hello, '
s2 = 'Charlie'
# 使用+连接两个字符串
print(s1 + s2)

减法运算符

例如如下代码:

c = 5.2
d = 3.1
sub = c - d
# sub的值为2.1
print("sub的值为:", sub)

此外,“-”除了可以作为减法运算符之外,还可以作为求负的运算符。请看如下代码:

# 定义变量x,其值为-5.0
x = -5.0
# 将x求负,其值变成5.0
x = -x
print(x)

乘法运算符

例如如下代码:

e = 5.2
f = 3.1
multiply = e * f
# multiply的值为16.12
print("multiply的值为:", multiply)

此外,“*”还可以作为字符串(包括后续要介绍的序列)的连接运算符,表示将N个字符串连接起来。例如如下代码:

s3 = 'crazyit '
# 使用*将5个字符串连接起来
print(s3 * 5)

上面代码将会输出:

crazyit crazyit crazyit crazyit crazyit

除法运算符

Python的除法运算符有两个:“/”表示普通除法,使用它除出来的结果与平常数学计算的结果是相同的(即除不尽时,会产生小数部分);而“//”表示整除,使用它除出来的结果只有整数部分,小数部分将会被舍弃。

记住,在Python 3.x中,除法运算的结果都是浮点类型。

例如如下代码:

print("19/4的结果是:", 19/4)
print("19//4的结果是:", 19//4)
aa = 5.2
bb = 3.1
# aa / bb的值将是1.67741935483871
print("aa/bb的值是:", aa / bb)
# aa // bb值将是1.0
print("aa//bb的值是:", aa // bb)

求余运算符

Python不要求求余运算符的两个操作数都是整数,Python的求余运算符完全支持对浮点数求余。求余运算的结果不一定总是整数,它是使用第一个操作数来除以第二个操作数,得到一个整除的结果后剩下的值就是余数。

由于求余运算也需要进行除法运算,因此求余运算的第二个操作数不能是 0,否则程序会报出ZeroDivisionError错误。

例如如下程序:

print("5%3的值为:", 5 % 3) # 输出2
print("5.2%3.1的值为:",5.2 % 3.1) # 输出2.1
print("-5.2%-3.1的值为:", -5.2 % -3.1) # 输出-2.1
print("5.2%-2.9的值为:", 5.2 % -2.9) # 输出-0.6
print("5.2%-1.5的值为:", 5.2 % -1.5) # 输出-0.8
print("-5.2%1.5的值为:", -5.2 % 1.5) # 输出0.8
#print("5对0.0求余的结果是:", 5 % 0.0) # 导致错误

乘方运算符

Python支持使用“**”作为乘方运算符,这是一个使用非常方便的运算符。由于开方其实是乘方的逆运算,因此实际上使用“**”也可进行开方运算。例如如下代码:

print('5 的 2 次方:', 5 ** 2) # 25
print('4 的 3 次方:', 4 ** 3) # 64
print('4 的开平方:', 4 ** 0.5) # 2.0
print('27 的开 3 次方:',27 **(1 / 3 )) # 3.0

赋值运算符

基本赋值运算符

python使用“=”作为赋值运算符,常用于将表达式的值赋给另一个变量。例如如下代码:

# 为变量st赋值为
Pythonst = "Python"
# 为变量pi赋值为3.14
pi = 3.14
# 为变量visited赋值为True
visited  = True

除此之外,也可使用赋值运算利将一个变量的值赋给另一个变量。例如,如下代码也是正确的:

# 将变量st的值赋给st2
st2 = st
print(st2)

扩展后的赋值运算符

=赋值运算符还可与其他运算符(算术运算符、位运算符等)结合,成为功能更强大的赋值运算符。

运算符说 明举 例展开形式
=最基本的赋值运算x = yx = y
+=加赋值x += yx = x + y
-=减赋值x -= yx = x - y
*=乘赋值x *= yx = x * y
/=除赋值x /= yx = x / y
%=取余数赋值x %= yx = x % y
**=幂赋值x **= yx = x ** y
//=取整数赋值x //= yx = x // y
&=按位与赋值x &= yx = x & y
|=按位或赋值x |= yx = x | y
^=按位异或赋值x ^= yx = x ^ y
<<=左移赋值x <<= yx = x << y,这里的y指的是左移的位数
>>=右移赋值x >>= yx = x >> y,这里的y指的是右移的位数

这里举几个简单的例子:

a = 1
b = 2
a += b
print("a+b=",a)#1+2=3
a -= b
print("a-b=",a)#3-2=1
a *= b
print("a*b=",a)#1*2=2
a /= b
print("a/b=",a)#2/2=1.0
a %= b
print("a%b=",a)#1%2=1.0
c = 0
d = 2
c &= d
print("c&d=",c)#0&2=0
c |= d
print("c|d=",c)#0|2=2

运行结果为:

a+b= 3
a-b= 1
a*b= 2
a/b= 1.0
a%b= 1.0
c&d= 0
c|d= 2

位运算符

位运算符的操作对象是整数类型,它会把数字看做对应的二进制数来进行计算。

位运算符说 明使用形式举 例
&按位与a & b4 & 5
|按位或a | b4 | 5
^按位异或a ^ b4 ^ 5
~按位取反~a~4
<<按位左移a << b4 << 2,表示数字4按位左移2位
>>按位右移a >> b4 >> 2,表示数字4按位右移2位

按位与运算符

按位与运算的运算符是&,它有2个操作数,其运算法则是,按位将2个操作数对应的二进制数一一对应,只有对应数位都是1时,此为对应的结果位才是1;反之,就是0

第一个操作数第二个操作数结果位的值
000
010
100
111

例如,在Python交互式解释器中,计算12 & 8的值,执行过程如下:

>>> 12 & 8
8

按位或运算符

按位或运算的运算符是|,它有2个操作数,运算法则是,按位将2个操作数对应的二进制数一一对应,只有对应数位都是0,所得结果才是0;反之,就是1

第一个操作数第二个操作数结果位的值
000
011
101
111

例如,在Python交互式解释器上计算4 | 8的值,执行过程如下:

>>> 4 | 8
12

按位异或运算符

按位异或运算的运算符是^,它有2个操作数,运算法则是,按位将 2个操作数对应的二进制数一一对应,当对应位的二进制值相同(同为0或同为1)时,所得结果为 0;反之,则为1

第一个操作数第二个操作数结果位的值
000
011
101
110

例如,在Python交互式解释器中,计算31 ^ 22的值,其执行过程为:

>>> 31 ^ 22
9

按位取反运算符

按位取反,也常称为“按位非”运算,此运算的运算符为~,它只有1个操作数,其运算法则为:将操作数的所有二进制位,1改为00改为1

 >>> ~-5
 4

注意,此运算过程涉及与计算机存储相关的内容,首先需要了解什么是原码、反码以及补码:

  • 原码是直接将一个数值换算成二进制数。有符号整数的最高位是符号位,符号位为0代表正数,符号位为 1 代表负数。无符号整数则没有符号位,因此无符号整数只能表示0和正数。
  • 反码的计算规则是:对原码按位取反,只是最高位(符号位)保持不变。
  • 补码的计算规则是:正数的补码和原码完全相同,负数的补码是其反码+1

左移运算符

左移运算符是将操作数补码形式的二进制数,整体左移指定位数,左移后,左边溢出的位直接丢弃,右边空出来的位以0来填充。例如如下代码:

>>> 5 << 2
20
>>>-5 << 2
-20

右移运算符

Python的右移运算符为>>,其运行法则是,把操作数补码形式的二进制右移指定位数后,左边空出来的位以符号位来填充,右侧溢出位直接丢弃。

>>> -5 >> 2
-2

比较运算符

比较运算符,也成关系运算符,用于对常量、变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回True;反之,则返回False

比较运算符功能
>大于,如果运算符前面的值大于后面的值,则返回True;否则返回False
>=大于或等于,如果运算符前面的值大于或等于后面的值,则返回True;否则返回False
<小于,如果运算符前面的值小于后面的值,则返回True;否则返回False
<=小于或等于,如果运算符前面的值小于或等于后面的值,则返回True;否则返回False
==等于,如果运算符前面的值等于后面的值,则返回True;否则返回False
!=不等于,如果运算符前面的值不等于后面的值,则返回True;否则返回False
is判断两个变量所引用的对象是否相同,如果相同则返回True
is not判断两个变量所引用的对象是否不相同,如果不相同则返回True

下面程序示范了比较运算符的基本用法:

>>> print("5是否大于 4:", 5 > 4)
5是否大于 4: True
>>> print("3的4次方是否大于等于90.0:", 3 ** 4 >= 90)
3的4次方是否大于等于90.0: False
>>> print("20是否大于等于20.0:", 20 >= 20.0)
20是否大于等于20.0: True
>>> print("5和5.0是否相等:", 5 == 5.0)
5和5.0是否相等: True
>>> print("True和False是否相等:", True == False)
True和False是否相等: False
>>>

比较运算符==is的区别

==用来比较两个变量的值是否相等,而is则用来比对两个变量引用的是否是同一个对象,例如:

import time
# 获取当前时间
a = time.gmtime()
b =  time.gmtime()
print(a == b) # a和b两个时间相等,输出True
print(a is b) # a和b不是同一个对象,输出False

上面代码中ab两个变量都代表当前系统时间,因此ab两个变量的时间值是相等的(代码运行速度很快,能保证是同一时间),故程序使用“==”判断返回True。但由于ab两个变量分别引用不同的对象(每次调用gmtime()函数都返回不同的对象),因此a is b返回False

Python提供了一个全局的id()函数,它可以用来判断变量所引用的对象的内存地址,如果两个对象所在的内存地址相同,则说明这两个对象其实是同一个对象。

再举一个例子:

>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> id(a)
2680257978480
>>> id(b)
2680257978480
>>> a is b
True

逻辑运算符

逻辑运算符是对真和假两种布尔值进行运算(操作bool类型的变量、常量或表达式),逻辑运算的返回值也是 bool类型值。

Python中的逻辑运算符主要包括and(逻辑与)、or(逻辑或)以及not(逻辑非)

逻辑运算符含义基本格式功能
and逻辑与(简称“与”)a and b有2个操作数a和b,只有它们都是True时,才返回True,否则返回 False。
or逻辑或(简称“或”)a or b有2个操作数a和b,只有它们都是False时,才返回False,否则返回True。
not逻辑非(简称“非”)not a只需要 1 个操作数 a,如果 a 的值为 True,则返回False;反之,如果 a 的值为False,则返回True。

下面代码示范了与、或、非这三个逻辑运算符的使用:

# 直接对False求非运算,将返回True
print(not False)
# 5>3返回True,20.0大于10,因此结果返回True
print(5 > 3 and 20.0 > 10)
# 4>=5返回False,"c">"a"返回True。求或后返回True
print(4 >= 5 or "c" > "a")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星*湖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值