程序猿编程课堂 Python学习之入门篇4:运算符

​什么是运算符?

我们知道数学里面有各种运算,比如1+2、3-2、4*5、8/4等等,其中加、减、乘、除都叫做运算符,当然在Python编程中不仅仅只有这四种运算符,主要归类如下:

  • 算术运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符

本章节我们将介绍前5个运算符,成员运算符和身份运算符将在后续章节学习复杂数据类型的时候再做介绍。

 

算术运算符

除了常见的加(+)、减(-)、乘(*)、除(/),Python编程中还有

  • 取模(求余)运算符是“%”,即返回除法的余数,比如13 % 5 = 3(13除5等于2余数为3);
  • 幂运算,其运算符是“**”,比如2 ** 3 = 8(2的三次方);
  • 取整除,其运算符是"//",比如8 / / 3 = 2 (8除以3约等于2.667,取整便是2)。

我们用下面这个例子在熟悉下Python的算术运算符:

print(13 / 5)
print(13 % 5)
print(2 ** 3)
print(8 // 3)

输出:

2.6
3
8
2

 

赋值运算符

前面章节我们学过变量,那么变量就要给它赋值,比如num=123,我们知道num是变量,那么“=”便是赋值运算符,就是赋予变量num的值为123。除了=这个最基本的赋值运算符外,Python还有以下这几种赋值运算符:

  • += 加法赋值运算,比如num += 123 等效 num = num + 123;
  • -= 减法赋值运算,num -= 123 等效 num = num - 123;
  • *= 乘法赋值运算,num *= 123 等效 num = num *123;
  • /= 除法赋值运算,num /= 123 等效 num = num / 123;
  • %= 取模赋值运算,num %= 123 等效 num = num % 123;
  • **= 幂赋值运算,num **= 123 等效 num = num ** 123;
  • //= 取整除赋值运算,num //= 123 等效 num = num // 123;

动手试下这个例子:

num = 100
num += 100
print(num)

num /= 5
print(num)

num %= 9
print(num)

num = 4
num **= 2
print(num)

num //= 7
print(num)

输出:

200
40.0
4.0
16
2

 

关系运算符

关系运算即比较运算,返回的值是bool型,主要包括:

  • == 等于,即比较两个值是否相等;
  • != 不等于,比较两个值是否不相等,以下类似;
  • > 大于
  • < 小于
  • >= 大于等于
  • <= 小于等于

同样用个例子看下:

num1 = 123
num2 = 100
print(num1 == num2)
print(num1 != num2)
print(num1 > num2)
print(num1 <= num2)

输出:

False
True
True
False

 

逻辑运算符

Python中逻辑运算主要有3个,主要是针对不同布尔值进行逻辑运算。

(1)and 逻辑与, x and y,如果x为False或者0,则返回False或0,如果x为True或者大于0,则返回y值,例子如下:

x = False
y = 10
print(x and y)

x = 0
y = 10
print(x and y)

x = 100
y = 10
print(x and y)

输出:

False
0
10

 

(2)or 逻辑或,x or y,如果x为True或者大于0则返回x的值,否则返回y的值

例子如下:

x = 100
y = 10
print(x or y)

x = False
y = 10
print(x or y)

输出:

100
10

 

(3)not 逻辑非,not x,非操作,x为True则返回False,为False则返回True

例子如下:

x = False
print(not x)

x = 100
print(not x)

输出:

True
False

 

位运算符

位运算是基于计算机二进制来计算的,所以首先你要了解二进制,不了解的同学请先去认真了解下二进制。

比如x = 20,则其二进制为10100。

位运算主要有:

  • & 按位与,两个二进制数的相同位都为1则计算结果该位即为1,否则为0;
  • | 按位或,两个二进制数的相同位只要有一个是1,则该位结果即为1,否则为0;
  • ^ 按位异或,两个二进制数的相同位为不同值时,该位计算结果为1,否则为0;
  • ~ 按位取反,对某个二进制数的各个位取反,1变成0,0变成1,~x相当于 -x-1
  • << 按位左移,对某个二进制数的所有位向右移动指定的位数,超出左边的高位去掉,低位补0;
  • >> 按位右移,对某个二进制数的所有位向左移动指定的位数,超出右边的位数去掉。

我们看个例子:

x = 20 # 二进制为 0001 0100
y = 46 # 二进制为 0010 1110
z = 0
z = x & y # 按位与 应为 0000 0100 即十进制的4
print(z)

z = x | y # 按位或 应为 0011 1110 即十进制的62
print(z)

z = x ^ y # 按位异或 应为 0011 1010 即十进制58
print(z)

z = ~x # 按位取反,则为 1110 1011 即有符号十进制-21
print(z)

z = x << 2 # 0101 0000
print(z)

z = x >> 2 # 0000 0101
print(z)

输出:

4
62
58
-21
80
5

 

运算符优先级

跟数学运算一样乘除优先于加减,Python中的运算都是有优先级,即什么先算什么后算都是有规定的。

我们从运算优先级最高到低逐一排序:

​好了,本章就介绍到这里,还是强调下多上手练习!

上一章:程序猿编程课堂 Python学习之入门篇3:简单的数据类型

 

前方有只程序猿:大家好,我是一只会写代码的IT猿,希望能与大家共同探讨,共同进步!欢迎关注我!

谢谢~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章