Python進階系列連載(1)——那些容易被忽略的問題(上)
作者:王大偉 Python愛好者社群唯一小編,請勿轉載,謝謝。
出處:Python進階系列連載(1)——那些容易被忽略的問題(上)
小編配套免費影片教程:
Hellobi Live | 破冰入門Python
課程內容:
1、Anaconda安裝2、jupyter常用操作3、Python基本資料型別4、Python基本運算和表示式5、Python程式基本控制流程(順序,分支,迴圈)6、Python特色資料型別(列表,元組,字典,集合)7、Python函式8、Python模組匯入使用之time、random模組9、Python異常處理10、Python檔案操作 11、Python後續學習提升方向和建議
公眾號:Python愛好者社群(微信ID:python_shequ),關注,檢視更多連載內容
前言
哈嘍,大家好,入門部分連載一路走過來,得到了很多好評
原因主要是:
1。通俗易懂
2。幽默風趣
我將延續這個傳統,繼續進階部分的連載
如果還沒看過我的入門連載部分,先看:
https://
ask。hellobi。com/blog/wa
ngdawei/10288
當然,小編的
免費入門課程
已經有咯,看過連載的朋友可以看看影片再快速梳理一遍~
影片傳送門:
https://
edu。hellobi。com/course/
234
因為個人原因,最近沉迷機器學習,所以最近連載速度可能不是很快,見諒
本篇我們來聊一聊一些在入門部分容易被忽略的問題
int()強制轉換浮點數
在int()的強制轉換浮點數時候,不管是正數還是負數,只取整數部分。
注意:這裡不是向上或者向下取整,也不是四捨五入。
無限遞迴
還記得我們講的俄羅斯套娃麼,還記得數列求通項公式麼,都用到了遞迴的思想
如果不記得了,記得回看入門教程哦~
遞迴是為了將問題簡化為更小規模的同類型問題,最後加以解決。
但是有一種情況是遞迴時不斷呼叫自身,達到不了最簡單的情況(例如俄羅斯套娃一層層開啟到最內層的)
所以一直找不到遞迴的出口
說了這麼多,我們看個例子:
我們定義了一個函式名為recurse
然後函式體中呼叫自身
當我們執行呼叫這個函式時,系統丟擲異常,意思是達到了最大的遞迴深度。
你可以認為系統設定了一個最大遞迴次數,如果超過這個次數還沒解決問題,則丟擲異常
簡答點說,就是:
繞來繞去你怎麼還沒解決問題,你是要上天麼!
#FormatImgID_7##FormatImgID_8#
這種問題,我們要避免
!
字串是不可變的
在入門階段我們說過,字串和元組是不可變的資料型別,那字串的不可變體現在哪呢?
看個例子:
如果我想改名字,而且改的是姓【不要當真,只是為了舉例子,我爸應該看不到這篇文章的】
我把姓 ‘王’ 改為 ‘ 方’,我就做了如下修改:
結果丟擲異常,提示不讓我修改,這體現了字串的不可變性,如果你執意要改呢?
可以這樣
聯合使用字串的切片和拼接完成~
一些遺漏的字串方法
upper()和lower()方法
upper()能將一個字串的字母全變成大寫,lower()與之相反:
find()方法
find()可以在字串中查詢子串是否存在:
如果找到,返回的是子串的起始索引位置,例如Hello是從字串索引0位置開始,空格是在索引5位置
當找不到子串時,返回-1,而不是丟擲異常
還可以限定查詢開始的索引位置:
我們知道,空格的索引是5,當我們從索引3開始往後找,能找到空格
當我們從索引7開始找,則返回沒找到,因為索引7已經在索引5之後了
注意操作的返回值
我們用a來 接盤 , 啊呸!
接收
來自print的返回值,發現a是NoneType,所以print是沒有返回值的
例如在列表中,你希望接收排序的結果,你可能會這樣寫:
發現這樣是沒有結果的!
你還能找出哪些容易犯錯的地方呢?
人生苦短,我選Python!
下課!
作業:期待下一次連載【壞笑】
未完待續~