python 運算子
阿新 • • 發佈:2018-12-15
算術運算子
下面列出一個表格,將所有的運算子表現出來。
運算子 | 描述 | 例項 |
---|---|---|
+ | 加 - 兩個物件相加 | 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,在後面的學習中會逐漸遇到。