什麼是運算符?
我們知道數學裡面有各種運算,比如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
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學習之入門篇(第一章)
程序猿編程課堂:Python學習之入門篇(第二章:變量)
程序猿編程課堂 Python學習之入門篇3:簡單的數據類型
前方有隻程序猿:大家好,我是一隻會寫代碼的IT猿,希望能與大家共同探討,共同進步!歡迎關注我!
謝謝~