Python讀書筆記20
上期和大家分享了函數如何返回值。其中有個案例是實現知道邊長輸出正方形面積。
我們來回顧一下!
假如我們有一個L的列表,能否批量實現開平方的運算並賦值給新的列表呢?
當我們定義這樣一個函數的時候,square參數可以輸入哪些變數的實參?
首先哪些變數可以使用in函數來查找?
1、字元串;2、列表;3、元組;4、字典
那本函數想要不報錯,哪種類型作為實參是可以的?
這個函數哪些實參可以呢?
決定自定義函數實參類型是否報錯由什麼決定呢?
是由這個函數的使用決定的,針對第二個函數,我們實現的功能只是列印而已,則上述四種類型變數均可!
第一個函數,我們要實現的數學運算。則不能傳遞任何字元串的信息進函數。包括不能使用字元串;不能使用含字元串的列表、元組;不能使用鍵名稱是文本的字典。
其他的變數類型能否成功,請各位自己編輯試一下~
上面的函數可以實現列表作為參數輸入,但是卻分別輸出結果的,能否輸入一個邊長列表,輸出平方後的面積列表呢?
提問:當我們調用函數的時候,Python提示我們Slist沒有定義,那為什麼L和S沒有定義沒有報錯,而Slist.append()卻報錯呢?
回答:因為L和S都有過賦值,Python在第一次賦值的時候對變數進行了定義!
提問:S = L**2 這個是賦值我理解,L本身沒有賦值哇!
回答:for L in L_list 本身循環語句第一次執行的時候等同於 L = L_list[0] 此時已經做了賦值了,所以本次賦值決定了L的變數類型
而Slist從始至終沒有定義過數據類型,直接調用append方法當然會報錯了!
提問:如何解決呢?
回答:可以考慮增加一下有默認值的形參來解決這個故障!
這樣在定義函數的時候,我們已經將Slist賦值為空列表,已經確定了他的變數類型。
就醬,下期繼續分享函數與列表的那些事~
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※Python領域最偉大工程師Kenneth Reitz的逆襲之路
TAG:Python |