BOO入門/運算子

维基教科书,自由的教学读本
跳到导航 跳到搜索

BOO入門 > 運算子 (上一章:容器與轉型 下一章:函數)


數值運算[编辑]

名稱 語法範例 註解
a * b
a / b
取餘數 a % b 通常也被稱為 mod 或 modulus
a + b
a - b
次方 a ** b 不要跟位元運算的 Xor ^ 搞混了
位元右移 a >> b
位元左移 a << b
位元運算 And a & b
位元運算 Or a ǀ b
位元運算 Xor a ^ b

數值運算子也可以用在等號前面,語法是這樣的: a <operator>=b,使用時就像這樣:a+=b。 實際上就跟 a = a <operator> b 一樣,以剛剛的例子來說,a+=b 就與 a=a+b 是一樣的。

關係與邏輯[编辑]

名稱 語法範例 註解
小於 a < b
大於 a > b
小於或等於 a <= b
大於或等於 a >= b
等於 a == b
不等於 a != b
邏輯上的而且(and) a and b 使用在 a 與 b 都是 boolean 值時
邏輯上的或(or) a or b 使用在 a 與 b 都是 boolean 值時
邏輯上的相反(Not) not a 使用在 a 是 boolean 值時

型別[编辑]

名稱 語法範例 註解
型別轉換 cast(string, a)
型別轉換 a as string
是否相等或相容於指定型別 a isa string
得到類別型別 typeof(string)
得到變數型別 a.GetType()

Primary[编辑]

名稱 語法範例 註解
存取成員 A.B 第八章-類別將會提到
呼叫函數 f(x) 第七章-函數將會提到
後置加 i++ 參見:前置加減與後置加減的差別
後置減 i-- 參見:前置加減與後置加減的差別
呼叫建構子 o = MyClass() 第八章-類別將會提到

譯註:Primary 不知道該怎麼翻譯,保留不翻。

一元運算[编辑]

名稱 語法範例 註解
負值 -5
前置加 ++i 參見下一節:前置加減與後置加減的差別
前置減 --i 參見下一節:前置加減與後置加減的差別
括號 (a + b)

譯註:Unary 也就是一元運算,你可以參考Unary

前置加減與後置加減的差別[编辑]

在程式裡面使用的時候,前置加減 (++i/--i) 會先施行 i=i+1 或 i=i-1 的動作,然後回傳 i 的新值,而後置加減 (i++/i--) 則是先回傳 i 的值,然後再進行 i=i+1 或 i=i-1 的動作。

// 前置加與後置加
num = 0
for i in range(5):
    print num++
print '---'
num = 0
for i in range(5):
    print ++num

輸出結果

0
1
2
3
4
---
1
2
3
4
5
建議 建議 要使你的程式碼更具可讀性的話,避免使用 ++ 或 --,改使用 i+=1 或 i-=1 。

練習[编辑]

  1. 把你的手放在牆上,然後左腳往後約 3 呎,右腳往後約 2 呎。 (譯註:這應該是作者的玩笑吧~讓你伸展伸展身體~ :D )