數(shù)據(jù)類型
計(jì)算機(jī)其實(shí)就是一個(gè)做數(shù)學(xué)運(yùn)算的機(jī)器,所以計(jì)算機(jī)程序的主要任務(wù)就是處理各種數(shù)值,。但是計(jì)算機(jī)要處理的數(shù)值,,可不僅僅只是數(shù)值,計(jì)算機(jī)還可以處理文本,、音頻、視頻,、圖像等數(shù)據(jù),。
Python中可以直接處理的比較簡單的數(shù)據(jù)類型,例如字符串,、整數(shù),、浮點(diǎn)數(shù),還有幾個(gè)和它們相關(guān)的函數(shù):str(),,int(),,float(),,type(),len(),。
字符串的英文是string,,計(jì)算機(jī)中一般簡寫為str。
字符串的呈現(xiàn)方式一般是用單引號(hào)或者雙引號(hào)括起來的文本,,比如 '長安',。
print('長安')
print('長安')
第一行被打印出來的字符串長安,和第二行被打印出來的字符串長安,,沒有任何的不一樣,。所以單引號(hào)和雙引號(hào)的效果是一樣的。
需要注意的是單引號(hào)和雙引號(hào)只是一種表達(dá)方式,,不是字符串的一部分,。例如字符串 'ABC', 就是A ,、B,、C這三個(gè)字符而已。
疑問:如果字符串內(nèi)部包含了單引號(hào)【''】和雙引號(hào)【''】的話,,腫么辦,?
答案:利用【轉(zhuǎn)義字符\】來標(biāo)識(shí)。
a1 ='Let's go'
print(a1)
這樣運(yùn)行的話,,Python會(huì)報(bào)錯(cuò): SyntaxError: invalid syntax,,意思是“語法錯(cuò)誤”,因?yàn)樗话亚皟蓚€(gè)單引號(hào)中的Let當(dāng)成了字符串,。
Python是從左往右匹配單(雙)引號(hào)的——當(dāng)它讀到一個(gè)引號(hào)時(shí),,會(huì)在心里嘀咕:呀,這是字符串,。當(dāng)它再讀到下一個(gè)引號(hào)時(shí),,會(huì)在心里嘀咕:好!字符串結(jié)束了,!所以在計(jì)算機(jī)眼里,,上面的'Let'是字符串,而后面的東西呢,,它并不能讀懂,,于是產(chǎn)生一個(gè)報(bào)錯(cuò)。
這時(shí),,就需要使用轉(zhuǎn)義字符【\】,,把字符串中的單引號(hào)轉(zhuǎn)義一下,此時(shí)【' Let's go '】就變成了【' Let\'s go '】
a2 ='Let\'s go'
print(a2)
轉(zhuǎn)義字符【\】就是改變連接在它后面的字符本意,這樣字符串【Let's go】內(nèi)部的單引號(hào)【'】就不再具備標(biāo)記字符串的意思了,,所以代碼運(yùn)行時(shí)自動(dòng)跳過,,去匹配后面的單引號(hào)。
字符串中,,單引號(hào)和雙引號(hào)的交替使用,。
除此之外,還有一個(gè)辦法可以解決這個(gè)問題,,就是用雙引號(hào)來標(biāo)識(shí)字符串,,像這樣:
a3 ='Let's go'
print(a3)
由于你用了雙引號(hào)作為標(biāo)識(shí)符,而內(nèi)部使用的是單引號(hào),,Python就能區(qū)分開來,,正常運(yùn)行了。
還可以反過來干,,比如說外部用單引號(hào),,然后內(nèi)部的文本含有雙引號(hào),也可以的,。
a = input('孔子曾說過哪句名言,?')
print('子曰:''+a+'。'')
在這行代碼里,,我們能看到最后打印的字符串由三部分組成,。第0部分是【子曰:'】,第1部分是變量【a】,,第2部分是【,。'】,這三部分用加號(hào)【+】連接起來了,。
另一種轉(zhuǎn)義字符【\n】,,它的作用是換行。
poem ='說是悲哀也可以吧,。\n事物的滋味,。\n我嘗得太早了。'
print(poem)
這是一首只有三行的短詩,,如果你想要把每一句換行呈現(xiàn)的話,。可以在每一句后面加【\n】,。
轉(zhuǎn)義字符還有很多,,它們各有不同的功能,下面的轉(zhuǎn)義字符表可以收藏以便查看,,不需要記住!你只需要在用到時(shí)查閱一下即可,。
type()函數(shù)
主要用于獲取數(shù)據(jù)的數(shù)據(jù)類型
a ='吳承恩'
b = type(a)
print(b)
第1行:定義了變量a,,并為其賦值。
第2行:用type() 函數(shù)獲取到了 a 的數(shù)據(jù)類型,,并放在變量 b 里面,。
第3行:為了顯示在屏幕上,使用print() 函數(shù)讓我們看到,。
為了簡潔方便,,我們會(huì)這樣寫:
a ='吳承恩'
print(type(a))
終端顯示了<class 'str'>,class代表類,,而str代表字符串,,所以這是一個(gè)字符串的類。(更具體的關(guān)于類的概念會(huì)在后面的課程談到)
type()函數(shù)會(huì)在我們后期的爬蟲學(xué)習(xí)中發(fā)揮很大的作用,,先打牢基礎(chǔ),。
舉個(gè)栗子,當(dāng)我們想下載一本小說的時(shí)候,,我們通過某種方法,,獲得了一個(gè)變量,里面放了數(shù)據(jù),,我們期望里面放的就是小說內(nèi)容(即字符串類型的數(shù)據(jù)),。當(dāng)我們不確定里面放的是不是字符串,這時(shí),,type() 函數(shù)就能幫你確認(rèn)了,。
len()函數(shù)
能幫你獲取到數(shù)據(jù)的長度。
它的用法和type() 非常相似,。請(qǐng)看下面的代碼和解釋,。
a ='吳承恩'
b = len(a)
print(b)
第1行:定義了變量a,并為其賦值,。
第2行:用len() 函數(shù)獲取到了 a 的長度,,并放在變量 b 里面。
第3行:為了顯示在屏幕上,,使用print() 函數(shù)讓我們看到,。
一般來說,為了簡潔方便,,我們會(huì)這樣寫:
a ='吳承恩'
print(len(a))
運(yùn)行結(jié)果是3
終端顯示了3,,代表這個(gè)字符串的長度為3。
s ='egg'
print(len(s))
終端顯示了3,,代表這個(gè)字符串的長度為3,。
整數(shù)長啥樣子,,跟普通的數(shù)字沒啥區(qū)別啦。1,,23,,456
Python可以處理任意大小的整數(shù),也包括負(fù)整數(shù),,在程序中的表示方法和數(shù)學(xué)上的寫法一模一樣,。下面是Python中整數(shù)能做的運(yùn)算類型。你只需要了解就好,,需要時(shí)再來查看即可,。
print(type(5))
print(type('5'))
終端
user1009@python-class:~/lesson/3-1/93$ python ~/lesson/3-1/93/main.py
<class 'int'>
<class 'str'>
5 和 '5' 是不一樣的了吧?一個(gè)是整數(shù),,一個(gè)是字符串,。
print(len(5))
請(qǐng)看圖中的紅框部分,line1表示第一行代碼出了錯(cuò),,然后圖片中最后一行寫著:TypeError: object of type 'int' has no len() ,。意思是類型錯(cuò)誤:整數(shù)這個(gè)類型沒有l(wèi)en() 函數(shù)??梢?,整數(shù)是不能使用len() 的。
浮點(diǎn)數(shù)就是帶小數(shù)的數(shù)字,。1.0,,3.14159,-0.33
浮點(diǎn)數(shù)的英文是float,,沒有簡寫
整數(shù)運(yùn)算永遠(yuǎn)是精確的(除法難道也是精確的,?是的!),,而浮點(diǎn)數(shù)運(yùn)算則可能會(huì)有四舍五入的誤差,。
print(type(1.0))
print(type(3.14159))
print(type(-0.33))
終端
user1009@python-class:~/lesson/3-1/116$ python ~/lesson/3-1/116/main.py
<class 'float'>
<class 'float'>
<class 'float'>
print(len(1.0))
print(len(3.14159))
print(len(-0.33))
看圖片中倒數(shù)第三行,寫了問題出在 line1,,所以第一行代碼就執(zhí)行不下去,。終端顯示TypeError: object of type 'float' has no len()。意思是類型錯(cuò)誤:浮點(diǎn)數(shù)這個(gè)類型沒有長度,。
計(jì)算機(jī)是在跟你說:浮點(diǎn)數(shù)沒有l(wèi)en()函數(shù),。所以啊,整數(shù)和浮點(diǎn)數(shù)都不能使用len() 函數(shù),。
如何連接一個(gè)整數(shù)和字符串,,再讓print()函數(shù)打印出來?(轉(zhuǎn)換數(shù)據(jù)類型,即str()、int()和float()函數(shù))
t =3
print('我談過'+t+'次戀愛,。')
看倒數(shù)第三行,,是line2有問題,;再看最后一行寫著TypeError: must be str, not int 意思是——類型錯(cuò)誤:必須是字符串,而不是整數(shù),。
也就是說,,整數(shù)和字符串,,用加號(hào)是拼接不起來的,。
a = input('隨便輸入一個(gè)數(shù)字')
b =1
print(a+b)
隨便輸入一個(gè)數(shù)字3后,終端報(bào)錯(cuò)了,。
問題出在line3,,再看圖片中的最后一行,還是同樣的TypeError(類型錯(cuò)誤),。因?yàn)閕nput() 函數(shù)接受的內(nèi)容都是字符串的數(shù)據(jù)類型,,雖然你輸入了一個(gè)數(shù)字,但放在變量a里面的,,是字符串'3',,整數(shù)和字符串無法相加,所以終端又會(huì)報(bào)錯(cuò),。
這兩段代碼,,終端都報(bào)錯(cuò)了。而它們倆的錯(cuò)誤原因都是一樣的——不同的數(shù)據(jù)類型,,沒辦法拼接在一起,。
這不同的數(shù)據(jù)類型,怎么連在一起呢,?就是轉(zhuǎn)換數(shù)據(jù)類型,,有3個(gè)函數(shù)可以實(shí)現(xiàn)這個(gè)功能,即str(),、int()和float()函數(shù),。
想連接字符串和整數(shù),可以用str() 函數(shù)把t這一整數(shù)變?yōu)樽址?/strong>
t =3
print('我談過'+str(t)+'次戀愛,。')
終端
user1009@python-class:~/lesson/3-1/153$ python ~/lesson/3-1/153/main.py我談過3次戀愛,。
a = input('隨便輸入一個(gè)數(shù)字')
b =1
print(int(a)+b)
終端
user1009@python-class:~/lesson/3-1/158$ python ~/lesson/3-1/158/main.py隨便輸入一個(gè)數(shù)字1
2
我一開始還擔(dān)心學(xué)不會(huì),開課之后發(fā)現(xiàn)一點(diǎn)都不難,,非常適合入門,,寫出第一行代碼的時(shí)候超級(jí)自豪。想捉住人工智能機(jī)遇的人推薦來報(bào)名,!
課程最大的特點(diǎn)和優(yōu)點(diǎn),,就是操作性強(qiáng),并且能知道自己錯(cuò)在哪里,,較快的掌握枯燥的理論知識(shí),,也是我最喜歡的地方,。對(duì)于我這個(gè)小白來說,真心良心產(chǎn)品,,點(diǎn)贊點(diǎn)贊?。?!
知識(shí)點(diǎn)回顧
數(shù)據(jù)類型:1,,計(jì)算機(jī)就是一個(gè)做數(shù)學(xué)運(yùn)算的機(jī)器,計(jì)算機(jī)程序的主要任務(wù)就是處理各種數(shù)值,??刹粌H僅只是數(shù)值,計(jì)算機(jī)還可以處理文本,、音頻,、視頻、圖像等數(shù)據(jù),2,,簡單的數(shù)據(jù)類型有字符串,、整數(shù)、浮點(diǎn)數(shù),。
單引號(hào)和雙引號(hào):是一種表達(dá)方式,,不是字符串的一部分。單引號(hào)和雙引號(hào)的效果是一樣的,。
字符串?dāng)?shù)據(jù)類型:字符串的呈現(xiàn)方式一般是用單引號(hào)或者雙引號(hào)括起來的文本,,比如 '長安'。字符串的英文是string,,計(jì)算機(jī)中一般簡寫為str,。
字符串內(nèi)部包含了單引號(hào)【''】和雙引號(hào)【''】:利用【轉(zhuǎn)義字符\】來標(biāo)識(shí)。轉(zhuǎn)義字符【\】就是改變連接在它后面的字符本意,,內(nèi)部的單引號(hào)【'】就不再具備標(biāo)記字符串的意思了,,所以代碼運(yùn)行時(shí)自動(dòng)跳過,去匹配后面的單引號(hào),。除此之外,,還有一個(gè)辦法可以解決這個(gè)問題,就是用雙引號(hào)來標(biāo)識(shí)字符串,。用了雙引號(hào)作為標(biāo)識(shí)符,,而內(nèi)部使用的是單引號(hào),Python就能區(qū)分開來,,正常運(yùn)行了,。還可以反過來干,比如說外部用單引號(hào),,然后內(nèi)部的文本含有雙引號(hào),。
轉(zhuǎn)義字符\【\】:不標(biāo)記連接在它后面的字符本意,,代碼運(yùn)行時(shí)自動(dòng)跳過。
轉(zhuǎn)義字符【\n】:作用是換行,。三行的短詩,,如果想要把每一句換行呈現(xiàn)的話??梢栽诿恳痪浜竺婕印綷n】,。
整數(shù)數(shù)據(jù)類型:整數(shù)跟普通的數(shù)字沒啥區(qū)別,Python可以處理任意大小的整數(shù),,也包括負(fù)整數(shù),,在程序中的表示方法和數(shù)學(xué)上的寫法一模一樣。整數(shù)的英文是integer,,簡寫為int。
浮點(diǎn)數(shù)數(shù)據(jù)類型:1,,凡是帶有小數(shù)點(diǎn)的數(shù)字,,就都是浮點(diǎn)數(shù)。浮點(diǎn)數(shù)的英文是float,,沒有簡寫,。2,整數(shù)運(yùn)算永遠(yuǎn)是精確的(除法難道也是精確的,?是的?。↑c(diǎn)數(shù)運(yùn)算則可能會(huì)有四舍五入的誤差,。
獲取數(shù)據(jù)類型函數(shù)type():例如,,終端顯示了,class代表類,,而str代表字符串,,所以這是一個(gè)字符串的類。type()函數(shù)會(huì)在后期的爬蟲學(xué)習(xí)中發(fā)揮很大的作用,,先打牢基礎(chǔ),。
獲取數(shù)據(jù)長度的函數(shù)len():例如,終端顯示了3,,代表這個(gè)字符串的長度為3,。,整數(shù)和浮點(diǎn)數(shù)都不能使用len() 函數(shù)。字串符則可以,。
數(shù)據(jù)類型【彼此轉(zhuǎn)換】:整數(shù)和字符串,,用加號(hào)是拼接不起來的。不同的數(shù)據(jù)類型,,沒辦法拼接在一起,。要連在一起,,就要轉(zhuǎn)換數(shù)據(jù)類型。有3個(gè)函數(shù)可以實(shí)現(xiàn)這個(gè)功能,,即str(),、int()和float()函數(shù)。要想連接字符串和整數(shù),,可以用str() 函數(shù)把t這一整數(shù)變?yōu)樽址?/p>