文章目錄
- 1、運算子:
- 2、運算子與用法:
- 3、運算子優先順序:
- 4、改變計算順序:
- 5、結合規律:
- 6、運算式:
四、運算子和運算式
大多數語句(邏輯行)都包含運算式。一個簡單的運算式例子如2 + 3。一個運算式可以分解為運算子和運算元。
運算子 的功能是完成某件事,它們由如+這樣的符號或者其他特定的關鍵字表示。運算子需要資料來進行運算,這樣的資料被稱為 運算元 。在這個例子中,2和3是運算元。
1、運算子:
我們可以互動地使用解譯器來計算例子中給出的運算式。例如,為了測試運算式2 + 3,使用互動帶提示符的Python解譯器:
>>> 2 + 3
5
>>> 3 * 5
15
>>>
2、運算子與用法:
大多數運算子與C/C++類似,這裡之提出不同的運算子:
** |
冪 |
返回x的y次冪 |
3 ** 4得到81(即3 * 3 * 3 * 3) |
// |
取整除 |
返回商的整數部分 |
4 // 3.0得到1.0 |
not |
布爾“非” |
如果x為True,返回False。如果x為False,它返回True。 |
x = True; not y返回False。 |
and |
布爾“與” |
如果x為False,x and y返回False,否則它返回y的計算值。 |
x = False; y = True; x and y,由於x是False,返回False。在這裡,Python不會計算y,因為它知道這個運算式的值肯定是False(因為x是False)。這個現象稱為短路計算。 |
or |
布爾“或” |
如果x是True,它返回True,否則它返回y的計算值。 |
x = True; y = False; x or y返回True。短路計算在這裡也適用。 |
3、運算子優先順序:
運算子 |
描述 |
lambda |
Lambda運算式 |
or |
布爾“或” |
and |
布爾“與” |
not x |
布爾“非” |
in,not in |
成員測試 |
is,is not |
同一性測試 |
<,<=,>,>=,!=,== |
比較 |
| |
按位或 |
^ |
按位異或 |
& |
按位與 |
<<,>> |
移位 |
+,- |
加法與減法 |
*,/,% |
乘法、除法與取餘 |
+x,-x |
加號或減號 |
~x |
按位翻轉 |
** |
指數 |
x.attribute |
屬性參考 |
x[index] |
下標 |
x[index:index] |
定址段 |
f(arguments...) |
函數調用 |
(experession,...) |
綁定或元組顯示 |
[expression,...] |
列表顯示 |
{key:datum,...} |
字典顯示 |
'expression,...' |
字串轉換 |
4、改變計算順序:
運算子優先順序表決定了哪個運算子在別的運算子之前計算。然而,如果要改變它們的計算順序,可以使用圓括弧。例如,要在一個運算式中讓加法在乘法之前計算,那麼就得寫成類似(2 + 3) * 4。
5、結合規律:
運算子通常由左向右結合,即具有相同優先順序的運算子按照從左向右的順序計算。例如,2 + 3 + 4
被計算成(2 + 3) + 4
。一些如賦值運算子那樣的運算子是由右向左結合的,即a = b = c
被處理為a = (b = c)
。
6、運算式:
例如:
# Filename: expression.py length = 5breadth = 2 area = length * breadthprint('Area is', area)print('Perimeter is', 2 * (length + breadth))
輸出:
C:\Users\Administrator>python D:\python\expression.py
Area is 10
Perimeter is 14
以上程式實現了求矩形的面積和周長
我們注意到:儘管我們沒有在'Area is'
和變數area
之間指定空格,Python自動在那裡放了一個空格,這樣我們就可以得到一個清晰漂亮的輸出,而程式也變得更加易讀(因為我們不需要擔心輸出之間的空格問題)。