python基本數(shù)據(jù)類型

python變量概念

python中的變量不需要聲明卵迂,但使用時必須賦值。
變量在創(chuàng)建時會在內(nèi)存中開辟一個空間聊浅。
基于變量的數(shù)據(jù)類型,解釋器會分配指定內(nèi)存现使,并決定什么數(shù)據(jù)可以被存儲在這段指定的內(nèi)存中低匙。
因此,變量可以指定不同的數(shù)據(jù)類型碳锈,這些變量可以存儲整數(shù)顽冶,小數(shù)或字符。

變量賦值即創(chuàng)建

counter = 100 # 賦值整型變量
miles = 1000.0 # 浮點型
name = "John" # 字符串

print(counter)
print(miles)
print(name)

多個變量賦值

同時為多個變量賦值相同的值:a = b = c = 1創(chuàng)建一個整型對象售碳,值為1强重,三個變量被分配到相同的內(nèi)存空間上。
同時為多個變量指定不同類型的值:a, b, c = 1, 2, "john"兩個整型對象 1 和 2 分別分配給變量 a 和 b贸人,字符串對象 "john" 分配給變量 c间景。
在 Python 中,變量就是變量艺智,它沒有類型倘要,我們所說的"類型"是變量所指的內(nèi)存中對象的類型。

標(biāo)準(zhǔn)數(shù)據(jù)類型

在內(nèi)存中存儲的數(shù)據(jù)可以有多種類型十拣。
Python定義了一些標(biāo)準(zhǔn)類型封拧,用于存儲各種類型的數(shù)據(jù)。
Python中有六個標(biāo)準(zhǔn)的數(shù)據(jù)類型:

  • Number(數(shù)字)
  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Set(集合)
  • Dictionary(字典)

Python3 的六個標(biāo)準(zhǔn)數(shù)據(jù)類型中:

  • 不可變數(shù)據(jù)(3 個):Number(數(shù)字)夭问、String(字符串)泽西、Tuple(元組)

    不可改變的數(shù)據(jù)類型,這意味著改變數(shù)字?jǐn)?shù)據(jù)類型會分配一個新的對象

  • 可變數(shù)據(jù)(3 個):List(列表)甲喝、Dictionary(字典)尝苇、Set(集合)

    可變數(shù)據(jù)類型铛只,意味著對以上數(shù)據(jù)類型進(jìn)行復(fù)制創(chuàng)建時,只是創(chuàng)建了相應(yīng)內(nèi)存內(nèi)容的一個新的連接

類型查看及判斷

內(nèi)置的type()函數(shù)可以用來查詢變量所指的對象類型
type(counter)
使用print(type(counter)方法輸出type()結(jié)果時糠溜,python3顯示<class 'int'>淳玩,而python2顯示<type 'int'>
此外還可以用isinstance()來判斷:
isinstance(counter, int),函數(shù)返回一個布爾值
在使用時,兩種方法都可以用來判斷類型匹配非竿,似乎isinstance()更方便些蜕着,實際上這兩種方法最重要的區(qū)別需要注意一下:

  • type()不會認(rèn)為子類是一種父類類型。
  • isinstance()會認(rèn)為子類是一種父類類型红柱。
class Foo(object):
    pass

class Bar(Foo):
    pass

print(type(Foo()) == Foo)   #return True
print(type(Bar()) == Foo)   #return False
print(isinstance(Bar(),Foo)) #return True

Number(數(shù)字)

數(shù)字?jǐn)?shù)據(jù)類型用于存儲數(shù)值承匣。
當(dāng)指定一個值時,Number對象就會被創(chuàng)建:var_int = 10
注意:

  • Python3支持 int(整型)锤悄、float(浮點型)韧骗、bool(布爾型)、complex(復(fù)數(shù))

    Python3只有一種整數(shù)類型 int零聚,表示為長整型袍暴,沒有 python2 中的 Long。python3的int沒有長度限制(實際上由于機(jī)器內(nèi)存的有限隶症,我們使用的整數(shù)是不可能無限大的)

  • Python2支持int(有符號整型)政模、long(長整型)、float(浮點型)蚂会、bool(布爾型)淋样、complex(復(fù)數(shù))

    long也可以代表八進(jìn)制和十六進(jìn)制,以L結(jié)尾以顯式聲明其類型胁住,建議不再使用這種類型

  • 布爾型的值域為關(guān)鍵字True和False趁猴,注意首字母大寫,實際值分別對應(yīng)為1和0措嵌,可以和其他數(shù)值做計算
  • 浮點型也可以使用科學(xué)計數(shù)法表示(2.5e2 = 2.5 x 102 = 250.0)
