上回說到,妹子們要經(jīng)常換老公。所以用了一個(gè)叫變量的東西來存老公的名字、照片的數(shù)量等:
name="胡歌"first=1count=28現(xiàn)在我們要把他們替換到url中相應(yīng)的地方。想想在數(shù)學(xué)上的變量,x = 1,y=2,z = 1+2,現(xiàn)在要把1和2分別換成x和y,那是很簡單的,就是z=x+y。但是問題來了,x和y都是我們上期說的整數(shù),他們之間是可以加的。但是,url是一個(gè)字符串類型,怎么辦呢,還有其他類型的變量之間的操作,又該怎么辦呢?且聽我慢慢道來。
上期說到,基本變量類型有五種:整型(int)、浮點(diǎn)型(float)、字符串(str)、布爾型(bool)、空值(None),我們分情況來說。
整型(int)
int就是整數(shù),加減乘除余不解釋。
浮點(diǎn)型(float)
float就是小數(shù),也不解釋。
嗯,其實(shí)我還是會解釋的:
有沒有發(fā)現(xiàn)奇怪的地方?為什么4.5-3.7是0.7999999999999998而不是0.8,4.5*3.7是16.650000000000002而不是16.65。這主要是有限長度的二進(jìn)制沒法精確表達(dá)浮點(diǎn)數(shù)導(dǎo)致的,解釋起來比較復(fù)雜,實(shí)際上這個(gè)情況出現(xiàn)的不多,誤差也比較小,大部分時(shí)候?qū)τ?jì)算結(jié)果影響可以忽略。有興趣了解具體原因的同學(xué)請?jiān)谖⑿殴娞柣貜?fù)關(guān)鍵字“float”獲取。
字符串(str)
字符串的操作比較多,這里暫時(shí)只講一個(gè)我們要用到的,就是字符串的拼接。字符串的拼接用加號(+)。比如:
str1 = "我是一個(gè)"str2 = "兵"str3 = str1 + str2那么str3是什么呢?
有一點(diǎn)要記住,字符串不能用減號
布爾型(bool)
布爾型只有兩個(gè)值,True和False,運(yùn)算符也只有三個(gè)not,and,or。還記得集合與或非的同學(xué)們就不用我講了,一看就明白。不記得我也不講了,因?yàn)閮蓚€(gè)值三個(gè)運(yùn)算符,排列組合下來的情況也就那么幾種,在演示里面看的比較清楚。
演示:
空值(None)
空值也可以參與運(yùn)算?是的,不信你看:
不過實(shí)際上很少直接拿None這么運(yùn)算,所以這里只是拿出來讓同學(xué)們看看,空值,他也是可以參與運(yùn)算的。
看完上面數(shù)據(jù)類型的運(yùn)算,是不是已經(jīng)不記得我們要干什么了,我來提醒一下,要把name,first,count替換到url里面的相應(yīng)的地方去。url是字符串,字符串的拼接用什么?加號!
所以:url = "http://cn.bing.com/images/search?q=" + name + "&first=" + first +"&count=" + count來驗(yàn)證一下:
可惜,出錯(cuò)了,錯(cuò)誤信息:TypeError: Can't convert 'int' object to str implicitly。數(shù)據(jù)類型錯(cuò)誤,不能將int類型的對象隱式轉(zhuǎn)換成str類型。現(xiàn)在是不是想起來了,name是str類型,這么加進(jìn)去,是沒有問題的。但是first和count都是int類型,要想和str類型拼接,得先把他們轉(zhuǎn)換成str類型,而且錯(cuò)誤提示我們了,隱式轉(zhuǎn)換(就是啥都不干讓系統(tǒng)自己去轉(zhuǎn))是不行的。毛主席教導(dǎo)我們說,喜歡就表白,不行就強(qiáng)X。軟的不行,就來硬的,上強(qiáng)制轉(zhuǎn)換。int強(qiáng)制轉(zhuǎn)換成str怎么辦?用str()
看出來num和numStr的區(qū)別了吧!
str()是一個(gè)函數(shù),那么函數(shù)是什么呢?
數(shù)學(xué)里面是f(x)=3x + 111,那如果a=f(4),那么a的值是多少呢。現(xiàn)在我們用的函數(shù)numStr = str(num),形式上是不是跟數(shù)學(xué)上的函數(shù)一模一樣!只不過,這里的str()這個(gè)函數(shù),python已經(jīng)給我們定義好了,我們只需要調(diào)用就可以了。
這樣python已經(jīng)給我們準(zhǔn)備好的函數(shù),叫內(nèi)建函數(shù)BIF(built-in functions)。要查看python里面所有的BIF,使用dir(__builtins__),注意前后各有兩個(gè)下劃線。dir()也是一個(gè)內(nèi)建函數(shù)喲。我用的python版本一共提供了152個(gè)內(nèi)建函數(shù),我怎么知道的?反正我不是一個(gè)個(gè)數(shù)的。
看到了嗎,len也是一個(gè)內(nèi)置函數(shù),用來量長度。量什么的長度呢,請用help(len)看len的幫助文檔。
請同學(xué)們自己去探索一下每個(gè)內(nèi)建函數(shù)是做什么的,怎么用吧。
看到這,是不是又一次忘了,我們是要干什么的?對了,是為了方便換老公的。知道了str()函數(shù)可以將int類型轉(zhuǎn)換成str類型,我們的url就可以改成這樣啦。
url = "http://cn.bing.com/images/search?q=" + name + "&first=" + str(first) +"&count=" + str(count)
來,測試一下:
這次對了吧。
為了抓老公,經(jīng)過兩期的努力,我們已經(jīng)寫了四行代碼了,可是要是軟件一關(guān),就什么都沒留下,怎么辦呢?我們可以新建一個(gè)擴(kuò)展名是py的文件。
然后將我們的代碼寫在新建的這個(gè)文件里面
看到了吧,在Visual Studio Code里面,不同部分的代碼有不同的顏色,比我們在終端管理器里面好看多了。而且看gif圖里面,我在粘貼完url后前面留了一個(gè)空格,我把他刪掉了,這不是強(qiáng)迫癥,是一定要刪掉的,在python里面是靠縮進(jìn)來識別邏輯層次的。
現(xiàn)在我們運(yùn)行代碼。
注意在運(yùn)行之前先用了一個(gè)內(nèi)建函數(shù)exit(),退出了python的交互式環(huán)境,所謂交互式嘛,就是我輸入一句代碼,就可以讓他顯示一句代碼,用于測試,要運(yùn)行整個(gè)py文件只需要python命令后面加py文件名就可以了,一次運(yùn)行完文件里的所有代碼,就不跟他交互了。
但是,我們發(fā)現(xiàn)運(yùn)行了代碼文件,什么效果都沒有,為什么?因?yàn)槲覀兊拇a什么都沒干,我們定義了變量name、first、count、url,就只是定義了而已。如果同學(xué)們想看url,在代碼后面加一行PRint(url),保存后再運(yùn)行一次,url的值就可以顯示出來了。print()又是一個(gè)內(nèi)建函數(shù),用于將某個(gè)對象打印在屏幕上。
這期我們說了運(yùn)算符和內(nèi)建函數(shù),還使用了str、print、len、dir、help等內(nèi)建函數(shù)。python好用,很大程度上在于他提供了特別多內(nèi)建函數(shù),但是,再多的內(nèi)建函數(shù),也不可能窮盡所有人的需求呀,所以一定有辦法自建函數(shù),下期,我們就來討論自建函數(shù)。
歡迎關(guān)注我的微信公眾號獲取最新文章:
新聞熱點(diǎn)
疑難解答
圖片精選