Python 基礎之python運算符

一.運算符

 1.算數運算符 + - * / // % **

var1 = 5
var2 = 8

#(1)  +
res = var1 + var2
print(res)

# (2)  -  
res = var1 - var2
print(res)

# (3) *
res = var1 * var2
print(res)

# (4) / ,結果必定是小數)
var1 = 8
var2 = 2
res = var1 / var2
print(res)

# (5) // 地板除 (整除)
var1 = 8
var2 = 2
res = var1 // var2
print(res)

# 若是相除的兩個含有小數,那麼就在結果上加上.0
var1 = 8.0
var2 = 2
res = var1 //var2
print(res)

#(6) % 取餘
print("<=================>")
var1 = 7
var2 = 4
res = var1 % var2
print(res)

print("<================>")
var1 = -7
var2 = 4
res = var1 % var2
print(res) #1
# -3 +4 =1

print("<===================>")
var1 = 7
var2 = -4
res = var1 % var2
print(res) #-1
# 3-4 = -1

# (7) ** 冪運算
var1 = 3
res = var1 ** 3
print(res)python

 

2.比較運算符 > < >= <= == !=

#(1) >  大於 
var1 = 10
var2 = 20
res = var1 > var2
print(res)

# (2) <  小於
var1 = 10
var2 = 20
res = var1 < var2
print(res)

#(3) >=  大於等於
var1 = 20
var2 = 20
res = var1 >= var2
print(res)

#(4) <=  小於等於
var1 = 20
var2 = 20
res = var1 <= var2
print(res)

#(5) ==  等於
var1 = 14
var2 = 13
res = var1 == var2
print(res)
 
'''
2個等號,不是一個等號,一個等號是在作變量的賦值,兩個是比較是否相同
if var1 == var2
   print(123)
'''

# (6) !=  不等於
var1 = 14
var2 = 13
res = var1 != var2
print(res)spa

 

3.賦值運算符 = += -= *= /= //= **=

 

# (1)  =  將右邊的值賦值給左側
var1 = 19
var2 = 18
var2 = var1
print(var2)

# (2)  +=  加等於
var1 +=var2
#var1 = var1 + var2  var1 = 19 + 20 = 39
print(var1)

#(3)  -=  減等於
var1 -= var2
#var1 = var1 - var2
print(var1)


#(4) *=  減等於
var1 *= var2
#var1 = var1 * var2
print(var1)

#(5)  /=  除等於
var1 /= var2
# var1 = var1 / var2
print(var1)

# (6)  //=  整除等於
var1 //= var2
# var1 = var1 // var2
print(var1)


#(7)  %=  取餘等於
var1 %= var2
# var1 = var1 % var2
print(var1)

# (8)  **=  冪等於
var1 **= var2
# var1 = var1 ** var2
print(var1)內存

4.成員運算符 in not in (針對容器類型)

 

""" 若是是字符串,必須是一個連續的片斷才能判斷成功"""

# (1) 對於str
# str
strvar = "英雄愛江山,更愛漂亮人"
res = "愛江山" in strvar
print(res)


# (2) 對於list  tuple  set
listvar = [1,2,34,56,7]
res = 2 in listvar
print(res)

res = 55 not in listvar
print(res)

tuplevar = (323,31231,32131,3121)
res = 432 not in tuplevar
print(res)

setvar = {(1,2,3),(4,5,6),7}
res = (1,2,3) in setvar
print(res)

#(3)對於dict (in  not in 判斷字典是字典的鍵)
dictvar = {"hxd":"","sch":""}
res  = "" not in dictvar  #True 由於大不在鍵裏,因此是not in
print(res)
res = "hxd" in dictvar
print(res)

res = "aaa" not in dictvar
print(res)字符串

5.身份運算符 is is not

(檢測兩個數據在內存當中是不是同一個值)class

var1 = 6
var2 = 6
print(id(var1),id(var2))

var1 = ""
var2 = "很差"

#is 用來判斷2個變量的地址是否一致
res = var1 is var2
print(res)

res = var1 is not var2
print(res)

# var1 == var2 var1 is var2 區別

一個是在比較兩個值是否相同
一個是在比較兩個值地址是否相同容器

6.邏輯運算符 and or not

# (1) and 邏輯與
'''
全真則真,一假則假
'''
res = True and True
print(res)
res = True and False
print(res)
res = False and True
print(res)
res = False and False
print(res)
#第一個爲真,其餘都爲假

#(2) or 邏輯或
''' 全假則假,一真則真'''
res = True or True
res = True or False
res = False or False
res = False or True
print(res)


# (3) not 邏輯非
''' 真變假 假變真'''
res = not False
res = not True
print(res)

