python教程看完了,還是不會編程?

慕課網的教程看完了,上面的習題也都能寫出來,但是讓我自己做個什麼東西,還是毫無頭緒,聽說學習編程的唯一方法就是編程,那我現在編不出來,抄人家博客上的代碼能不能學會點?
ps:現在正在抄一個百度貼吧爬蟲的代碼。


不邀自答.

零基本或者更多沒有太多編寫完整項目經驗的同學, 在初步了解了Python基本語法之後,
可以通過以下方法深入學習:

  • 寫爬蟲, 學習Scrapy框架(難度兩顆星)
  • 建網站或者建立博客, 學習Django框架, 熟悉後轉flask框架(難度三顆星)
  • 學習numpy等包, 用python做科學計算或者數據挖掘等(難度四顆星, 需要一定科研精神)
  • 查看Github上Python項目, 看項目源碼, 給項目寫issue-&>做測試-&>寫文檔-&>改Bug-&>加功能(難度五顆星)

我認為學習一門語言, 首先應該通過網路渠道或者實體書渠道, 做一個完整的小項目(不需要太大).

然後推薦兩個自己以前學習專欄(掩面, 逃..):

  1. 鍾愛Python - 文集 學習爬蟲系列專題
  2. Django之歌 - 文集 學習Django專題, 最後可以建立一個完整的博客.

最後祝好運!


不會是正常的。如果編程是讀個教程就能學會的話,培訓班哪還有活路?

我才你學習的時候肯定忘了一件事:輸出個99乘法表並不是會編程,你得試著去做項目。

項目從哪兒來呢?

其實無論是知乎還是博客這種社區或者GitHub等專業網站,都已經有非常多的、面向新手的成熟案例可以讓你練習自己的技能。

如果你實在懶的找,我這裡匯總了一些,你可以來看看:

動手實操 | 如何用 Python 實現人臉識別,證明這個楊冪是那個楊冪?

網紅和明星越來越像,臉盲症發作了?

別怕,寫個程序幫你認人就行了

提高駕駛技術:用GAN去除(愛情)動作片中的馬賽克和衣服

沒時間解釋了,快上車!

Python抓取花瓣網高清美圖 - 狙擊手+ - 博客園

恩,這個標題就夠清楚了吧~

做完之後的效果是這樣的

從零開始教你用 Python 做詞雲

詞雲是個很簡單但是同樣很好玩的項目,最重要的特性是實用。

在別人用表格做分析的時候,你把下面的圖片拿了出來,震懾全場~

Python Crawler - 網信貸黑名單數據爬取

借錢出去的時候,要不要先看一下借款人的信用?

去看一下信用黑名單吧,要是借款人名字高掛,這錢還是不借了吧

案例里是將結果輸出到txt的,大家也可以嘗試講這些轉成pdf或者輸出到其他更方便查詢的地方~

一件有趣的事:我用 Python 爬了爬自己的微信朋友

不想了解一下自己朋友們的情況嗎?微信加上了一千人,男生多還是女生多?北方多還是南方多?

用這個案例來查看一下吧

Python小工具: 發個周報郵件給老闆

每周都要發周報,煩死了。

照著這個教程做一篇,以後統統全自動發送,爽不爽?

(假裝有圖)

微信公號 DIY:一小時搭建微信聊天機器人

可能是公眾號運營者的福音吧...

微信公號DIY:MongoDB 簡易ORM amp;amp; 公號記賬資料庫設計

恩,公眾號運營福音系列,其實這個系列還有一篇啦,你們點進去就看到了。

我就不貼了啦啦啦~

使用python抓取自住房信息

買房嗎大哥?

Python-WXPY實現微信監控報警 - jaycekong - 博客園

監控報警發郵件經常不看?直接發到你微信上啊

(再假裝有圖)

使用pillow生成分享圖片|夢想.家

一篇很好的實操教程,而且十分細緻。

淘寶商品信息定向爬蟲

絕對的剁手黨福利啊~~~

Python實現車牌定位及分割

1、將採集到的彩色車牌圖像轉換成灰度圖
2、灰度化的圖像利用高斯平滑處理後,再對其進行中直濾波
3、使用Sobel運算元對圖像進行邊緣檢測
4、對二值化的圖像進行腐蝕,膨脹,開運算,閉運算的形態學組合變換
5、對形態學變換後的圖像進行輪廓查找,根據車牌的長寬比提取車牌

光看著簡介就知道值不值得看了。

用Python把圖片變成字元畫

試一下,把劉看山變成字元畫?


你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:

【超全整理】《Python自動化全能開發從入門到精通》筆記全放送


