尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
背景
- 本文主要根據作者2個月以來對於 300 人的零基礎python教學經驗總結而出,適合零基礎、負基礎學習 python 編程語言的同學閱讀。
- 本文所述僅僅是方法,看完本文並不會讓你學會任何一門編程語言,僅僅能讓你少走一些彎路,少被毒害一些。
我們來探討的問題是 —— 如何從零開始學習 python。
相信你能看到這篇文章,一定心里有一個 學習編程 或 教編程 的想法,本文分享的知識可以為這兩個目標提供一些參考價值。
我分析了一下情況,發現以下幾個比較有意思的點:
- 來學習的人之中有 70%是女生。
- 學生黨和工作黨的比例是 3:2。
- 絕大部分人一天只能抽出1~2個小時學習(非脫產)。
- 基礎幾乎都沒有。
學編程從理論還是從訓練開始?
這個問題讓我回想到了自己的科班的學習過程,有這樣一個故事給大家分享:
2012年,過年回家的火車上,我提著行李走上了擁擠的車廂,對面的小哥頂著蓬鬆的頭髮,我知道,這也許是我的同行。
24小時的上海到貴州的旅程就沒那麼孤單,因為我們都在討論架構、算法、編程學習…
這個工作了5 年的前輩給我的建議是,你現在看這個架構、編程理論等書籍,不求甚解即可,等你有了大把經驗,回來很快就能秒懂。
這個故事讓我思考了學習的兩種不同的模式。
- 想要通過學習 python 編程完成一個自己的個人網站。
- 想要通過學習 python,對比 python 和其他腳本編程語言的設計優劣,然後改進之。
具體我就這就不多說了!
開始學習
從一個故事開始學習變量和判斷
首先我們從一個老媽買菜的故事開始,第一周學習的內容是學習變量,可以看下面一張圖,我們是如何教變量的,記住這個是第一天,第一天學習編程,就要開始寫代碼,這是我的教學過程要堅持的。不管寫的多,寫的少,都要開始模仿開始寫。
需求是下圖這樣的:
我們來看代碼
#!/usr/bin/python # -*- coding: utf-8 -*- # @author: Guoshushu # For beginner # 1. variable - num,str,boolean # 2. if # 3. > < >= <= == # 4. print def main(): who = 'xiao的老媽 ' good_price = 6 #小販的價格 good_description = "西雙版納大白菜" #小販的招牌 is_cheap = False #是否便宜 reasonable_price = 5 #老媽能接受的最高價格 buy_amount = 2 #準備買 2 斤 # 開始你的表演 # go 我們來走一組 print "%s上街看到了%s,賣 %d 元/斤" % (who, good_description, good_price) if good_price <= reasonable_price: print '她認為便宜' is_cheap = True print '她買了 %d 斤' % (buy_amount) else: print '她認為貴了 ' is_cheap = False print '她並沒有買,揚長而去' #homework #1. 看 day1-homework.py # run function if __name__ == '__main__': main()
看到了麼,這一段代碼做到了我們的需求,而且完全是 自然語言編寫 ,普通人都可以看懂,我們教會了:
# For beginner # 1. variable - num,str,boolean # 2. if # 3. > < >= <= == # 4. print
可以注意到一點,我沒有教大家學習 if __name__ = 「__main__」: 這些事什麼意思,而是讓大家開始模仿,大家都是成年人,都有悟性,不需要花費太多的時間去低效地學習理論,之後自然會明白。
上面這一段代碼,看懂就可以了麼?
不,自己在電腦上面打一面,真正打了過後,就會發現其實看懂是沒有用的,因為他們會發生以下的問題。
- 跑代碼前沒有保存成.py的文件;
- if之後的符號用了中文的:(冒號)。
- 縮進寫錯了報 indent error。
- True和False寫成了 true 和 false。
- name 寫成了 name
- 64位的系統裝成了32位 python,雖然已經提醒過。
- 變量名字之間用了空格,報錯。….
這些問題,不去實際寫代碼是發現不了的,但是好消息是,發現了一次,之後就基本不會再犯錯了,所以我們說編程模仿練習的必要,以及編程中犯錯報bug的必要。
如何學習列表
這里再舉一個學習列表的例子,我們來看下面的代碼:
# -*- coding: utf-8 -*- # @author: Guoshushu def main(): good1 = '大白菜' good2 = '空心菜' good3 = '花菜' good4 = '生薑' good5 = '小龍蝦' # ....... 省略掉 100 個 good100 = '蚌殼' print '老媽看到了 %s '% (good1) print '老媽看到了 %s '% (good2) print '老媽看到了 %s '% (good3) print '老媽看到了 %s '% (good4) print '老媽看到了 %s '% (good5) def main2(): goods = '大白菜,空心菜,花菜,生薑,小龍蝦' print '老媽看到了 %s' %(goods) def main3(): print '-------' lst = ['大白菜', '空心菜', '花菜', '生薑', '小龍蝦'] #列表 for lst_item in lst: #遍歷 print '老媽看到了 %s '% (lst_item) if __name__ == '__main__': main() main2() main3()
相信大家已經看到了,這一段是說明列表為何要使用,學習的過程需要了解為什麼要用列表,那就是 變量不夠用了嘛。
我們看上述3個函數就能夠明白,列表這個數據結構的演變過程,其實就是變量不夠用了,要用一個更牛逼的結構來一次放很多個數據,這樣理解起來會很自然。
相似的方法我用到了教授元祖、數組等等方面,你要如何學? 我給你的建議就是,用起來,用起來。
所有的 3 周的學習的代碼,我已經上傳網盤。你們需要可以關注我,然後私信我01即可。
包括學習資料視頻和百道練習題及答案
一個月的知識匯總:
練習在編程入門的過程中,的確是最重要的,希望看了這一篇文章的同學,如果有對於編程學習的想法,一定不要止於看書、止於假學習,這個技能,是一行一行敲出來的。共勉!