算術運算符: 算術運算符包含: +加法運算、 -減法運算、 *乘法運算、 /精確除法運算、 //地板除法運算、 %求餘運算、 **冪運算符 +加法運算: >>> a=1 >>> b=2 >>> c=a+b >>> c 3 -減法運算: >>> c=1000 >>> a=6000 >>> b=c-a.... ...
算術運算符:
算術運算符包含:
+加法運算、
-減法運算、
*乘法運算、
/精確除法運算、
//地板除法運算、
%求餘運算、
**冪運算符
+加法運算:
>>> a=1 >>> b=2 >>> c=a+b >>> c 3
-減法運算:
>>> c=1000 >>> a=6000 >>> b=c-a >>> b -5000
*乘法運算:
>>> c=22 >>> a=33 >>> b=c*a >>> b 726
/精確除法運算、//地板除法運算:
python的除法是比較精確的,沒有像其他一些語言一樣(其他語言的得出20/6=3),例如:
>>> 20/6 3.3333333333333335 >>> 18/5 3.6 >>> 10/2 5.0
如果要使用“地板除法”(不保留小數),需要使用“//”,地板除法中如果其中一個操作數為負數,結果向負無窮取整
>>> 20//6 3 >>> 18//5 3 >>> 10//2 5
%求餘運算:
返回除法中的餘數結果
>>> 5%2 1
**冪運算符:指數(冪)
>>> 2**3 8 >>> 2**-1 0.5 >>> 3**3 27
邏輯運算符:
邏輯運算符包括:
and與運算,
or或運算,
not非運算
and與運算 :
如果x為False,x and y返回False,
如果x為True,返回y的計算值。本質是,z=True and y =y,如果x是真的話,最終結果取決於y
>>> 0 and 2 0 >>> 1 and 2 2 >>> 1 and 99 99 >>> -1 and 99 99
or 或運算:
如果x為False,返回y的值,
如果x為True,不再判斷y,返回x的值。
not非運算:
“not 表達式” 返回表達式結果的“相反的值”。如果表達式結果為真,則返回false;如果表達式結果為假,則返回true。
>>> not 1 False >>> not 2 False >>> not 0 True >>> not True False >>> not False True
比較運算符(關係運算符):
比較運算符關係運算符包括:
<小於運算符,<=不大於運算符,>大於運算符,>=不小於運算符,==等於運算符,!=運算符
< :
如果左操作數的值小於右操作數的值,返回True,否則返回False
> :
如果左操作數的值大於右操作數的值,返回True,否則返回False
!= :
如果兩個操作數的值不相等,返回True,否則返回False
<= :
如果左操作數的值小於或等於右操作數的值,返回True,否則返回False
>= :
如果左操作數的值大於或等於右操作數的值,返回True,否則返回False
== :
如果兩個操作數的值相等,返回True,否則返回False 。【註意,只比較值是否相同,不計較記憶體地址是否相同】
賦值運算符:
=:將右側操作數的值分配給左側操作數
c = a + b 將 a + b 的運算結果賦值為 c
+=:將右操作數相加到左操作數,並將結果分配給左操作數
c += a 等效於 c = c + a
-=:從左操作數中減去右操作數,並將結果分配給左操作數
c -= a 等效於 c = c - a
*=:將右操作數與左操作數相乘,並將結果分配給左操作數
c *= a 等效於 c = c * a
/=:將左操作數除以右操作數,並將結果分配給左操作數
c /= a 等效於 c = c / a
%=:將左操作數除以右操作數的模數,並將結果分配給左操作數
c %= a 等效於 c = c % a
**=:執行指數(冪)計算,並將值分配給左操作數
c **= a 等效於 c = c ** a
//:運算符執行地板除運算,並將值分配給左操作數
c //= a 等效於 c = c // a
位運算符:
&:
按位與操作
|:
按位或操作
<<:
二進位左移
>>:
二進位右移
^:
二進位異或
~:
~x,返回將x的二進位取反之後的值
成員運算符:
成員運算符包括:in運算符,not in運算符
in:
x in y ,如果在指定的序列y中找到x,則返回 true
,否則返回 false
。
not in :
x not in y ,如果在指定的序列y中找不到x,則返回 true
,否則返回 false
。
身份運算符:
身份運算符包括:is 運算符, is not運算符
身份運算符比較兩個對象的記憶體位置
is :
記憶體位置相同返回True,否則返回False
>>> str1="apple" >>> str2=str1 >>> id(str1) 2590247801216 >>> id(str2) 2590247801216 >>> str2 is str1 True
is not :
記憶體位置不相同返回True,否則返回False
a=1 b=1 c=999999999 d=999999999 print(id(a),id(b),a is b) print(id(c),id(c),c is d) str1="apple" str2="apple" print(id(str1),id(str2),str1 is str2) l1=['a','b','c'] l2=['a','b','c'] print(id(l1),id(l2),l2 is l1)
上述代碼結果:
另外的測試:
>>> a=1000000 >>> b=1000000 >>> id(a) 2590249791600 >>> id(b) 2590249791632 >>> a="str1" >>> b="str1" >>> id(a) 2590249830528 >>> id(b) 2590249830528
這個問題體現緩存技術的使用:為了節省記憶體空間,或者為了節省時間,對於數據是同一份不可變的對象的不同名變數,使用緩存技術可以節約空間,而對於可變對象,如即使初值相同的列表,後面的操作不同為了不互相干擾,所以不使用緩存技術來節約空間。
如何查看緩存設置:待補充。
is 與 == 區別:
引用對象是否為同一個, == 用於判斷引用變數的值是否相等。
運算符優先順序:
運算符的優先順序:
運算符的次序,序號小的優先順序大於序號大的:
建議使用小括弧來指示運算優先順序,避免繁雜記憶。
三元表達式(三元運算符):
格式:條件為真時的結果 if 判定條件 else 條件為假時的結果
>>> a=250 if True else 150 >>> a 250 >>> a=220 if 1<0 else 1 >>> a 1