Python 1 06 基本資料型別

2021-10-22 14:18:50 字數 4306 閱讀 4144

python 中的變數不需要宣告,每個變數使用前必須賦值。

counter =

100# 整型變數

miles =

100.0

# 浮點型變數

name =

"python"

# 字串 print('''this's "python"''')

python 允許同時為多個變數賦值。

a = b = c =1x=

[1,2

,3]a = x[2:

]= x[1:

]# a = x[1:];

a, x # ([2, 3], [1, 2, 2, 3])

建立乙個整型物件,值為 1,從後向前賦值,三個變數被賦予相同的數值。

a, b, c =1,

2,"python"

x =[1,

2]i, x[i]

= x[0]

,5# = 左右同時 目標:從左到右

i, x # (1, [1, 5])

兩個整型物件 1 和 2 的分配給變數 a 和 b,字串物件 「python」 分配給變數 c。

a,b = b,a  # 交換 a,b 所指物件
變數通過賦值,建立並開闢記憶體空間。如果沒有賦值而直接使用會丟擲賦值前引用的異常或者未命名異常。

nameerror: name 'a'

isnot defined

賦值後還可以重新賦值

>>

> a =

1>>

> a =

"python"

>>

> a =[1

,2,3

]>>

> a =

變數 a 在動態的改變,它的值分別是不同的資料型別,這是動態語言的特點。

這種變數本身型別不固定的語言稱之為動態語言。靜態語言在定義變數時必須指定變數型別,如果賦值的時候型別不匹配,就會報錯。和靜態語言相比,動態語言更靈活。

a = 『abc』 時,python 直譯器幹了兩件事情:

1)在記憶體中建立了乙個 『abc』 的字串物件(例項);

2)在記憶體中建立了乙個名為 a 的變數,並把它指向 『abc』 。

重新理解一下賦值運算子,可以把乙個變數 a 賦值給另乙個變數 b,這個操作實際上是將變數 b 指向變數 a 所指向的資料,例如:

a =

'yake'

# 就象給 'yake' 物件貼了乙個標籤 a

b = a # 又給 'yake' 物件貼了乙個標籤 b

a ='tom'

# 把 'yake' 物件標籤 a 撕掉,給 'tom' 物件貼上了標籤 a

牢記:python 中的一切都是物件,變數是物件的引用!

內建函式 id

可以顯示物件的唯一的識別符號,cpython (通常用的 python 直譯器,由 c 語言編寫 。) id() 指物件記憶體位址。

>>

>

'yake'

>>

>id(

'yake'

)>>

>a =

'yake'

>>

>

id(a)

>>

>b=a

>>

>

id(b)

檢視變數所佔位元組的大小

>>

>

import sys

>>

>

print

(sys.getsizeof(a)

)

所謂常量就是不能變的變數,比如常用的數學常數 π 就是乙個常量。在python 中沒有語法強制定義常量,通常用全部大寫的變數名表示常量:

pi = 3.14159265359

但事實上 pi 仍然是乙個變數,python 根本沒有任何機制保證 pi 不會被改變,所以,用全部大寫的變數名表示常量只是乙個習慣上的用法(約定俗成)。

常用的內建常量

有少數的常量存在於內建命名空間中。 它們是:

false

# bool 型別的假值。 給 false 賦值是非法的並會引發 syntaxerror。

true

# bool 型別的真值。 給 true 賦值是非法的並會引發 syntaxerror。

none

# nonetype 型別的唯一值。 none 經常用於表示缺少值,當因為預設引數未傳遞給函式時。 給 none 賦值是非法的並會引發 syntaxerror。

註解 變數名 none,false 和true 無法重新賦值(賦值給它們,即使是屬性名,將引發 syntaxerror ),所以它們可以被認為是「真正的」常數。且都是保留字。

總結python 支援多種資料型別,在計算機內部,可以把任何資料都看成乙個「物件」,而變數就是在程式中用來指向這些資料物件的,對變數賦值就是把資料和變數給關聯起來。

對變數賦值 x = y 是把變數 x 指向真正的物件,該物件是變數 y 所指向的。隨後對變數 y 的賦值不影響變數 x 的指向。

python ——萬物皆物件,無論是乙個數字、字串,還是列表、字典、集合、元組,在 python 中都會以乙個物件的形式存在。

a =

123

對於上面這行**,在 python 看來就是建立乙個 pyobject 物件,值為 123,然後定義乙個相當於指標 a,a 指向這個 pyobject 物件。

python 中的物件分為兩種型別,可變物件和不可變物件,例如:

a =[1

,2,3

]# list 列表

print(id

(a))

# 2587116690248

a +=[4

]print(id

(a))

# 2587116690248

b =1print(id

(b))

# 2006430784

b +=

1print(id

(b))

# 2006430816

上面**中我們分別定義了乙個可變物件和乙個不可變物件,並且對他們進行修改,列印修改前後的物件標識可以發現,對可變物件進行修改,變數對其引用不會發生變化,對不可變物件進行修改,變數引用發生了變化。

python dir() 函式

dir() 函式不帶引數時,返回當前範圍內的變數、方法和定義的型別列表;帶引數時,返回引數的屬性、方法列表。如果引數包含方法dir(),該方法將被呼叫。如果引數不包含dir(),該方法將最大限度地收集引數資訊。

python id() 函式

id() 函式返回物件的唯一識別符號,識別符號是乙個整數。

cpython 中 id() 函式用於獲取物件的記憶體位址。

python type() 函式

type() 函式如果你只有第乙個引數則返回物件的型別,三個引數返回新的型別物件。

isinstance() 與 type() 區別:

• type() 不會認為子類是一種父類型別,不考慮繼承關係。

• isinstance() 會認為子類是一種父類型別,考慮繼承關係。

如果要判斷兩個型別是否相同推薦使用 isinstance()。

python bool() 函式

bool() 函式用於將給定引數轉換為布林型別,如果沒有引數,返回 false。

bool 是 int 的子類。

sys.getrefcount() 函式,可以檢視乙個變數的引用次數。

python 中有六個標準的資料型別:

•	number(數字)

• string(字串)

• list(列表)

• tuple(元組)

• set(集合)

• dictionary(字典)

python 的六個標準資料型別中:

•	不可變資料(3 個):number(數字)、string(字串)、tuple(元組);

• 可變資料(3 個):list(列表)、dictionary(字典)、set(集合)。

python基本資料型別

物件是python中最基本的概念,python中資料以物件的形式出現 無論是python提供的內建物件,還是使用python或是像c擴充套件庫這樣的擴充套件語言工具建立的物件。物件時記憶體中的一部分,包括數值和相關操作的集合。python程式可以分解成模組 語句 表示式以及物件,如下 1 程式由模組...

Python基本資料型別

1 python中一切都是物件。2 每乙個資料都有乙個id標示,用id 可以檢視。也可以用type檢視是什麼型別。3 常用的資料型別 int 整型 數字 boole true 值 賦值,要用大寫 a true string 字串 也稱作序列。list 列表 tuple 元組 dict 字典 set ...

Python基本資料型別

python內建許多資料基本型別。資料型別dt 表示形式 int整形如 1,0,1,float 浮點型如 1.1,0.0,1.1,str字串如 單引號或雙引號括起來的形式 hello python list 列表如 1,2 巢狀列表 1,2,3 tuple 元組如 1,2 set無序列表如 comp...