1 定長型別和變長型別

2021-08-15 21:19:47 字數 794 閱讀 3871

python中一切皆物件,而一切物件皆有型別,而型別物件也有型別,理解起來有點繞!

常用的型別有int、float、long、string、list、tuple、dict這些,而我們可以將這些型別分為以下2類:

1. 定長型別

int、float、long這些都是定長型別,且是不可變型別,即我們無法對這些型別的物件進行原地修改,我們通常看到的修改都是通過建立乙個新的物件來實現的; 如下我們對乙個long型的變數a進行加1操作,我們可以看到a所指物件的記憶體位址發生了變化

>>> a=100l

>>> type(a)

>>> id(a)

139791554736432

>>> a+=1

>>> id(a)

139791554736464

2. 變長型別

string、list、tuple、dict這些屬於變長型別,我們所謂的定長變長並非指物件占用的記憶體是否可變,而是指物件中包含的基本元素個數在建立時是否固定;舉栗子,int在建立時永遠只會包含1個基本元素(整數),而string在建立時可以包含任意個基本元素(字元),所以通常來說容器型別都屬於變長型別

變長型別可繼續分為可變型別和不可變型別:

string和tuple是典型的不可變型別,而list和dict則是可變型別

我們在學習cpython原始碼時要對定長變長型別概念有所理解,那麼在檢視objects的實現時才會不感到迷糊;

而可變不可變型別的理解則對我們編寫python指令碼大有裨益

1 數值型別和序列型別

1 什麼是變數?變數就是用來儲存資料的 2 變數怎麼定義?3 變數的命名規則 myvar my var 變數命名 數字 字母 下劃線,並且不能以數字開頭,不要用關鍵字命名 檢視關鍵字 import keyword keyword.kwlist false none true and as asser...

1 資料型別和操作

行注釋,後面加 可以不輸出結果 變數命名規則和python相同,但檔名不要和matlab的內建函式同名。matlab的索引從1開始,python的索引從0開始 class 檢視變數型別 class string or char 字串char class 5 數字double 輸入輸出 n input...

1 變數和基本型別

型別主要是用來告訴我們資料代表什麼意思,對資料該執行什麼操作。1.1 基本資料型別 c 中有布林型 字元型 整型 浮點型等。其中整數 字元和布林的算術型別合稱為整型 它與在計算機儲存器中的表示方式緊密相關。計算機以位序列儲存資料,每位儲存0或1.通常在計算機中int儲存長度為1個機器字長。1 inc...