#(4)邏輯短路 (後面的代碼就不走了)
'''
#兩種狀況
res = False and 布爾值
res = True or 布爾值
'''

#print 默認返回一個None None的布爾值是假
# res = False and print(1)
print("============================")
res = True and print(2)
print(res)
print("=========================")
res = True or print(3)   #當最後結果爲真的時候就不會返回None
print(res)
print("===========================")
res = False or print(4)
print(res)
print("==========")
res = True and 3
print(res)
# 邏輯運算符優先級
## python 語言支持邏輯運算符, 如下假設變量a 10, b20:
##運算符  邏輯表達式  描述 實例
##and  x and y    布爾"" - 若是 x Falsex and y 返回 False,不然它返回 y 的計算值。    (a and b) 返回 20
##or   x or y 布爾"" - 若是 x True,它返回 x 的值,不然它返回 y 的計算值。 (a or b) 返回 10
##not  not x  布爾"" - 若是 x True,返回 False 。若是 x False,它返回 True。   not(a and b) 返回 False

''' () > not > and > or '''
# (5+6)*37
res = 5 or 6 and 7
print("5 or 6 and 7等於:",res)
#5 or 7 => 7

res = not (5 or 6)and 7
#| 5 or 6=> 5 | not 5 => False | False and 7 => False
print("not (5 or 6)and 7 等於:%s" %(res))

res = 5>6 or 7<8 and 9>10 or 11<12
print(res)
'''
# res = 5>6 or 7<8 and 9>10 or 11<12
#下面是解析:
False or True and False or True
False or False or True
False or True => True
'''

print(res)

'''
有一種狀況不用考慮and和or優先級問題,
就是or 端口,好比 True or .......=> 結果必定爲Ture
'''

# #數據類型的判斷 isinstance
'''
isinstance (要判斷的數據,判斷的類型)要麼返回真, 要麼返回假
isinstance (要判斷的數據,(元組,放在各類類型,知足一個條件即爲真))

'''
# 5 int 類型的嗎?
res = isinstance(5,int)
print(res)

res = isinstance("2233",list)
print(res)

# 有一個類型知足 返回真 一個都不知足 返回假
res = isinstance(5,(int,list,tuple,str))
print(res)變量

7.位運算符 & | ~ ^ << >>

var1 = 19
var2 = 15
#(1)  & 按位與
res = var1 & var2
print(res)
"""
000...10011
000...01111
000...00011
"""

# (2) | 按位或
res = var1 | var2
print(res)

"""
000...10011
000...01111
000...11111
"""

#(3) ^ 按位異或
res = var1 ^ var2
"""
000...10011
000...01111
000...11100
"""
print(res)

#(4) << (左移  右邊的值至關於乘以2的幾回冪 n<<m 至關於n2m次冪
res = 5 << 1
res = 5 << 2
print(res)
'''
000...101
000...1010
'''

# (5) >> 右移 (右移 右邊的值至關於除以2的幾回冪 n <<m 至關於n2m次冪)
res = 5 >>1 #5 // 2 1次冪 => 2
res = 5 >>2 #5 // 2 2次冪 => 1
res = 5 >>3 #5 // 2 3次冪 => 0
print(res)

'''
000...101
000....10 => 2
000....01 => 1
'''

#(6)  ~ 按位非 (按位非 操做的二進制的補碼 對二進制的每一位進行取反,包括符號位) 公式:-(n+1)
res = ~19
print(res)
'''
000...10011 (補碼)
111...01100 (按位非)

#給補碼求原碼
111.。。01100

100...10011 (反碼)
100...10100  (原碼= 反碼+1)
十進制 => -20
'''
res = ~(-19)
print(res)
'''
1000...10011 (原碼)
1111...01100  (反碼)
1111...01101  (補碼)
#如今 進行按位非
0000...10010
由於高位都是0是正數
原碼=反碼=補碼
0000...10010 (原碼)數據類型

 

二.運算符的優先級

() 括號優先級最高
** 優先級其次
= 優先級最低

一元元算符:同一時間只操做一個數字的(- ~)
二元運算符:同一時間能操做二個數字的(+,-,...)
~19+5

通常來講,一元運算符大於二元運算符的優先級

+ - * /   =>  * / 大於 + -
() not and or =>  not > and  > or

若是都是二級運算符:
算數運算符 > 位運算符 > 比較運算符 > 身份運算符 > 成員運算符 > 邏輯運算符
賦值運算符 做爲最後等號右邊的值算好後進行賦值

res = 5+5 << 6 // 3 is 40 and True
print(res)

'''
5+5 << 2 is 40 and True
10 <<2 is 40 and True
40 is 40 and True
True and True
True
'''二進制

相關文章
相關標籤/搜索