python入門之python運算符

  1. 算數運算符: +、 -、 *、 /、 // (地板除) 、%、(取餘)、 **(冪運算)
  2. 比較運算符: > 、< 、 >= 、 <=、 == 、!=
  3. 賦值運算符 =、 +=、 -=、 *= 、/=、 //= 、%=、 **=
  4. 成員運算符 in 、not in
  5. 身份運算符 is 、is not
  6. 邏輯運算符 (and or not)
  7. 位運算符 & 、|、 ^、 <<、 >>、 ~
    算術運算符中的+、-、* 就不說了
    / 的結果是個小數。
res = var1 / var2
res = 8 / 8
print(res)

// (取整數) 兩個數在進行地板除的時候,有一個數是小數,就在最後的結果上加.0
額這裏有個小的結論我說下
** 所有數(指的是整數一個一個的)對n 進行地板除 會話產生n個相同的數**
(1-100) // 10、(1-1000)//10 產生10個相同的數
從0-9
(1-100) // 25、(1-1000)//10 產生25個相同的數
從0-24

n // 2 
0 // 2 0
1 // 2 0
2 // 2 1
3 // 2 1
4 // 2 2
5 // 2 2

0 // 4 0
1 // 4 0
2 // 4 0
3 // 4 0
4 // 4 1
...
...
4個1 4個2 4個3
res = var1 // var2
res = 8 // 8
res = 28.7 // 5
print("<===>")
res = 28 // 5.3
print(res)

%取餘運算
任意數 % n 取餘 值得範圍是多少? 0 ~ (n-1)

對於任意數n
0 % 2  0
1 % 2  1
2 % 2  0
3 % 2  1
4 % 2  0
餘數是0和1

0 % 3 0
1 % 3 1
2 % 3 2
3 % 3 0
4 % 3 1
5 % 3 2
6 % 3 0
餘數是0 1 2 


0 % 5 0
1 % 5 1
2 % 5 2
3 % 5 3
4 % 5 4
5 % 5 0
...
...
餘數是0 1 2 3 4 
 *****  *****
