1. 程式人生 > >python 運算子

python 運算子

算術運算子

下面列出一個表格,將所有的運算子表現出來。

運算子 描述 例項
+ 加 - 兩個物件相加 10+20 輸出結果 30
- 減 - 得到負數或是一個數減去另一個數 10-20 輸出結果 -10
* 乘 - 兩個數相乘或是返回一個被重複若干次的字串 10 * 20 輸出結果 200
/ 除 - x除以y 20/10 輸出結果 2
% 取餘 - 返回除法的餘數 20%10 輸出結果 0
** 冪 - 返回x的y次冪 10**2 輸出結果 100
// 取整除 - 返回商的整數部分 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0

比較運算子

且看下錶: 以下假設變數 a為10,變數 b為20:

運算子 描述 例項
== 等於 - 比較物件是否相等 (a == b) 返回 False。
!= 不等於 - 比較兩個物件是否不相等 (a != b) 返回 true.
> 大於 - 返回x是否大於y (a > b) 返回 False。
< 小於 - 返回x是否小於y (a < b) 返回 true。
>= 大於等於 - 返回x是否大於等於y。 (a >= b) 返回 False。
<= 小於等於 - 返回x是否小於等於y。 (a <= b) 返回 true。

上面的表格例項中,顯示比較的結果就是返回一個true或者false,這是什麼意思呢。就是在告訴你,這個比較如果成立,就是為真,返回True,否則返回False,說明比較不成立。 例子:

>>> a=10
>>> b=20
>>> a>b
False
>>> a<b
True
>>> a==b
False
>>> a!=b
True
>>> a>=b
False
>>> a<=b
True
>>> c="5"   #a、c是兩個不同型別的量,能比較,但是不提倡這麼做。
>>> a>c
False
>>> a<c
True

邏輯運算子

布林型別的變數

所謂布林型別,就是返回結果為1(True)、0(False)的資料變數

布林運算

看下面的表格,對這種邏輯運算子比較容易理解: (假設變數a為10,變數b為20)

運算子 描述 例項
and 布林"與" - 如果x為False,x and y返回False,否則它返回y的計算值。 (a and b) 返回 true。
or 布林"或" - 如果x是True,它返回True,否則它返回y的計算值。 (a or b) 返回 true。
not 布林"非" - 如果x為True,返回False。如果x為False,它返回True。 not(a and b) 返回 false。
  • and and,翻譯為“與”運算,但事實上,這種翻譯容易引起望文生義的理解。先說一下正確的理解。A and B,含義是:首先運算A,如果A的值是true,就計算B,並將B的結果返回做為最終結果,如果B是False,那麼A and B的最終結果就是False,如果B的結果是True,那麼A and B的結果就是True;如果A的值是False ,就不計算B了,直接返回A and B的結果為False. 比如:
4>3 and 4<9,首先看4>3的值,這個值是True,再看4<9的值,是True,那麼最終這個表示式的結果為True.
>>> 4>3 and 4<9
True
4>3 and 4<2,先看4>3,返回True,再看4<2,返回的是False,那麼最終結果是False.
>>> 4>3 and 4<2
False
4<3 and 4<9,先看4<3,返回為False,就不看後面的了,直接返回這個結果做為最終結果。
>>> 4<3 and 4<2
False

前面說容易引起望文生義的理解,就是有相當不少的人認為無論什麼時候都看and兩邊的值,都是true返回true,有一個是false就返回false。根據這種理解得到的結果,與前述理解得到的結果一樣,但是,運算量不一樣哦。

  • or or,翻譯為“或”運算。在A or B中,它是這麼運算的:
if A==True:
    return True
else:
    if B==True:
        return True
    else if B==False:
        return False

上面這段算是虛擬碼啦。所謂虛擬碼,就是不是真正的程式碼,無法執行。但是,虛擬碼也有用途,就是能夠以類似程式碼的方式表達一種計算過程。 看官是不是能夠看懂上面的虛擬碼呢?下面再增加上每行的註釋。這個虛擬碼跟自然的英語差不多呀。

if A==True:         #如果A的值是True
    return True     #返回True,表示式最終結果是True
else:               #否則,也就是A的值不是True
    if B==True:     #看B的值,然後就返回B的值做為最終結果。
        return True
    else if B==False:
        return False

舉例,根據上面的運算過程,分析一下下面的例子,是不是與運算結果一致?

>>> 4<3 or 4<9
True
>>> 4<3 or 4>9
False
>>> 4>3 or 4>9
True
  • not not,翻譯成“非”,竊以為非常好,不論面對什麼,就是要否定它。
>>> not(4>3)
False
>>> not(4<3)
True

關於運算子問題,其實不止上面這些,還有呢,比如成員運算子in,在後面的學習中會逐漸遇到。