1. 程式人生 > 實用技巧 >Python基本運算子

Python基本運算子

Python基本運算子

目錄

數學運算

運算子 說明 例項 結果
+ 12.45 + 15 27.45
- 4.56 - 0.26 4.3
* 乘,還可以與字串使用,表示將字串重複n次 5 * 3.6
"ABC" * 2
18.0
ABCABC
/ 除法(和數學中的規則一樣) 7 / 2 3.5
// 整除(只保留商的整數部分) 7 // 2 3
% 取餘,即返回除法的餘數 7 % 2 1
** 冪運算/次方運算,即返回 x 的 y 次方 2 ** 4 16

整型和浮點型都屬於數字,彼此可以直接進行數學運算。

+號和*號在字串和列表中也能使用。+號能將多個字串或列表拼接到一起,*號能將字串或列表元素重複n次

x = '胖虎'
s = '吃肉'
print(x + s)
# 胖虎吃肉

l = [1,'a',3]
l2 = ['d','c','e']
print(l + l2)
# [1, 'a', 3, 'd', 'c', 'e']

print(s * 3)
# 吃肉吃肉吃肉

print(l * 3)
# [1, 'a', 3, 1, 'a', 3, 1, 'a', 3]

位運算

Python 位運算子只能用來操作整數型別,它按照整數在記憶體中的二進位制形式進行計算,並不是整數的二進位制形式的運算。

位運算子 說明 使用形式 舉 例
& 按位與 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 位

賦值運算

=:最基本的賦值運算子是等號=,用來將一個表示式的值賦給另一個變數;結合其它運算子,=還能擴展出更強大的賦值運算子。

運算子 說 明 用法舉例 等價形式
= 最基本的賦值運算 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 指的是右移的位數

增量賦值

age += 2  # age=age+2
age -= 2
age **= 2  # age = age ** 2
print(age)

鏈式賦值

x=y=z=10
print(id(x))
print(id(y))
print(id(z))

交叉賦值

# 直接交換兩個變數值,而不用定義第三個變數。
x=10
y=20
x,y=y,x
print(x)
print(y)
# 20 10

解壓賦值

salary = [1.1, 2.2, 3.3, 4.4, 5.5]
mon1=salary[0]
mon2=salary[1]
mon3=salary[2]
mon4=salary[3]
mon5=salary[4]
# 下面的1行賦值等同於上面的5行
mon1,mon2,mon3,mon4,mon5=salary
print(mon1,mon2,mon3,mon4,mon5)

# 變數名多一個不行少一個不行,必須與值一一對應。下面倆都會報錯
mon1,mon2,mon3,mon4=salary
mon1,mon2,mon3,mon4,mon5,mon6=salary

# 可以使用*_來接收其他多餘的值。*號會將多餘的值全部接收到一個列表中,然後複製給_
mon1,mon2,mon3,*_=salary
print(mon1,mon2,mon3)
print(_)
# 1.1 2.2 3.3 

mon1,mon2,*_,mon5=salary
print(mon1)
print(mon2)
print(mon5)
# 1.1 2.2 5.5


# 字典接收的是鍵,可以通過鍵取到值。
dic={"k1":111,"k2":222,'K3':333}
x,y,z=dic
print(x,y,z)
# k1 k2 K3

x,*_=dic
print(x)
# k1

比較運算

比較運算子 說明
> 大於,如果>前面的值大於後面的值,則返回 True,否則返回 False。
< 小於,如果<前面的值小於後面的值,則返回 True,否則返回 False。
== 等於,如果==兩邊的值相等,則返回 True,否則返回 False。
>= 大於等於(等價於數學中的 ≥),如果>=前面的值大於或者等於後面的值,則返回 True,否則返回 False。
<= 小於等於(等價於數學中的 ≤),如果<=前面的值小於或者等於後面的值,則返回 True,否則返回 False。
!= 不等於(等價於數學中的 ≠),如果!=兩邊的值不相等,則返回 True,否則返回 False。
is 判斷兩個變數所引用的物件是否相同,如果相同則返回 True,否則返回 False。
is not 判斷兩個變數所引用的物件是否不相同,如果不相同則返回 True,否則返回 False。

==號同類型資料都可以進行比較。>和<可以比較字串和列表。

邏輯運算子

邏輯運算子 含義 基本格式 說明
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 取反。

在沒有括號“()”的情況下,優先順序:not>and>or。同一優先順序從左至右依次計算。

另外,and 和 or 運算子會將其中一個表示式的值作為最終結果,而不是將 True 或者 False 作為最終結果。

短路運算

and運算只要有一項為False,後面的結果不用判斷,最終結果一定為False。

or運算只要有一項為True,後面的結果不用判斷,最終結果一定為True。

print('ha' and 123)
# 123

print(123 or 'abc')
# 123

身份運算

is比較的是id
==比較的是值

id一樣,值一定一樣。值一樣,id不一定一樣。

成員運算:

判斷值是否在物件中。

  • in 若在,返回True。
  • not in 若不在,返回True。
例:s = '李白蘇軾杜甫'
print('白蘇' in s)
# True
print('李蘇' nor in s)     
#字串‘李蘇’為一個整體,並不包含在s當中,所以返回為True

Python運算子優先順序

以下表格列出了從最高到最低優先順序的所有運算子:

運算子 描述
** 指數 (最高優先順序)
~ + - 按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法減法
>> << 右移,左移運算子
& 位 'AND'
^ | 位運算子
<= < > >= 比較運算子
<> == != 等於運算子
= %= /= //= -= += *= **= 賦值運算子
is is not 身份運算子
in not in 成員運算子
not and or 邏輯運算子