Python 學習筆記 Lesson 02 & 03

?這個編程系列我采用的方法是,照著老師課件一步步跟做,遇到問題就記錄,能搜索解決就搜索解決,搜不到的去提問,盡量找到解答。

簡書專欄里有非常完備的新手上路指南(從下載軟件開始),我就不一步步搬運了。

這里主要是根據我在操作時出錯的地方,從小白的角度做下總結,同時也分享入門路上的體驗,希望能對你有點幫助。

本文分兩部分,第一部分是我自己做的課程知識總結,第二部分是錯誤匯總及心得。


一、上課內容復盤:

Lesson2和Lesson3兩節課總的來說都是基礎介紹。

如果說第一節課是入門、安裝,以及熟悉界面的話,第二節和第三節主要就是最基本的功能介紹,簡單概括為四部分,數據結構、條件語句、循環和函數。


數據結構部分,講了編程時用到的基礎元素都叫什么名字、長什么樣、能干什么。

◆整型int(比如2)

◆浮點型float(比如2.15)

◆復數型(比如1+i,課上沒講,估計使用范圍不太多)

◆布爾bool(True/ False)

◆字符串str(一串字符“hello world“)

◆列表list(比如family=[‘dad’, 1.6, 'mom', 2.0, 1.7, 'dog', 1.5])

? ? 列表用「,」分割,用「:」切片,什么類型都能存,可以增改刪。

◆元組tuple (比如 team=[poppy, 5, honey, 3.1, money])

? ?元組與列表高度相似,相關操作也可使用,但不能增改刪。

◆字典dictionary (一堆一一對應的鍵和值,比如score={'marry':68, 'cuihua':86, 'tom':35})

?「:」前是鍵key,「:」后是值value,鍵指向值,字典無序,可以增改刪。

小結:

1、比較容易搞混的是列表、元組、字典的表現形式,即各種不同括號。好在列表和元組基本長一樣,剩下一個就是不常用的{},專屬于字典。

2、字符串、列表、元組和字典,均可使用[ ]取其一部分,只不過[ ]里的內容略有不同,前三個都是有序排列,因此按照0、1、2、3…的順序進行索引,最后一個字典無序,是用「鍵」進行索引。

(其實這么一總結,感覺要記住的東西也不算很多)


條件語句主要判斷是和非,以及如何讓計算機明白『在什么條件下做什么』。

◆布爾表達式(==? !=? <? >? is? is not)

◆邏輯運算符(and? or? not)

◆條件執行(if? elif? else…根據存在的可能性數量,選取對應的語句數)


循環主要是for和while,包括它們長什么樣、各自怎么用、組合在一起怎么用。

每個循環的開始,都要進行一次判斷,然后再逐個訪問元素,找到『目標』、實現『目的』。

◆for:遍歷任何序列的項目,即,逐個過一遍,誰也跑不掉(使用恰當方法,也是跑得掉的,比如continue)

常用格式

for xxx in XXX:

balabalabala

balabalabala

◆while :什么情況下做什么

常用格式

定義變量

while balabala:

balabalabala

balabalabala

更新變量

(在判斷出False時,循環結束)

◆在for和while中,使用break跳出循環,使用continue跳入下個循環


函數分為兩種,一種是Python的內置函數(自帶的工具包),直接拿來用就能出結果;另一種是自定義函數(自己做的工具包),是把具體問題拆分,再把一堆解決步驟打包到一起。

◆內置函數:type()、 int()、 float()、 str()、 len()、 range()、 max()、 min()…

◆自定義函數:形式是? def函數名(參數,可省略),最后返回/不返回結果均可,

調用時使用 ?函數名(參數)。


二、實操過程中的問題總結:

1、 ?變量名稱最好有意義,方便以后操作,比如用height代表高度,從一開始就應該養成好習慣。

2、調用函數時,用的是名稱.函數名()的方式,名稱在前,函數名在后,不要顛倒順序。

3、 對字符形式還是不夠敏感,比如打印時,應該記得加上’ ‘。

4、while循環里特別容易出問題的點就是,執行完一次循環后,忘記將變量更新(比如+1),結果變成了死循環。

5、死循環時,左邊顯示行數的In[ ],會變成In[*]。有*就是有錯

6、將造成死循環的錯誤修改之后,要restart一次(kernel/restart),然后在運行一下(shift

+enter)才可以正常通行,restart代表把原來的內存清零,但是不代表運行。

(另,不建議用restate all,不然會從第一條重新運行,然后卡在你為了復習方便特意保留的出錯kernel,于是剩下的部分就要一條條手動run…別問了,我就是知道…)。

7、數字作為判斷條件時,要注意=的影響,以下是個錯誤案例,我在條件里多打了一個=(老師的例子里 number <20),實際上是沒有的。

以下是正確的:

8、在循環中出現的問題,有時候只是因為縮進的位置不對造成的,感覺python對于「對齊」還是有比較深的執念,不同的語句都要跟對等的條件保持對齊。

9、error出現在哪一行,不代表問題就在那一行,只是剛巧運行到它執行不下去了。出了問題多往前翻翻。

計算加班工資的練習,出現以下錯誤

實際上與21行沒關系,錯誤在于,先定義user = str,卻判斷時卻拿它和整型0對比

10、不要打錯字!不要打錯字!不要打錯字!


心得:

基礎知識看似簡單,但是學習過程中發現一個比較明顯的問題:學得越多,越感覺混亂。雖然每次做作業練習時還算順利,但等過后回頭去想,感覺各種知識點好像又都混在了一起。

感覺出現這個問題的主要原因在于,對于概念不夠清晰。

從數據結構開始,雖然從布爾、整型到元組、字典,每個都掌握了,但由于練習過少,對于它們之間的差別(包括()/[]/{},各種命令調取時的方式等等)都不能快速辨別。

一個有用的對策就是,像上面第一部分那樣,把學過的東西歸類和總結,過程中會發現一些共通點和差別,把這些內容重新歸類,就是個內化的過程。

合并同類項的好處是,給大腦減輕點負擔,而且也能夠查缺補漏。

另外分享一個學習課程時使用的方法,老師在講課時提出一個新的概念,在應用它之前,可以先暫停視頻,根據要求自己試著做一下,然后再與老師做的對比。

對于一直沒有在課前進行預習的同學來說,這種回看過程中的『迷你預習』,能讓自己更加投入,也印象更深點,算是對沖沒有課前預習的損失。


推薦閱讀:

Python 學習筆記 Lesson01

努力做個沉迷學習的好少年!——元學習課實踐及體驗

歡迎關注微信公眾號,LY加油站。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,886評論 18 139
  • 前言 ||| 第二章 使用ArcPy編寫腳本 Python支持大部分在其他語言中出現的編程結構。在本章內容中,我們...
    muyan閱讀 90,187評論 10 55
  • 教程總綱:http://www.runoob.com/python/python-tutorial.html 進階...
    健康哥哥閱讀 2,068評論 1 3
  • 翻謀稱世子,兵馬上英雄。 皇權帝王令,伐權北上平。 輕賦吏無壽,九正費黃門。 若有倉舒在,誰為天子生。 【2016...
    三古月南閱讀 205評論 0 1
  • 榮豐八年冬,北漠的天氣像是要刻入骨子里一般凜冽。大漠本就干燥,加上冬季大風肆虐,沙漠里常常刮起一陣裹挾著沙礫的旋風...
    啊林素染閱讀 230評論 0 0