python运算符

1 算数运算符

算数运算符,就是数学上面的基本的运算符:加+、减-、乘*、除/、幂**、取余%以及取整//

运算符描述例子
+可用于数字、序列等类型数据操作,对于数字类型就是求和;其他类型表示连接操作a + b
-减法运算符,用于求差a - b
*可用于数字、序列等类型数据操作,对于数字类型就是求积;其他类型表示重复操作a * b
/除法运算符,用于求商a / b
%取余运算符,用于求余数a % b
**幂运算符,用于求幂a ** b
//取整运算符,求小于商的最大整数a // b

基本的运算:

>>> 1 + 2
3
>>> 'hello' + 'world'
'helloworld'		# 将前后两个字符串进行拼接
>>> 'hello' + 2		# can only concatenate str (not "int") to str
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> 2 - 1 
1
>>> 2 * 3
6
>>> 'hello' * 2
'hellohello'		# * 几就是重复几遍
>>> 3 / 2
1.5
>>> 3 % 2
1
>>> 3 ** 2
9
>>> 3 // 2
1

注:python在进行除法运算的时候会自动将数转换为双精度浮点型来进行计算,以防止结果精度的丢失,那怕你可以整除,也会先行转换,再运算,结果返回一个float,所以如果需要一个整型可以使用//,它会去除结果的小数,返回一个int;但要求//左右都要为int型,有一个float型的数,结果也为float

>>> 4 / 2
2.0
>>> type(4 / 2)
<class 'float'>
>>> 4 // 2
2
>>> 4 // 2.0
2.0

2 关系运算符

运算符说明例子
==用于判断两边的内容是否相等a == b
!=用于判断两边的内容是否不相等a != b
>用于判断左边的值是否大于右边a > b
<用于判断左边的值是否小于右边a < b
>=用于判断左边的值是否大于等于右边a >= b
<=用于判断左边的值是否小于等于右边a <= b

判断数值是,关系运算符主要判断其值的关系,判断字符串类型的时候是逐个判断字符的ASCII码值,相等继续下一个,直到出现不相等,全部相等则两个字符串相同

>>> a = 1
>>> b = 2
>>> 1.0 == a
True
>>> 1.0 != a
False
>>> a > b
False
>>> a < b
True
>>> a >=b
False
>>> a <= b
True
>>> a = 'hello'
>>> b = 'hello'
>>> a == b
True
>>> a == 'hello1'
False
>>> a > b
False
>>> a < b
False

python还提供了连续比较运算 例如:a > b > c,相当于a > b and b > c( 两个比较加加上逻辑运算符)

3 逻辑运算符

python支持逻辑运算符,但是python取消了传统的与&&、或||、非!,取而代之的是and or not

运算符名称说明例子
and逻辑与当两边同为True,才返回Truea and b
or逻辑或只要两边有一个为True,就返回Truea or b
not逻辑非右边值为True,返回False,反则反之not a

注:and操作符拥有短路的功能,即遇到False就直接结束判断

>>> bool(print(1))
1
False
>>> print(1) and print(2)
1
>>> print(1) or print(2)
1
2

4 位运算符

位运算就是将数字看出二进制来进行计算。

  • &(按位与运算符)

    • 语法:a & b

    • 作用:将a, b对应的二进制数的对应位进行与运算

      • 与运算: 有0返回0,全1返回1
    • 例子:

      >>> 25 & 30
      24
      计算过程:
      25 --> 0001 1001
      30 --> 0001 1110
      	0001 1001
       &  0001 1110
       ---------------
       	0001 1000	----> 24
      
  • | (按位或)运算符

    • 语法:a | b

    • 作用:将a, b对应的二进制数的对应位进行或运算

      • 或运算:有1返回1,全0返回0
    • 例子:

      >>> 25 | 30
      31
      计算过程:
      25 --> 0001 1001
      30 --> 0001 1110
      	0001 1001
       |  0001 1110
       ---------------
       	0001 1111	----> 31
      
  • ~(位反运算符)

    • 语法:~a

    • 作用:将a对应的二进制数按位取反

      • 取反:0变1,1变0
    • 例子:

      >>> ~10
      -11
      计算过程:
      10 --> 0000 1010
      
      ~	0000 1010
      ---------------
      	1111 0101  --> 469 ? -11
      

      解释,为什么~10结果是-11而不是469:

      在计算机中符号数有三种表示方式:原码、补码和反码。这三种表示方式都有符号位和数值位两部分,符号位0表示"正",1表示"负",而数值位,表示方式都不一样。在计算机系统中,数值一律使用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

      正数的补码与其原码相同,负数的补码是其原码所有位取反后加一

      1111 0101  
      			原码 --> 469 
      			补码 --> -11
      
  • ^(异或运算符)

    • 语法:a ^ b

    • 作用:将a, b对应的二进制数的对应位进行异或运算

      • 异或运算:相同为0,不同为1
    • 例子

      >>> 5 ^ 9
      12
      计算过程:
      5 --> 0000 0101
      9 --> 0000 1001
      
      	0000 0101
       ^  0000 1001
      --------------
      	0000 1100 ---> 12
      
  • <<(左移运算符)

    • 语法:a << b

    • 作用:将a对应的二进制数向左移动b位,低位补0

    • 例子:

      >>> 3 << 2
      12
      计算过程: 
      3 --> 0000 0011
      
      0000 0011 << 2
      0000 1100 ---> 12
      
  • >>(右移运算符)

    • 语法:a >> b

    • 作用:将a对应的二进制数(补码)向右移动b位,高位补符号位,

    • 例子:

      >>> -3 >> 2
      -1
      
      计算过程:
      -3 --> 1111 1101(补码)
      1111 1101 >> 2
      ---------------
      1111 1111(补码) ----> -1 
      

5 赋值运算符

众所周知,=表示赋值,将=右边的表达式的值,赋给左边

python中赋值运算符是以 = 为基础进行的一些拓展

运算符名称例子说明
+=加赋值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
&=位与赋值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

6 其他运算符

6.1 成员运算符 (innot in)

成员运算符是python中特有的运算符(全小写),用于判断对象是否是某个集合中的元素之一,好用且运行速度快,返回布尔值

运算符描述
in如果在指定的序列中找到值返回True ,否则返回False。
not in如果在指定的序列中没有找到值返回True,否则返回False。

6.2 身份运算符(is not is)

这也是python中特有的运算符

运算符描述
is判断两个标识符是不是引用自同一个对象
not is判断两个标识符是不是引用自不同对象

注:isnot is主要是对判断对象是否为同一个对象类似于id(a) == id(b)、id(a) != id(b)

6.3 三目运算符(三元表达式)

python中的三元表达式同样有自己的特殊,不同与其他语言的 表达式?为真返回:为假返回

python中的格式是:为真时返回 if 表达式 else 为假时返回

7 运算符优先级(从上到下优先级降序)

运算符描述
()括号中的优先运算(最高优先级运算符)
function()函数调用
[star_index : end_index], [start_index : end_index, step]切片
[index]下标
.引用类成员
**指数运算符
~、+(正)、-(负)位反、正负号
*、/、%、//乘、除、取余、取整
+(加)、-(减)加、减
<<、>>位移运算
&位与
^位异或
|位或
>、<、<= 、>=比较运算符
<>、==、!=等于运算符
=、/=、*=、…赋值运算符
is、is not身份运算符
in、not in成员运算符
and、or 和 not逻辑运算符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学编程的小猫猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值