首頁 >後端開發 >Python教學 >python常用運算子有哪些?

python常用運算子有哪些?

青灯夜游
青灯夜游原創
2020-04-21 16:27:3423133瀏覽

和其他大多數的語言一樣,python 中常用的操作符也有算術運算符、比較操作符、邏輯操作符,但是又有一些差別,以下將詳細介紹。

python常用運算子有哪些?

1. 算術運算子

和其他大多數的語言一樣,python 也有(加)、-(減)、*(乘)、/(除)、%(取餘)這5 個運算符,除此之外還有兩個特殊的運算符,分別是//(整除)和* *(冪運算符,或稱為乘方運算符)。

這裡, 、-、* 的功能和計算機都一樣,不再贅述了。

% 運算子對浮點數也有效,例如:

>>> 3.75 % 0.5
0.25
>>> 3.75 % 2
1.75
>>>

** 運算子是進行冪(乘方)運算的,例如:

>>> 3**2
9
>>> 2**3
8
>>>

需要注意的是** 運算子和正負號( 、-)之間的優先權關係,** 比其左側的正負號優先權高,比其右側的正負號優先權低。或者直接就可以認為 ** 運算子比正負號優先級高,因為正負號在其右側時,兩個符號在一起,總不能把正負號去掉吧。例如:

>>> -3**2
-9
>>> 3**-2
0.1111111111111111
>>>

需要強調和區別的是 / 和 // 這兩個除運算子。 python 2.7 中,/ 對於兩個整數相除來說是整除,計算結果只留下整數部分,而小數部分沒有了,例如:

>>> 3/2
1
>>>

如果想要執行普通的除法,即實現保留計算結果的小數部分,可以用浮點數進行運算,例如:

>>> 3.0/2
1.5
>>> 3/2.0
1.5
>>> 3/2.
1.5
>>> 3.0/2.0
1.5
>>>

而在python 3 中,/ 有所改變,不管是整數除法還是浮點數除法,執行的都是浮點數除法,也就是可以保留計算結果的小數部分。

同時,在python 2 中實作保留計算結果的小數部分的另一個方法是,在程式前加上一句from __feture__ import division 並執行該語句(語句中的__ 為兩個底線),例如:

>>> from __future__ import division
>>> 3/2
1.5
>>> 5/4
1.25
>>>

此時的除法運算和python 3 中除法運算已經是一致的了。

在python 中也提供了// 這個整除運算符,它做的是整除,而且對浮點數執行的也是整除,例如:

>>> 3//2
1
>>> 3.0//2.0
1.0
>>> 5//2.0
2.0
>>>

#2 . 比較運算子

和其他大多數的語言一樣,python 的比較運算子包括、>=、==、!=。比較運算子根據表達式的值的真假傳回布林值 True 或 False。例如:

>>> 3 < 4
True
>>> 3 > 4
False
>>> 3 == 4
False
>>> 3 != 4
True
>>>

3. 邏輯運算子

#邏輯運算子就是我們常說的與、或、非,在python 裡分別表示為and、or、not。

使用邏輯運算子可以將任意的表達式連接在一起,並且得到一個布林值。例如:

>>> 3 < 4 and 3 > 4
False
>>> 3 < 4 or 3 == 4
True
>>> not 3 < 4
False
>>>

在使用邏輯運算子時,最需要注意的一點是短路邏輯(或稱為惰性求值),它表達的意思是:邏輯運算是自左向右邊進行的,如果左邊已經決定結果,就不會去做右邊的計算。具體的表示如下:

  • 對於x and y,如果x 為假,則立刻回傳x 的值,而不用去執行y;如果x 為真,則傳回y 的值

  • 對於x or y,如果x 為真,則立刻回傳x 的值,而不用去執行y;如果x 為假,則傳回y 的值

例如:

>>> a
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    a
NameError: name &#39;a&#39; is not defined

>>> 0 and a
0

>>> 0 or a
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    0 or a
NameError: name &#39;a&#39; is not defined

>>> 6 and a
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    6 and a
NameError: name &#39;a&#39; is not defined

>>> 6 or a
6
>>>

由於我們事先沒有定義變數a,所以執行a 時是會報錯的。

  • 對於0 and a,由於先判斷0 為假(程式語言中一般0 都表示假,非0 代表真),此時已經能夠決定整個結果是假,所以會直接回0 而不去執行a,因而不會報錯。

  • 對於 0 or a,先判斷 0 為假,此時並不能決定整個結果是真是假,所以會繼續去執行 a,因而就會報錯。

  • 對於 6 and a,先判斷 6 為真,此時並不能決定整個結果是真是假,所以會繼續去執行 a,因而就會報錯。

  • 對於 6 or 啊,由於先判斷 6 為真,此時已經能夠決定整個結果是真,所以會直接返回 6 而不去執行 a,因而不會報錯。

總結:運算子的優先順序

#下面我們再來總結運算子的優先權高低,見下圖:

python常用運算子有哪些?

推薦學習:Python影片教學

#

以上是python常用運算子有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn