程序猿編程課堂 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猿,希望能與大家共同探討,共同進步!歡迎關注我!

謝謝~

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