Python基本運算子
阿新 • • 發佈:2020-11-19
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 | 邏輯運算子 |