參考鏈接: Python成員資格和身份運算符 | in, not in, is, is not
Python基本運算符?
? ?由?
?YIYIAD 翻譯整理? ?
?注:由于水平有限,歡迎指正。轉載請務必注明出處。?
? 2
? ? 上一篇
? ?下一篇??
? ?什么是操作符??
? 簡單的回答可以使用表達式4 + 5等于9,在這里4和5被稱為操作數(shù),+被稱為操符。 Python語言支持操作者有以下幾種類型。?
? ?算術運算符? 比較(即關系)運算符? 賦值運算符? 邏輯運算符? 位運算符? 會員操作符? 標識操作符??
? 讓我們逐一看看所有的運算符。?
? ?Python算術運算符:?
? 假設變量a持有10和變量b持有20,則:?
? [ 查看示例 ]?
? ?操作符 描述符 例子 + 加法 - 對操作符的兩側增加值 a + b = 30 - 減法 - 減去從左側操作數(shù)右側操作數(shù) a - b = -10 * 乘法 - 相乘的運算符兩側的值 a * b = 200 / 除 - 由右側操作數(shù)除以左側操作數(shù) b / a = 2 % 模 - 由右側操作數(shù)和余返回除以左側操作數(shù) b % a = 0 ** 指數(shù)- 執(zhí)行對操作指數(shù)(冪)的計算 a**b = 10 的冪 20 // 地板除 - 操作數(shù)的除法,其中結果是將小數(shù)點后的位數(shù)被除去的商。 9//2 =? 4 而 9.0//2.0 = 4.0?
? ?Python的比較操作符:?
? 假設變量a持有10和變量b持有20,則:?
? [ 查看示例 ]?
? ?運算符 描述 示例 == 檢查,兩個操作數(shù)的值是否相等,如果是則條件變?yōu)檎妗?(a == b) 不為 true. != 檢查兩個操作數(shù)的值是否相等,如果值不相等,則條件變?yōu)檎妗?(a != b) 為 true. <> 檢查兩個操作數(shù)的值是否相等,如果值不相等,則條件變?yōu)檎妗?(a <> b) 為 true。這個類似于 != 運算符 > 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是,則條件成立。 (a > b) 不為 true. < 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是,則條件成立。 (a < b) 為 true. >= 檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是,則條件成立。 (a >= b) 不為 true. <= 檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是,則條件成立。 (a <= b) 為 true.?
? ?Python賦值運算符:?
? 假設變量持有10和變量b持有20,則:?
? [ 示例 ]?
? ?運算符 描述 示例 = 簡單的賦值運算符,賦值從右側操作數(shù)左側操作數(shù) c = a + b將指定的值 a + b 到? c += 加法AND賦值操作符,它增加了右操作數(shù)左操作數(shù)和結果賦給左操作數(shù) c += a 相當于 c = c + a -= 減AND賦值操作符,它減去右邊的操作數(shù)從左邊操作數(shù),并將結果賦給左操作數(shù) c -= a 相當于 c = c - a *= 乘法AND賦值操作符,它乘以右邊的操作數(shù)與左操作數(shù),并將結果賦給左操作數(shù) c *= a 相當于 c = c * a /= 除法AND賦值操作符,它把左操作數(shù)與正確的操作數(shù),并將結果賦給左操作數(shù) c /= a 相當于= c / a %= 模量AND賦值操作符,它需要使用兩個操作數(shù)的模量和分配結果左操作數(shù) c %= a is equivalent to c = c % a **= 指數(shù)AND賦值運算符,執(zhí)行指數(shù)(功率)計算操作符和賦值給左操作數(shù) c **= a 相當于 c = c ** a //= 地板除,并分配一個值,執(zhí)行地板除對操作和賦值給左操作數(shù) c //= a 相當于 c = c // a?
? 試試下面的例子就明白了所有在Python編程語言可供選擇的賦值運算符:?
? #!/usr/bin/python
a =21
b =10
c =0
c = a + b
print"Line 1 - Value of c is ", c
c += a
print"Line 2 - Value of c is ", c?
c *= a
print"Line 3 - Value of c is ", c?
c /= a?
print"Line 4 - Value of c is ", c?
c? =2
c %= a
print"Line 5 - Value of c is ", c
c **= a
print"Line 6 - Value of c is ", c
c //= aprint"Line 7 - Value of c is ", c?
? 當執(zhí)行上面的程序,它會產(chǎn)生以下結果:?
? Line 1 - Value of c is 31
Line 2 - Value of c is 52
Line 3 - Value of c is 1092
Line 4 - Value of c is 52
Line 5 - Value of c is 2
Line 6 - Value of c is 2097152
Line 7 - Value of c is 99864?
? ?Python位運算符:?
? 位運算符作用于位和位操作執(zhí)行位。假設,如果a =60;且b =13;現(xiàn)在以二進制格式它們將如下:?
? a = 0011 1100?
? b = 0000 1101?
? -----------------?
? a&b = 0000 1100?
? a|b = 0011 1101?
? a^b = 0011 0001?
? ~a? = 1100 0011?
? Python語言支持下位運算符?
? [ 示例 ]?
? ?操作符 描述 示例 & 二進制和復制操作了一下,結果,如果它存在于兩個操作數(shù)。 (a & b) = 12 即 0000 1100 | 二進制或復制操作了一個比特,如果它存在一個操作數(shù)中。 (a | b) = 61 即 0011 1101 ^ 二進制異或運算符的副本,如果它被設置在一個操作數(shù)而不是兩個比特。 (a ^ b) =? 49 即? 0011 0001 ~ 二進制的補運算符是一元的,并有“翻轉”位的效果。 (~a ) =? -61 即 1100 0011以2的補碼形式由于帶符號二進制數(shù)。 << 二進位向左移位運算符。左操作數(shù)的值左移由右操作數(shù)指定的位數(shù)。 a << 2 = 240 即 1111 0000 >> 二進位向右移位運算符。左操作數(shù)的值是由右操作數(shù)指定的位數(shù)向右移動。 a >> 2 = 15 即 0000 1111?
? ?Python邏輯運算符:?
? Python語言支持以下邏輯運算符。假設變量a持有10和變量b持有20則:?
? [ 示例 ]?
? ?運算符 描述 示例 and 所謂邏輯與運算符。如果兩個操作數(shù)都是真的,那么則條件成立。 (a and b) 為 true. or 所謂邏輯OR運算符。如果有兩個操作數(shù)都是非零然后再條件變?yōu)檎妗?(a or b) 為 true. not 所謂邏輯非運算符。用于反轉操作數(shù)的邏輯狀態(tài)。如果一個條件為真,則邏輯非運算符將返回false。 not(a and b) 為 false.?
? ?Python成員運算符:?
? 除了前面討論的運算符,Python成員運算符,在一個序列中成員資格的測試,如字符串,列表或元組。有兩個成員運算符解釋如下:?
? [ 示例 ]?
? ?操作符 描述 示例 in 計算結果為true,如果它在指定找到變量的順序,否則false。 x在y中,在這里產(chǎn)生一個1,如果x是序列y的成員。 not in 計算結果為true,如果它不找到在指定的變量順序,否則為false。 x不在y中,這里產(chǎn)生結果不為1,如果x不是序列y的成員。?
? ?試試下面的例子就明白了所有的Python編程語言提供會員運算符:?
? #!/usr/bin/python
a =10
b =20
list =[1,2,3,4,5];if( a in list ):print"Line 1 - a is available in the given list"else:print"Line 1 - a is not available in the given list"if( b notin list ):print"Line 2 - b is not available in the given list"else:print"Line 2 - b is available in the given list"
a =2if( a in list ):print"Line 3 - a is available in the given list"else:print"Line 3 - a is not available in the given list"?
? 當執(zhí)行上面的程序它會產(chǎn)生以下結果:?
? Line 1 - a is not available in the given list
Line 2 - b is not available in the given list
Line 3 - a is available in the given list?
? ?Python標識運算符:?
? 標識符比較兩個對象的內存位置。兩個運算符標識解釋如下:?
? [ 查看示例 ]?
? ?運算符 描述 例子 is 計算結果為true,如果操作符兩側的變量指向相同的對象,否則為false。 x是y,這里結果是1,如果id(x)的值為id(y)。 is not 計算結果為false,如果兩側的變量操作符指向相同的對象,否則為true。 x不為y,這里結果不是1,當id(x)不等于id(y)。?
? ?試試下面的例子就明白了所有Python編程語言提供的標識運算符:?
? #!/usr/bin/python
a =20
b =20if( a is b ):print"Line 1 - a and b have same identity"else:print"Line 1 - a and b do not have same identity"if( id(a)== id(b)):print"Line 2 - a and b have same identity"else:print"Line 2 - a and b do not have same identity"
b =30if( a is b ):print"Line 3 - a and b have same identity"else:print"Line 3 - a and b do not have same identity"if( a isnot b ):print"Line 4 - a and b do not have same identity"else:print"Line 4 - a and b have same identity"?
? 當執(zhí)行上面的程序它會產(chǎn)生以下結果:?
? Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity?
? ?Python運算符優(yōu)先級?
? 下表列出了所有運算符從最高優(yōu)先級到最低。?
? [ 查看示例 ]?
? ?運算符 描述 ** 冪(提高到指數(shù)) ~ + - 補碼,一元加號和減號(方法名的最后兩個+@和 - @) * / % // 乘,除,取模和地板除 + - 加法和減法 >> << 左,右按位轉移 & 位'AND' ^ | 按位異'或`'和定期`或' <= < > >= 比較運算符 <> == != 等式運算符 = %= /= //= -= += *= **= 賦值運算符 is is not 標識運算符 in not in 成員運算符 not or and 邏輯運算符?
? ?原文:http://www.yiibai.com/python/python_basic_operators.html