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