Python學習筆記(3):運算子與運算式

來源:互聯網
上載者:User
1. 運算子
運算子 名稱 說明 例子
+ 兩個對象相加 3 + 5得到8。"a" + "b"得到"ab"。
- 得到負數或是一個數減去另一個數 -5.2得到一個負數。50 - 24得到26。
* 兩個數相乘或是返回一個被重複若干次的字串 2 * 3得到6。"la" * 3得到"lalala"。
** 返回x的y次冪 3 ** 4得到81(即3 * 3 * 3 * 3)。
/ x除以y 4 / 3得到1(整數的除法得到整數結果)。4.0 / 3或4 / 3.0得到1.3333333333333333
// 取整餘 返回商的整數部分 4 // 3.0得到1.0
% 模數 返回除法的餘數 8 / 3得到2。-25.5%2.25得到1.5
<< 左移 把一個數的位元向左移一定數目(每個數在記憶體中都表示為位元或位元字,即0或1) 2 <<2 得到8。——2按位元表示10
>> 右移 把一個數的位元向右移一定數目 11 >> 1得到5。——11按位元表示為1011,向右移動1位元後得到101,即十進位的5。
& 按位與 數的按位與 5 & 3得到1
| 按位或 數的按位或 5 | 3得到7
^ 按位異或 數的按位異或 5 ^ 3得到6
~ 按位翻轉 x的按位翻轉是-(x+1) ~5得到-6
< 小於 返回x是否小於y。所有比較子返回1表示真,返回0表示假。這分別與特殊的變數True和False等價。注意,這些變數名的大寫。 5 < 3返回0(即False)而3 < 5返回1(接True)。比較可以被任意串連:3 < 5 < 7返回True。
> 大於 返回x是否大於y 5 > 3返回True。如果兩個運算元都是數字,它們首先被轉換為一個共同的類型。否則,它總是返回False。
<= 小於等於 返回x是否小於等於y x = 3; y = 6; x <= y返回True。
>= 大於等於 返回x是否大於等於y x = 4; y = 3; x >= y返回True。
== 等於 比較對象是否相等 x = 2; y = 2; x == y返回True。x = "str"; y = "stR"; x == y返回False。x = "str"; y = "str"; x == y返回True。
!= 不等於 比較兩個對象是否不相等 x = 2; y = 3; x != y返回True。
not 布爾”非“ 如果x為True,返回False。如果x是False,它返回True。 x = True; not x返回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,x or y返回True,否則它返回y的計算值。 x = True; y = False; x or y返回True。短路計算在這裡也適用。
2. 運算子優先順序

下表運算子是從最低到最高。Python會首先計算表中最下面的運算子,然後再計算表上部的。實際上強烈建議使用圓括弧來分組運算子和運算元,以便明確地指出運算的先後順序,達到易讀。

計算順序:預設地按照運算子優先順序決定,如果您要改變它們的順序,得使用圓括弧,如:(2 + 3) * 4

結合規律:運算子由左向右結合(同一層級的運算子),如:2 + 3 + 4被計算成(2 + 3) + 4

     賦值運算子由右向左結合,如:a = b = c被處理為a = (b = c)

運算子 描述
lambda Lambda運算式
or 布爾”或“
and 布爾”與“
not x 布爾”非“
in,not in 成員測試
is,is not 同一性測試
<,<=,>,>=,!=,== 比較
| 按位或
^ 按位異或
& 按位與
<<,>> 移位
+,- 加法與減法
*,/,% 乘法、除法與取餘
+x,-x 加號或減號
~x 按位翻轉
** 指數
x.attribute 屬性參考
x[index] 下標
x[index:index] 定址段
f(arguments...) 函數調用
(expression,...) 綁定或元組顯示
[expression,...] 列表顯示
{key:datum,...} 字典顯示
'expression,...' 字串轉換
3. 運算式
# 這是一段簡單的運算式範例程式碼# Filename: expression.pylength = 5breadth = 2area = length * breadthprint("Area is", area)print("Perimeter is", 2 * (length + breadth))

輸出結果如下:

Area is 10

Perimeter is 14

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.