"""
res = var1 % var2
res = 99 % 7
# -1 + 7 = 6 (餘數)
res = -99 % 7 
# 1 + (-7) = -6 (餘數)
res = 99 % -7
print(res)

** var1 * var1 * var1 777 **是所有運算符 優先級最高的一個

res = var1 ** 3
print(res)

(2)比較運算符: > 、< 、>= 、<= 、== 、!=
‘’‘比較運算符只會產生2個結果 要麼True 要麼False’’’
<=和>= 只要滿足一個條件即爲真

# > 
var1 = 15
var2 = 18
res = var1 > var2
print(res)
# <
res = var1 < var2
print(res)
# >=  只要滿足一個條件即爲真
res = var1 >= 15
print(res)
# <=
res = var1 <= 15
print(res)
# == *****
res = var1 == var2
print(res)

# != *****
res = var1 != var2
print(res)
  1. 賦值運算符 =、 +=、 -=、 *= 、/=、 //= 、%=、 **=
    = 所有運算符當中 等號的優先級最低
var1 = 9
var2 = 5
res = var1
# print(res)

# +=
# var1 += var2 
'''var1 = var1 + var2'''
# print(var1)

# -=
# var1 -= var2
'''var1 = var1 - var2'''
# print(var1)

# *=
# var1 *= var2
'''var1 = var1 * var2'''
# print(var1)

# /=
# var1 /= var2
'''var1 = var1 / var2'''
# print(var1)

# //=
# var1 //= var2
'''var1 = var1 // var2'''
# print(var1)

# %=
# var1 %= var2
'''var1 = var1 % var2'''
# print(var1)

# **=
var1 **= var2
'''var1 = var1 ** var2'''
print(var1)

4.成員運算符(判斷a是否是b的一個成員) in 、not in 針對於容器類型數據
str 字符串需要是一個連續的片段

strvar = "如果遇到你是一種錯,我寧願一錯再錯"
res = "你" in strvar
res = "遇到" not in strvar
res = "我一" in strva
print(res)

list tuple set

listvar = ["周全","陳鵬","陳根基"]
res = "周全" in listvar
print(res)

tuplevar = "王新元","葉欣榮","秋波好","劉鵬程"
res = "葉欣榮" not in tuplevar
print(res)

setvar = {'周立飛','高輝'}
res =  "高輝" in  setvar
print(res)

dict 注意 : 判斷的是鍵 不是值

dictvar = {"zdx":"無用","gss":"石阡","mlh":"杜十娘"}
res = "杜十娘" in dictvar
res = "mlh" not in dictvar
print(res)

身份運算符 is is not
var1 = 56
var2 = 56
res = var1 == var2 (判斷兩個值是否相等)
res = var1 is var2 (判斷兩個值得地址是否相等)

# Number
# int -5 ~ 正無窮
var1 = 56
var2 = 56
res = var1 is var2
print(res)

# float 非負數
var1 = -99
var2 = -99
print(var1 is not var2)

# bool 
var1 = True
var2 = False
print(var1 is var2)

# complex
var1 = 5+6j
var2 = 5+6j
print(var1 is not var2)

# 容器類型數據  () 相同的字符串 剩下所有的容器類型數據地址都不一樣
var1 = ()
var2 = ()
print(var1 is  var2)
var1 = "機"
var2 = "機"
print(var1 is not var2)

容器類型數據 () 相同的字符串 剩下所有的容器類型數據地址都不一樣

var1 = ()
var2 = ()
print(var1 is  var2)
var1 = "機"
var2 = "機"
print(var1 is not var2)

邏輯運算符 (and or not)
(1)and 邏輯與
全真則真,一假則假

res = True and True 
print(res)
res = False and True
print(res)
res = False and False
print(res)
res = True and False
print(res)

(2)or 邏輯或
‘’‘全假則假,一真則真’’’

res = True or True
res = True or False
res = False or True
res = False or False
print(res)

(3)not 邏輯非 相當於取反

res = not True
res = not False
print(res)

(4)邏輯短路
False and 布爾. 在and左邊如果是False–>邏輯短路, 右側不執行
True or 布爾, 在or左邊如果是True --> 邏輯短路, 右側不執行
在開發當中 ,當成"開關"使用

False and  print(123) #邏輯短路
True or print(456)  #邏輯短路
True and print(789)

邏輯運算符的優先級
(這個是xiao kuo hao) > not > and > or

# (1)
res = 5 or 6 and 7
print(res)
# (2)
res = (5 or 6) and 7
print(res)
# (3) 
res = not(5 or 6) and 7
print(res) # False

數據類型判斷isinstance
isinstance(要判斷的值,(數據類型1,數據類型2,數據類型3,…))
最終的返回值要麼是True 要麼是False
int float bool complex str list set tuple dict
對於容器類型的數據只要類型元組裏面含有這個數據類型,即爲真

var1 = 6
res = isinstance(var1,int)
print(res)
var2 = "你好"
res = isinstance(var2,(set,list,tuple))
print(res)
  1. 位運算符 & 、|、 ^、 <<、 >>、 ~
# 按位與 &
var1 = 19
var2 = 15
res = var1 & var2
print(res)
"""
	000000010011
	000000001111
	000000000011
"""
# 按位或 |
res = var1 | var2
print(res)
'''
	000000010011
	000000001111
	000000011111
'''

# 按位異或 ^ "如果兩者不相同,返回真,兩者相同返回假
res = var1 ^ var2
print(res)
'''
	000000010011
	000000001111  
    000000011100
'''

# <<  相當於 5 乘以 2的2次冪
res = 5 << 2
res = 4 << 3
print(res) # 20 
"""
000000101
000010100
"""

# >>  相當於 5 除以 2的1次冪
res = 5 >> 1
print(res)
"""
0000101
0000010
"""

# ~ 按位非 (針對於補碼來進行操作 ,連符號位都要改變) 公式 -(n+1)
res = ~19
print(res)

所有運算符的優先級:
(1) 小括號的優先級最高 () => (3+3)*5
(2)
一元運算符:同一時間操作一個數的 ( ~ , - ) -6
二元運算符: 同一時間操作二個數的

** 符號優先級最高
= 符號優先級最低

整體來說,一元運算符優先級大於二元運算符 , ** 除外
乘,除 > 加減
() > not > and > or
(<< >> ) > & > ^ > |

除此之外剩下的運算符參考以下:
**

算術運算符 > 位運算符 > 比較運算符 > 身份運算符 > 成員運算符 > 邏輯運算符

**
賦值運算符單獨拿出來 , 用來把最後的結果進行賦值的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章