
文|仟櫻雪
在Python小課-1-2節(jié)中,已經(jīng)學(xué)習(xí)了基礎(chǔ)模塊--數(shù)據(jù)--數(shù)據(jù)類型(整數(shù)、字符串),以及基礎(chǔ)模塊--變量,基礎(chǔ)模塊--函數(shù)(input函數(shù)、print函數(shù))。

1、基礎(chǔ)知識(shí)--數(shù)據(jù)篇--數(shù)據(jù)類型
數(shù)據(jù):主要分為數(shù)據(jù)類型、變量、編碼、類與對(duì)象;
函數(shù):
計(jì)算機(jī)其實(shí)就是一個(gè)做數(shù)學(xué)運(yùn)算的機(jī)器,所以計(jì)算機(jī)程序的主要任務(wù)就是處理各種數(shù)值、文本、音頻、視頻、圖像等各種類型的數(shù)據(jù);
本節(jié)主要內(nèi)容如下
一、Python的幾種簡單數(shù)據(jù)類型:字符串、整數(shù)、浮點(diǎn)數(shù);
二、相關(guān)的函數(shù):str(),int(),float(),type(),len();
三、數(shù)據(jù)類型的轉(zhuǎn)換
1、數(shù)據(jù)類型--字符串
(1)字符串:用單引號(hào)或者雙引號(hào)括起來的任意文本。
例如:'櫻雪';英文是string,計(jì)算機(jī)中一般簡寫為str,
字符串的呈現(xiàn)方式一般是用單引號(hào)或者雙引號(hào)括起來的文本,比如 '櫻雪':
print('櫻雪')
print('櫻雪')
print('櫻雪')
print('櫻雪')
結(jié)果顯示
櫻雪
櫻雪
櫻雪
櫻雪
說明:
1、第一行被打印出來的字符串櫻雪,和第二行被打印出來的字符串櫻雪,沒有任何的不一樣。所以單引號(hào)和雙引號(hào)的效果是一樣的。
2、單引號(hào)和雙引號(hào)只是一種表達(dá)方式,不是字符串的一部分。例如字符串 'ABC', 就是A 、B、C這三個(gè)字符而已。
(2)字符串的應(yīng)用
應(yīng)用一、包含單引號(hào)、雙引號(hào)的字符串應(yīng)用
如果字符串內(nèi)部包含了單引號(hào)【''】和雙引號(hào)【""】的處理:利用【轉(zhuǎn)義字符\】來標(biāo)識(shí)。
例如:如果打?。篖et's go 這個(gè)字符串,根據(jù)已經(jīng)學(xué)過的知識(shí),我們會(huì)寫:
a = 'Let's go'
print (a)
說明:
i、Python會(huì)報(bào)錯(cuò): SyntaxError: invalid syntax,意思是“語法錯(cuò)誤”,因?yàn)樗话亚皟蓚€(gè)單引號(hào)中的Let當(dāng)成了字符串

需要使用轉(zhuǎn)義字符【\】,把字符串中的單引號(hào)轉(zhuǎn)義一下,此時(shí)【' Let's go '】就變成了【' Let's go '】
b = 'Let\'s go'#增加轉(zhuǎn)義字符\
print (b)
運(yùn)行結(jié)果:
解決方案2:用雙引號(hào)來標(biāo)識(shí)字符串
c = "Let's go"
print (c)
說明:因?yàn)橛昧穗p引號(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)【+】連接起來了。
在運(yùn)行之后,然后輸入一段孔子講過的話,點(diǎn)擊Enter繼續(xù)。
說明:這段代碼也是可以正常顯示的,這是字符串中,單引號(hào)和雙引號(hào)的交替使用
應(yīng)用二、包含換行設(shè)置的字符串應(yīng)用
換行轉(zhuǎn)義字符的使用,轉(zhuǎn)義字符【\n】,它的作用是換行,例如:
words = '今年的南方冷的透骨,人間不值得啊,我要回火星!'
這是一首只有三行的短詩,如果你要把每一句換行呈現(xiàn)的話??梢栽诿恳痪浜竺婕印綷n】:
words= '今年的南方冷的透骨,\n人間不值得啊,\n我要回火星!'
print(words)
運(yùn)行結(jié)果如下:
說明:詩句開始換行了
應(yīng)用三、字符串結(jié)合type()函數(shù)、len()函數(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ù)讓我們看到。
簡潔做法:
a = '吳承恩'
print(type(a))
終端顯示了<class 'str'>,class代表類,而str代表字符串,所以這是一個(gè)字符串的類
應(yīng)用說明:當(dāng)我們通過某種方法,獲得了一個(gè)變量,里面放了數(shù)據(jù),我們期望里面放的就是字符串類型的數(shù)據(jù),這時(shí),type() 函數(shù)就能確認(rèn)了。
len()函數(shù):它能幫我們獲取到數(shù)據(jù)的長度。
a = '吳承恩'
b = len(a)
print(b)
第1行:定義了變量a,并為其賦值。
第2行:用len() 函數(shù)獲取到了 a 的長度,并放在變量 b 里面。
第3行:為了顯示在屏幕上,使用print() 函數(shù)讓我們看到。
簡潔做法:
a = '吳承恩'
print(len(a))
運(yùn)行結(jié)果:終端顯示了3,代表這個(gè)字符串的長度為3。
(3)字符串小結(jié):