做了一桌子菜,但都是買現成的熟食,你所做的工作只是切切裝到盤子里。每一個import模塊都相當於一塊熟牛肉,但真不能當成我們自己做的。


因為缺少一份行動地圖,對項目的結構,需要用到的技術,以及如何組織,完全不懂。有這樣的結果很正常的。

寫爬蟲吧。

丁衛鋒:Python基本語法學完了,接下來不知道要幹什麼?

引導學習-有朋友總是學的快


其實題主問題中的這句話——「學習編程的唯一方法就是編程「已經回答了這個問題

學完基礎語法後,怎麼才能繼續提高編程能力?

繼續「編」就是了。

這裡推薦先看一下姚冬大大的回答,他說編程不是知識,而是手藝,需要花大量的精力去動手實踐!每看一次都會有很多啟發——編程新手如何提高編程能力?

千萬別把編程看作知識,計算機科學是知識,但是編程是手藝。既然是手藝就要用學手藝的思路去學習。以動手練習為主,看書學習為輔,甚至極端點,初學的時候除了看必要的文檔都可以不看書,等有了一定編程基礎後再去看書,看完書立刻動手編程去驗證書上的理論知識。
……堅持做大量的練習,以代碼行數為例,每年50000行左右是比較一般的練習量,有毅力的話可以挑戰10萬行。回憶下自己當年是怎麼學會騎自行車,學會游泳,學會打籃球的,按照那個思路去學編程,而不是用你學大學課程的思路去學編程。記住,編程是手藝,不是知識。


在明確了「實踐練習」的學習方法之後,學習者就需要想清楚自己學習Python的目的是什麼,以後想往哪個方向發展。

比如說,看了別人炫酷的爬蟲,幾分鐘就可以把幾十萬條數據爬取下來,同時自動生成清晰、美觀的圖表,自己也想做一個;同時,自己以後也想往數據挖掘、數據分析方向發展,那你可以拿這些項目練手:

「Python3 實現火車票查詢工具」

「用 Python3 抓取 12306 的車票餘量等信息,實現一個火車票查詢工具。可以幫大家熟悉 Python3 基礎及網路編程,以及 docopt,requests,prettytable 等庫的使用。」

完成後只需敲一行命令,就能得到如下的信息:

「高德API+Python解決租房問題」

「使用Python腳本爬取某租房網站的房源信息,利用高德的 js API 在地圖上標出房源地點,划出距離工作地點1小時內可到達的範圍。在項目實現的過程中學習requests、BeautifulSoup、csv等庫的簡單使用。」

效果是這樣的:

再進階一點的,還有這些項目:

「給Python3爬蟲做一個界面.妹子圖網實戰」 「Python3 實現淘女郎照片爬蟲」 「基於 Flask 及爬蟲實現微信娛樂機器人」


如果你想用Python開發一些程序或遊戲,可以用這些項目練手:

「200行Python代碼實現2048」

「用200行的 python 代碼完成2048小遊戲的編寫。將學習 Python 基本知識,狀態機的概念,以及編寫 python 遊戲的步驟。」

「Python 圖片轉字元畫」

「用 50 行 Python 代碼完成圖片轉字元畫小工具。將學習到 Linux 命令行操作,Python 基礎,pillow 庫的使用,argparse 庫的使用等。」

再進階一點的,還有這些項目:

「Python開發簡單計算器」 「利用微信API將你的微信變為聊天機器人」 「Python3 OpenCV 視頻轉字元動畫」 「Python 實現康威生命遊戲」 「基於 Flask 與 MySQL 實現番劇推薦系統」


除了上面的項目,實驗樓還有很多Python在信息安全、大數據、人工智慧方面的課程,你都可以在Python學習路徑中找到。

最後一個階段:轉化成自己的項目

經過這些項目練手之後,相信編程能力和編程手感都會有很大程度的提高。但跟著教學文檔一步步實現出來的項目,和自己經過系統思考和填坑一步步實現的,畢竟還是存在著不同的,所以一定要將學到的知識,轉化為自己的項目經驗。

有些課程後面,老師布置了課後作業,大家最好能要獨立思考,完整地把作業實現出來。有些課程雖然沒有作業,大家還是可以發揮創造力,做一個拓展的項目出來。

比如實現了火車票查詢工具之後,可能當時會感覺非常好,自信爆棚,但過幾天讓你不看書,靠自己重新實現一遍,很可能一點頭緒都沒有了,你能說這算是掌握了這個項目嗎?

