Python基礎-對象/運算符(2)

對象:

py是一門面向對象的語言,在程序運行時,所有的數據都是存儲在內存當中再去運行的。對象就是內存中專門用來存儲數據的一塊區域。對象實際上就是一個容器,專門用來存儲數據。數值,字符串,布爾值,None都是對象。對象分爲可變對象和不可變對象,可變僅針對值。

對象結構:

每個對象都要保存三種數據.

  • id(標識):
    id用來標識對象的唯一性,每個對象都有唯一的id。可以通過id()函數查看對象的id,py中id就是對象的內存地址,對象一旦創建,其id值永遠不會改變。
  • type(類型)
    用來標識當前對象所屬的類型,類型決定了對象擁有哪些功能,可以通過type()函數查看對象的類型。py是一門強類型語言,對象一旦創建,類型不可以修改。
    -value(值)
    值就是對象中存儲的具體的數據,可變對象的值可以改變。
可變對象:

列表就是一個可變對象,我們對列表的操作都是通過變量去修改對象的值,這種操作不會改變變量所指向的對象。

list=[1,3,'w']
print(id(list)) #2468798735816
list[0]=2
print(id(list)) #2468798735816
list=[3,5,1]
print(id(list)) #2468798716936
變量和對象區別

對象並沒有直接存儲在變量中,變量更像對象的別名,變量中存儲的是對象id也就是內存地址。當我們使用變量時,實際上就是通過對象id查找對象。
變量中保存的對象,只有在爲變量重新賦值時纔會改變。變量和變量之間是相互獨立的,修改一個變量不會影響另一個變量。

注意:

當通過變量給變量賦值時,其所存儲的對象id時一樣的。也可以說,這兩個變量指向同一個對象。

a=6
b=a
print(id(a))
print(id(b))

運算符:

運算符可以對一個值或者多個值進行運算或者操作

運算符分類:
  • 算數運算符
  • 賦值運算符
  • 比較運算符(關係運算符)
  • 邏輯運算符
  • 條件運算符(三元運算符)
算數運算符
  • +:加法運算符(如果是兩個字符串則會進行拼串)
  • -:減法運算符
  • *:乘法運算符(如果字符串和數字相乘則會進行字符串複製操作)
  • /:除法運算符,結果總會返回一個浮點
  • //:整除,只會保留計算後整數位,返回一個整型
  • **:冪運算,求一個值的幾次冪
  • %:取模,求兩個數相除的餘數
    注意:True與整數和浮點數運算,True等價於1。False等價於0。
    在除法或者整除時,除數不能爲0
賦值運算符
關係運算符

關係運算符用來比較兩個值之間的關係,總會返回一個布爾值,關係成立爲True,不成立爲False。
=> <這些不在贅述。 ==和!=比較的是兩個對象的值。
注意:兩個字符整數或者浮點數參照整數進行比較,字符也是可以比較的,參照unicode碼。 字符和整數/浮點不能進行比較,字符和布爾也不能比較。整數/浮點和布爾可以進行比較。
介紹兩個py特有的。

  • is :比較兩個對象是否是同一個對象,比較的是對象的id
  • is not 比較兩個對象是否不是同一個對象,比較的是對象的id
邏輯運算符(與或非)

主要來做一些邏輯判斷。

  • not 邏輯非:
    not對符號右側的值進行非運算,對於布爾值進行取反,True->False。對於非布爾值,非運算會將其轉換爲布爾值,然後在取反。
  • and 邏輯與:
    and可以對符號兩側的值進行與運算, 只有兩側的值爲True時纔會返回True。 當左側的值爲False時,則不在看右側
  • or 邏輯或:
    or可以對符號兩側的值進行或運算,只要有一側的值爲True就會返回True。同樣,當左側值爲True時,不在看右側。
    注意: 邏輯運算符返回的是其能到達最遠處的值,而不是像java一樣只返回布爾值。邏輯判斷時,不侷限兩側值的類型,因爲每一種類型都可以當布爾值判斷,只是返回結果不是布爾類型,而是其原本類型
    and比or優先級高
print( '' or 'b') # b
print( 1 and 2.0)  #2.0
print(0 and 2) #0
#證明and優先級高
print( 0 or 2 and 3) # 3
條件運算符(三元運算符)

語法:語句1 if 條件表法式 else 語句2
條件運算符在執行時,先對條件表達式進行求值判斷,結果爲True返回語句1,False返回語句2.

a=2
b=3
c=a if a>b else b 
print(c) #3
print(a)if a>b else print(b) #3
注意:
1<2<3 等效於 1<2 and 2<3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章