2、數(shù)據(jù)類型--整數(shù)
(1)整數(shù):英文是integer,簡寫為int,跟普通的數(shù)字沒啥區(qū)別。
Python可以處理任意大小的整數(shù),也包括負(fù)整數(shù),在程序中的表示方法和數(shù)學(xué)上的寫法一模一樣:
+:加法
-:減法
*:乘法
/:除法
%:取模,返回除法的余數(shù),5%2返回1
**:冪,返回x的y次冪,2**3等價(jià)于2的3次方
//:取整除,返回商的整數(shù)部分,11//2返回5
(2)整數(shù)和type()、len()函數(shù)的應(yīng)用
type函數(shù)的應(yīng)用,例如:
print(type(5))
print(type('5'))
返回結(jié)果:
<class 'int'>
<class 'str'>
說明:5 和 '5' 是不一樣的,一個(gè)是整數(shù),一個(gè)是字符串。
len函數(shù)的應(yīng)用,例如:
print(len(5))
注意:去運(yùn)行這行代碼,會(huì)看到終端給我們報(bào)錯(cuò)
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 1, in <module>
print(len(5))
TypeError: object of type 'int' has no len()
說明:
請(qǐng)看圖中的報(bào)錯(cuò)部分,line1表示第一行代碼出了錯(cuò),然后其中最后一行寫著:TypeError: object of type 'int' has no len() 。
意思是類型錯(cuò)誤:整數(shù)這個(gè)類型沒有l(wèi)en() 函數(shù);可見,整數(shù)是不能使用len() 的。
3、數(shù)據(jù)類型--浮點(diǎn)數(shù)
(1)浮點(diǎn)數(shù):很簡單,就是帶小數(shù)的數(shù)字。
之所以稱為浮點(diǎn)數(shù),是因?yàn)榘凑湛茖W(xué)記數(shù)法表示時(shí),一個(gè)浮點(diǎn)數(shù)的小數(shù)點(diǎn)位置是可變的.
凡是帶有小數(shù)點(diǎn)的數(shù)字,就都是浮點(diǎn)數(shù)。浮點(diǎn)數(shù)的英文是float,沒有簡寫:
1.0
3.14159
-0.33
整數(shù)和浮點(diǎn)數(shù),它們?cè)谟?jì)算機(jī)內(nèi)部的存儲(chǔ)方式是不一樣的,整數(shù)運(yùn)算永遠(yuǎn)是精確的,而浮點(diǎn)數(shù)運(yùn)算則可能會(huì)有四舍五入的誤差
(2)浮點(diǎn)數(shù)和type()、len()函數(shù)的應(yīng)用
type函數(shù),例如
print(type(1.0))
print(type(3.14159))
print(type(-0.33))
運(yùn)行結(jié)果是:
<class 'float'>
<class 'float'>
<class 'float'>
len函數(shù),例如
print(len(1.0))
print(len(3.14159))
print(len(-0.33))
運(yùn)行結(jié)果是:
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 1, in <module>
print(len(1.0))
TypeError: object of type 'float' has no len()
說明:出現(xiàn)報(bào)錯(cuò),倒數(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ù)。
4、數(shù)據(jù)類型的轉(zhuǎn)換
(1)數(shù)據(jù)類型轉(zhuǎn)換介紹
需要連接一個(gè)整數(shù)和字符串,再讓print()函數(shù)打印出來的話,是不可以使用加號(hào)直接實(shí)現(xiàn),需要轉(zhuǎn)換數(shù)據(jù)類型,有3個(gè)函數(shù)可以實(shí)現(xiàn)這個(gè)功能,即str()、int()和float()函數(shù)。
str()函數(shù):可以讓其他數(shù)據(jù)類型轉(zhuǎn)換成字符串;
int()函數(shù):可以讓其他數(shù)據(jù)類型轉(zhuǎn)換成整數(shù);
float()函數(shù):可以讓其他數(shù)據(jù)類型轉(zhuǎn)換成浮點(diǎn)數(shù);
例如
t = 3
print('我談過'+t+'次戀愛。')
輸出結(jié)果:
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 2, in <module>
print('我談過'+t+'次戀愛。')
TypeError: can only concatenate str (not "int") to str
說明 :
看倒數(shù)第三行,是line2有問題;再看最后一行寫著TypeError: must be str, not int 意思是——類型錯(cuò)誤:必須是字符串,而不是整數(shù),也就是說,整數(shù)和字符串,用加號(hào)是拼接不起來的
例如:
a = input('隨便輸入一個(gè)數(shù)字')
b = 1
print(a+b)
輸出結(jié)果:
隨便輸入一個(gè)數(shù)字54
Traceback (most recent call last):
File "D:/Python_charm/hello.py", line 3, in <module>
print(a+b)
TypeError: can only concatenate str (not "int") to str
說明:在隨便輸入數(shù)據(jù)54后,報(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ù)類型,沒辦法拼接在一起。
(2)數(shù)據(jù)類型轉(zhuǎn)換應(yīng)用
str()函數(shù)應(yīng)用:
t = 3
print('我談過'+str(t)+'次戀愛。')
運(yùn)行結(jié)果:
我談過3次戀愛。
說明:
通過使用str()函數(shù),t變?yōu)樽址?,就可以連接字符串了
str()函數(shù)應(yīng)用:
a = input('隨便輸入一個(gè)數(shù)字')
b = 1
print(int(a)+b)
運(yùn)行結(jié)果:
隨便輸入一個(gè)數(shù)字54
55
說明:變量a的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù),并成功打印出(a+b)
5、課后練習(xí)
練習(xí)1:請(qǐng)讓這首詩實(shí)現(xiàn)換行的功能:
print('《紅豆》王維 紅豆生南國, 春來發(fā)幾枝。 愿君多采擷, 此物最相思。')
操作:
print('《紅豆》王維 \n紅豆生南國,春來發(fā)幾枝。\n愿君多采擷,此物最相思。')
運(yùn)行結(jié)果:
《紅豆》王維
紅豆生南國,春來發(fā)幾枝。
愿君多采擷,此物最相思。
練習(xí)2:請(qǐng)寫出這樣一個(gè)程序:請(qǐng)用戶輸入每天花在手機(jī)上的娛樂時(shí)間 a,再把時(shí)間 a 乘以7,再打印--“您一周花在手機(jī)上的娛樂時(shí)間總共是××小時(shí)“。
操作:
a=input('請(qǐng)問您每天花在手機(jī)上的娛樂時(shí)間是幾小時(shí)呢?')
b=int(a)*7
print('您一周花在手機(jī)上的娛樂時(shí)間總共是'+str(b)+'小時(shí)')
運(yùn)行結(jié)果:
請(qǐng)問您每天花在手機(jī)上的娛樂時(shí)間是幾小時(shí)呢?1
您一周花在手機(jī)上的娛樂時(shí)間總共是7小時(shí)
小結(jié):
1、不同數(shù)據(jù)類型的數(shù)據(jù),不能用加號(hào)直接連接;
2、input函數(shù)默認(rèn)將輸入的數(shù)據(jù)存儲(chǔ)為字符串;
3、整數(shù)和浮點(diǎn)數(shù)的存儲(chǔ)方式不同,因此1和1.0是不同的數(shù)據(jù)類型,整數(shù)和浮點(diǎn)數(shù)都不能使用len() 函數(shù);
(注:2018.10.12,Python編程,撿破爛兒的笨小孩學(xué)習(xí)小記,有用就給個(gè)小心心喲,后續(xù)持續(xù)更新ing)