所以學完之後,你就要想,我能不能仿照這個程序做一個機票查詢工具呢?這個查詢工具能不能集成到微信里,輸入兩個地名就能得到之間的車票信息呢?這個查詢工具能不能加入購買功能,做一個搶票工具呢?

只有完成了這些拓展,才算真正地學會了這個項目和技術。最後,把這個你自己實現的項目寫進GitHub里,也一定會成為一份優質工作的敲門磚。

最後:

感謝每一位耐心看到這裡的讀者。希望每個人都能找到正確的學編程的方法,成為一名真正有編程能力、工作能力的程序員。

Python學習路徑


我字典看完了還是不會寫小說:(


能學會編程語言的人很多,用它來做數學題的很多,但是有用它來創造產品的人很少,因為大多數人對沒有做過的事都不知如何下手。所以我認為正確的做法是:
1、明確自己要做個什麼東西,具有哪些功能。
2、想清楚實現這些功能需要用到哪些技術。
3、將整個軟體功能細分,再進行步驟細分模塊。
4、編碼實現每個功能的每個模塊提供介面並進行調試。
5、整合接入功能模塊並整體調試完成開發。

大二狗,自己做東西時無意總結出來的方法,慎用。


這個挺正常的,就像我把自己稱為「寫代碼的」,而不是「程序員」,這大概就是 coder 和 programmer 的區別。說到底,也就是依靠著 Python 入門友好,才開始入門計算機的。參考計算機本科的教材,更多的除了編程語言之外的其他部分知識,都缺失了。

回到語言本身,大部分 Python 教程恐怕也是淺嘗輒止的類型,稍微講講語法,很多東西別說深入,講明白就不錯了,以至於我一度連 class 的作用都理解不清。而這時候直接上一本深度教材,又發現自己看不懂,或者完全用不到那麼深入的知識,於是長時間陷入了兩難的尷尬境地。我想這個只能靠時間來解決了,多寫,多用,早晚會慢慢學會的。

除了上述的缺失,還有一塊是,演算法上的空缺。就像上面有大神提到的,import 進來的每一個庫,都是一份做好的熟菜,而不是自己的手藝。這當然是 Python 的一大優勢,但很多時候,初學者連這份熟菜怎麼切都要好好學習一番,然後,關於底層的演算法實現,就更遙遙無期了。

上面是說為什麼不會編程,再正面回到題主的問題,如何從「寫代碼的」進化到「程序員」,或者說至少能熟練使用某些語言,省時省力地做一些東西出來?這裡就針對 Python 來說吧,如果自身有某個需求,那就最好了,有方向之後啥都好說;一時間沒有方向的話,那就從簡單的教程開始抄起來,再試試自己能不能改動某些部分。至於選擇哪個方向,這得看自己的興趣和實際需求。

爬蟲我寫過一點,照著教程來,沒有反爬的網站上手不難;Django 那玩意,看過文檔,寫了一點之後發現自己沒什麼興趣,遂放棄;科學計算那塊,從 pandas、NumPy 開始,搭上 matplotlib,基本解決日常問題,然後是躲不了的 SQL 和 MongoDB,隨後逐步接觸 sklearn 和 statsmodels,當然這裡肯定是要接觸一些演算法的,不能只做個調包俠。

Python 當然是可以做很多東西的,但編程的思路不能局限在一種語言上,有餘力了再看看其他語言,哪怕不是 C、C++ 這種重型工具,看看 js、Swift、Julia 這些,我覺得也有幫助。等到某個時刻,發現自己遇到問題後第一個想法是「能不能寫段腳本來解決?」之後,我想,這個時候就能說自己入門了編程了。


找個框架做出個東西來,然後深入研究它。
一個python框架本身是會用到很多的python特性,這樣可以了解框架運行機制同時也知道了這些特性的應用場景。


看到有人回答說找個框架的源碼來看。 個人覺得這會對入門新手是一個大大的打擊。 那些成熟的框架經過了多少次的代碼優化和刪減復用,到我們手上已經沒有多少冗餘的地方。對於寫過不少代碼,想要有提升的話,看框架的確可以。

比如看request的get函數是怎麼實現的

跳轉到get

發現又是調用其他的函數

然後跳轉到這個

這個時候你心裡肯定萬匹草泥馬奔騰而過,每個函數裡面就1,2句實用的語句,而且就只是return一兩句代碼。 大部分的篇幅都是注釋,還是英文的,試問剛入門的你,給你這麼多嵌套調用的類,看著不會懵逼嗎??

對於這些大神寫的框架,我們也只能膜拜。

對於剛入門,不能一開始就這麼打擊信心的。


請看
如何訓練自己的編程思路 - 通過python學會編程 - 知乎專欄


我累個擦,好巧,我今天也是剛研究了下那個百度貼吧的入門爬蟲代碼,估計我們看的是一個。。。同python自學入門中,我之前網易雲課堂的python課程看了一大半,然後由於是零基礎,同時也在看這本書,與孩子一起學編程感覺零基礎看看這本書蠻好的。
大家一起加油咯,感覺新手自學不容易勒:)


