1.賦值運算子
# 最基本的賦值運算子是等號 = # 運算子 說 明 用法舉例 等價形式 # = 最基本的賦值運算 x = y x = y # += 加賦值 x += y x = x + y # -= 減賦值 x -= y x = x - y # *= 乘賦值 x *= y x = x * y # /= 除賦值 x /= y x = x / y # %= 取余數賦值 x %= y x = x % y # **= 冪賦值 x **= y x = x ** y # //= 取整數賦值 x //= y x = x // y # &= 按位與賦值 x &= y x = x & y # |= 按位或賦值 x |= y x = x | y # ^= 按位異或賦值 x ^= y x = x ^ y # <<= 左移賦值 x <<= y x = x << y,這里的 y 指的是左移的位數 # >>= 右移賦值 x >>= y x = x >> y,這里的 y 指的是右移的位數 n1 = 100 f1 = 25.5 a = b = c = 100 n1 -= 80 #等價于 n1=n1-80 f1 *= n1 - 10 #等價于 f1=f1*( n1 - 10 ) print("n1=%d" % n1) print("f1=%.2f" % f1)
2.邏輯運算子
# 邏輯運算子 含義 基本格式 說明 # and 邏輯與運算,等價于數學中的“且” a and b 當 a 和 b 兩個運算式都為真時,a and b 的結果才為真,否則為假, # or 邏輯或運算,等價于數學中的“或” a or b 當 a 和 b 兩個運算式都為假時,a or b 的結果才是假,否則為真, # not 邏輯非運算,等價于數學中的“非” not a 如果 a 為真,那么 not a 的結果為假;如果 a 為假,那么 not a 的結果為真,相當于對 a 取反, # 例如 p 為真命題,q 為假命題,那么“p且q”為假,“p或q”為真,“非q”為真 age = int(input("請輸入年齡:")) height = int(input("請輸入身高:")) if age>=18 and age<=30 and height >=170 and height <= 185 : print("恭喜,你符合報考飛行員的條件") else: print("抱歉,你不符合報考飛行員的條件") #在 Python 中,and 和 or 不一定會計算右邊運算式的值,有時候只計算左邊運算式的值就能得到最終結果, #另外,and 和 or 運算子會將其中一個運算式的值作為最終結果,而不是將 True 或者 False 作為最終結果, url = "http://c.biancheng.net/cplus/" print("----False and xxx-----") print( False and print(url) ) print("----True and xxx-----") print( True and print(url) ) print("----False or xxx-----") print( False or print(url) ) print("----True or xxx-----") print( True or print(url) )
3.算術運算子
# 運算子 說明 實體 結果 # + 加 12.45 + 15 27.45 # - 減 4.56 - 0.26 4.3 # * 乘 5 * 3.6 18.0 # / 除法 7 / 2 3.5 # // 整除 7 // 2 3 # % 取余 7 % 2 1 # ** 冪運算/次方運算,即回傳 x 的 y 次方 2 ** 4 16 # + 加法運算子 當+用于字串時,它還有拼接字串(將兩個字串連接為一個)的作用 m = 10 n = 97 sum1 = m + n x = 7.2 y = 15.3 sum2 = x + y print("sum1=%d, sum2=%.2f" % (sum1, sum2) ) # - 減法運算子 可以用作求負運算(正數變負數,負數變正數) n = 45 m = -n x = -83.5 y = -x print(m, ",", y) # *乘法運算子 n = 4 * 25 f = 34.5 * 2 print(n, ",", f) # *除了可以用作乘法運算,還可以用來重復字串,也即將 n 個同樣的字串連接起來 str1 = "hello " print(str1 * 4) # / 和 // 除法運算子 #整數不能除盡 print("23/5 =", 23/5) print("23//5 =", 23//5) print("23.0//5 =", 23.0//5) print("-------------------") #整數能除盡 print("25/5 =", 25/5) # /的計算結果總是小數,不管是否能除盡,也不管參與運算的是整數還是小數, print("25//5 =", 25//5) print("25.0//5 =", 25.0//5) print("-------------------") #小數除法 print("12.4/3.5 =", 12.4/3.5) print("12.4//3.5 =", 12.4//3.5)# 當有小數參與運算時,//結果才是小數,否則就是整數 # % 求余運算子 print("-----整數求余-----") print("15%6 =", 15%6) print("-15%6 =", -15%6) print("15%-6 =", 15%-6) print("-15%-6 =", -15%-6) print("-----小數求余-----") print("7.7%2.2 =", 7.7%2.2) print("-7.7%2.2 =", -7.7%2.2) print("7.7%-2.2 =", 7.7%-2.2) print("-7.7%-2.2 =", -7.7%-2.2) print("---整數和小數運算---") print("23.5%6 =", 23.5%6) print("23%6.5 =", 23%6.5) print("23.5%-6 =", 23.5%-6) print("-23%6.5 =", -23%6.5) print("-23%-6.5 =", -23%-6.5) #只有當第二個數字是負數時,求余的結果才是負數,換句話說,求余結果的正負和第一個數字沒有關系,只由第二個數字決定, # %兩邊的數字都是整數時,求余的結果也是整數;但是只要有一個數字是小數,求余的結果就是小數, # ** 次方(乘方)運算子 print('----次方運算----') print('3**4 =', 3**4) print('2**5 =', 2**5) print('----開方運算----') print('81**(1/4) =', 81**(1/4)) print('32**(1/5) =', 32**(1/5))
4.位運算子
#位運算子 說明 使用形式 舉 例 # & 按位與 a & b 4 & 5 # | 按位或 a | b 4 | 5 # ^ 按位異或 a ^ b 4 ^ 5 # ~ 按位取反 ~a ~4 # << 按位左移 a << b 4 << 2,表示整數 4 按位左移 2 位 # >> 按位右移 a >> b 4 >> 2,表示整數 4 按位右移 2 位 #& 按位與運算子 只有參與&運算的兩個位都為 1 時,結果才為 1,否則為 0 # 第一個Bit位 第二個Bit位 結果 # 0 0 0 # 0 1 0 # 1 0 0 # 1 1 1 # &運算子操作的是資料在記憶體中存盤的原始二進制位,而不是資料本身的二進制形式;其他位運算子也一樣 # | 按位或運算子 兩個二進制位有一個為 1 時,結果就為 1,兩個都為 0 時結果才為 0 # 第一個Bit位 第二個Bit位 結果 # 0 0 0 # 0 1 1 # 1 0 1 # 1 1 1 # ^按位異或運算子 參與運算的兩個二進制位不同時,結果為 1,相同時結果為 0 # 第一個Bit位 第二個Bit位 結果 # 0 0 0 # 0 1 1 # 1 0 1 # 1 1 0 # ~按位取反運算子 右結合性,作用是對參與運算的二進制位取反 # <<左移運算子 用來把運算元的各個二進制位全部左移若干位,高位丟棄,低位補 0 print("%X" % (9<<3) ) print("%X" % ((-9)<<3) ) # >>右移運算子 用來把運算元的各個二進制位全部右移若干位,低位丟棄,高位補 0 或 1,如果資料的最高位是 0,那么就補 0;如果最高位是 1,那么就補 1 print("%X" % (9>>3) ) print("%X" % ((-9)>>3) ) #例如,9>>3可以轉換為如下的運算: #>> 0000 0000 -- 0000 0000 -- 0000 0000 -- 0000 1001 (9 在記憶體中的存盤) #----------------------------------------------------------------------------------- # 0000 0000 -- 0000 0000 -- 0000 0000 -- 0000 0001 (1 在記憶體中的存盤) #所以9>>3的結果為 1, #又如,(-9)>>3可以轉換為如下的運算: #>> 1111 1111 -- 1111 1111 -- 1111 1111 -- 1111 0111 (-9 在記憶體中的存盤) #----------------------------------------------------------------------------------- # 1111 1111 -- 1111 1111 -- 1111 1111 -- 1111 1110 (-2 在記憶體中的存盤) #所以(-9)>>3的結果為 -2 #如果被丟棄的低位不包含 1,那么右移 n 位相當于除以 2 的 n 次方(但被移除的位中經常會包含 1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/59873.html
標籤:Python
上一篇:字串型別(string)
下一篇:字串的常用方法