var_int = 10      #int型
var_bool = True   #bool型
var_float = -21.9  #float型
var_complex = 4.53e-7j   #complex型

var_science = 32.3e+5    #float型科學(xué)記數(shù)法

var_bool_add = var_int + var_bool #布爾值與int型做加減運(yùn)算

del var_int   #通過使用del語句刪除單個對象的引用
del var_float, var_science,var_bool,var_complex,var_bool_add   #通過使用del語句刪除多個對象的引用

String(字符串)

字符串或串(String)是由數(shù)字躲叼、字母、下劃線組成的一串字符,一般用單引號 ' 或雙引號 " 括起來企巢,同時使用反斜杠 \ 轉(zhuǎn)義特殊字符枫慷。
Python 沒有單獨(dú)的字符類型,一個字符就是長度為1的字符串浪规。
String類型可以作為一種字串列表對文本內(nèi)容進(jìn)行截取處理或听,有2種取值順序:

  • 從左到右索引默認(rèn)0開始的,最大范圍是字符串長度少1
  • 從右到左索引默認(rèn)-1開始的笋婿,最大范圍是字符串開頭
R U N O O B
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1

實現(xiàn)從字符串中獲取一段子字符串可以使用 [頭下標(biāo):尾下標(biāo)] 來截取相應(yīng)的字符串誉裆,其中下標(biāo)是從 0 開始算起,可以是正數(shù)或負(fù)數(shù)缸濒,下標(biāo)可以為空表示取到頭或尾
[頭下標(biāo):尾下標(biāo)] 獲取的子字符串包含頭下標(biāo)的字符足丢,但不包含尾下標(biāo)的字符粱腻。

str = 'Hello World!'

print(str[0])     #'H'      字符串中的第一個字符
print(str[1:5])   #'ello'   第二位到第六位字符
print(str[2:])    #'llo World!'  從三個字符開始的字符串
print(str[:4])    #'Hell'   從開頭的4位字符 
print(str[-7:-3]) #' Wor' 從倒數(shù)第7位到倒數(shù)第四位
print(str[:-3])   #'Hello Wor' 從倒數(shù)最后一位到倒數(shù)第四位
print(str[-3:])   #'ld!' 從倒數(shù)第三位到倒數(shù)第一位

print(str * 2)    #'Hello World!Hello World!' 輸出字符串兩次
print(str + "TEST")  #'Hello World!TEST' 輸出連接的字符串

print('H' in str)      #如果字符串中包含給定的字符返回 True
print("M" not in str) #如果字符串中不包含給定的字符返回 True

字符串轉(zhuǎn)義

符串中的轉(zhuǎn)義字符為\,在其中包含的轉(zhuǎn)義字符如下:

轉(zhuǎn)義符 解釋
\\ 反斜杠\
\” 雙引號 “
\’ 單引號 ‘
\n 換行
\r 回車
\t 制表

如果不想讓反斜杠發(fā)生轉(zhuǎn)義斩跌,可以在字符串前面添加一個 r,表示原始字符串:

print('Ru\noob')    # Ru  oob
print(r'Ru\noob')   # Ru\noob

另外柬批,反斜杠()可以作為續(xù)行符袖订,表示下一行是上一行的延續(xù)

格式字符串 %

python格式化字符串有%和format_spec兩種字符串格式控制符氮帐。
字符串輸入數(shù)據(jù)格式類型(%格式操作符號)比較多,常用的就是 %s 和 %d

類型 含義
%% 百分號標(biāo)記
%c 字符及其ASCII碼
%s 字符串
%d 有符號整數(shù)(十進(jìn)制)
%e 浮點數(shù)字(科學(xué)計數(shù)法)
%f 浮點數(shù)字(用小數(shù)點符號)
%g 浮點數(shù)字(根據(jù)值的大小采用%e或%f)

使用格式規(guī)范(拓展):
%[(name)][flag][width][.][precision]type
name:可為空洛姑,數(shù)字(占位),命名(傳遞參數(shù)名,不能以數(shù)字開頭)以字典格式映射格式化,其為鍵名
flag = "+" | "-" | "#" | "0" 標(biāo)記格式限定符號,包含+-#和0,+表示右對齊(會顯示正負(fù)號),-左對齊,前面默認(rèn)為填充空格(即默認(rèn)右對齊)奄容,0表示填充0,#表示八進(jìn)制時前面補(bǔ)充0,16進(jìn)制數(shù)填充0x,二進(jìn)制填充0b
width:寬度(最短長度,包含小數(shù)點,小于width時會填充)
precision:小數(shù)點后的位數(shù)
type:輸入格式類型
樣例:

#簡單的:
print('本篇文章作者是%s ,發(fā)表于%s,年齡是%d歲'%('linghuanyun','CSDN',18))
#復(fù)雜的:
print("%.5f" %5) #輸出5.000000
print("%-7s3" %("python"))#輸出python 3
print("%.3e" %2016)#輸出2.016e+03,也可以寫大E
print("%d %s" %(123456,"myblog"))#輸出123456 myblog
print("%(what)s is %(year)d" % {"what":"this year","year":2016})#輸出this year is 2016

format_spec格式(拓展)

對字符串有更深的格式化需求時产徊,可以參考這種格式的樣例酌情使用
{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}
用{}包裹name命名傳遞給format以命名=值 寫法,非字典映射
fill:指待格式化的字符串
align = "<" | ">" | "=" | "^" #align是對齊方式,<是左對齊蜀细, >是右對齊舟铜,^是居中對齊奠衔。
sign = "+" | "-" | " " #sign是符號, +表示正號痊夭, -表示負(fù)號
width:寬度(最短長度,包含小數(shù)點,小于width時會填充)
precision:小數(shù)點后的位數(shù)
type:輸入格式類型
樣例:

print("{:,}".format(123456)) #輸出123,456
print("{a:w^8}".format(a="8")) #輸出www8wwww,填充w
print("{0} with {1}".format("hello","fun"))   #輸出hello with fun,這與CSharp的格式化字符(占位符)相似
print("{}{}{}".format("spkk",".","cn"))   #輸出spkk.cn
print("{a[0]}{a[1]}{a[2]}".format(a=["spkk",".","cn"]))    #輸出spkk.cn
print("{dict[host]}{dict[dot]}{dict[domain]}".format(dict={"host":"www","domain":"spkk.cn","dot":"."}))    #輸出www.spkk.cn
print("{a}脏里".format(a="python",b="3"))    #輸出python3
print("{who} {doing} {0}".format("python",doing="like",who="I"))    #輸出I like python
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市番舆,隨后出現(xiàn)的幾起案子矾踱,更是在濱河造成了極大的恐慌,老刑警劉巖呛讲,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吗氏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哮针,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門坦袍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛮放,你說我怎么就攤上這事奠宜。” “怎么了压真?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岳悟。 經(jīng)常有香客問我泼差,道長,這世上最難降的妖魔是什么堆缘? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任吼肥,我火速辦了婚禮,結(jié)果婚禮上潜沦,老公的妹妹穿的比我還像新娘。我一直安慰自己涝影,他們只是感情好争占,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布序目。 她就那樣靜靜地躺著伯襟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪姆怪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天俺附,我揣著相機(jī)與錄音溪掀,去河邊找鬼。 笑死璃哟,一個胖子當(dāng)著我的面吹牛喊递,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播骚勘,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼调鲸,長吁一口氣:“原來是場噩夢啊……” “哼挽荡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起定拟,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤青自,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后延窜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荠藤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吻育。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淤井。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖币狠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情器罐,我是刑警寧澤渐行,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站肴沫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏颤芬。R本人自食惡果不足惜套鹅,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望菱魔。 院中可真熱鬧吟孙,春花似錦、人聲如沸杰妓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吸占,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兼蕊,已是汗流浹背件蚕。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留排作,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓哈雏,卻偏偏與公主長得像衫生,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子罪针,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一泪酱、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,723評論 0 10
  • *單件服裝拍攝多張墓阀,提供8-12張修片(主圖+細(xì)節(jié)圖) *拍攝中如產(chǎn)生拍攝場地費(fèi)用由客戶承擔(dān)(如酒吧毡惜,酒店,單獨(dú)約...
    成竹攝影閱讀 322評論 0 0
  • 我沒意識到的是虱黄,慢慢讀書都有了愧疚感吮成。 那天我在讀《河童雜記本》辜梳,是妹尾河童的好書粱甫。本來該是享受作瞄,可我特別緊張,雖...
    獲月的月閱讀 284評論 0 3
  • 關(guān)于你的記憶乌庶,似乎只是那一張因為久經(jīng)歲月洗禮而泛黃了的照片和那寸土地。 照片中的女子瞒大,笑靨如花,眼...
    陳情舊愛閱讀 99評論 0 0