看人家demo
最後實在還不會就宣布那個demo是你寫的。。。


學一種程序語言,最好的情況就是帶著需求去學習。題主的情況應該是學習的過程中僅僅是看懂,而沒有加入對如何應用的思考,所以學得不會很紮實,用的時候定位不到對應的知識。
我學習編程的經驗是定一個大目標,比如完成一個自己的爬蟲,或者完成一個購物網站的推薦演算法等等,結合需求去學習,這樣你目標完成之日就是大功告成之時。

另外推薦英文原版的學習資料。

希望有所幫助


慕課網。。這幫人就沒打算教你學會編程啊 你當然學不會啦。。


或許題主是不知道應該做什麼。

特別是編程語言一般都對底層功能做了不同程度的封裝來簡化開發,而使用封裝就意味著要使用庫,使用庫就意味著要先知道有什麼庫。Python是比C/C++更為抽象的語言,沒有庫寸步難行。
但也不是說要把所有常用庫一個一個學起來。

一般的做法是挑一個自己想要的功能,然後設法去實現。這個功能可大可小。然後逐漸往上加功能,自己要什麼功能就去學相關的知識。

我最早開發的網路爬蟲是一個漫畫下載器(IFComicDownloader),用C++和Windows的SDK寫的。後來為了簡化網路(主要是那些檢測reference防外鏈的網站)通信使用了Libcurl,為了便捷添加和修改支持的網站使用了LUA,為了自動更新抓取網頁的腳本而找了個免費的伺服器,為了持久保存數據使用了sqlite資料庫。昨晚我還修改了一個腳本來繞過某漫畫網站的工口物屏蔽(……)。所以說沒有需求就沒有學習的方向。

題主說正在抄百度貼吧爬蟲代碼。按我的觀點,照抄代碼的缺點在於只能知其然很難知其所以然(為什麼這裡要用list,為什麼那邊要用lambda之類的)。這可能導致以後有了需求也想不到怎麼處理。而自己有需求的話,帶著問題去找代碼抄,就可以避免這個問題。

與其是抄百度貼吧爬蟲代碼,不如先想想自己覺得爬蟲需要什麼功能,然後主動去找資料。先從簡單的開始,比如輸入一個帖子的URL,下載一個帖子的所有回復(和樓中樓)到文本文件。然後需求自然會慢慢冒出來的。比如如何繞過百度的「非百度用戶無法查看圖片」,如何方便地統計帖子里最活躍的用戶等等。後來可能演變成統計哪幾個用戶彼此關注,然後搞出一個百度貼吧用戶關聯圖。要分析哪幾個用戶是某ID的小號,或者是廣告號,然後沒準就會去學習numpy玩大數據統計了。


I hear and I forget. I see and I remember. I do and I understand.

任何一門技藝不是看就能掌握的。尤其是計算機,動手能力更是很重要。


我用了半年的時間自學的python,目前可以編寫簡單的爬蟲了.
給點我在學習中的經驗吧.

1.看高手的代碼,仔細跟蹤每一個變數的變化,弄清每一個函數和類的作用.
2.一定要把程序的思路想清楚,這一步比寫代碼重要多了.
3.需要的功能不會寫多百度谷歌,多問高手.


我是自學的php,1個月的時候想寫個留言板,寫不出,於是百度了個簡單的留言板源碼,一邊看一邊寫。
2個月的時候把那個留言板改成了博客,隔幾天加個功能,隔幾天加個功能,然後就找到工作了,現在在開發crm。
剛開始都這樣,就像茶壺煮餃子,有嘴倒不出,主要就是沒有頭緒,只要理清楚第一步幹嘛,第二步幹嘛,就能想做啥就做啥了。


如果實在寫不出,抄代碼是有必要的,慢慢就有感覺了。。。


推薦閱讀:

Python有哪些常見的、好用的爬蟲框架?
如何去尋找網路爬蟲的需求?
Python實現爬蟲代理池?
python分享中初級爬蟲教程泛濫是否有其語法特徵和生態環境的鍋?
python爬蟲如何按序抓取一個頁面上的圖文?

TAG:Python | 編程 | 計算機 | 爬蟲計算機網路 | Python入門 |