1. python學習
人工智慧這個概念很大的,涉及邏輯推理、機器學習。從應用的角度,自然語言處理也是人工智慧的一個子領域。學習python,跟是否要學習人工智慧關系不大。
學習python,最基本的就是要掌握list(相當於c++中的vector,但list是廣義鏈表,比vector靈活)、dict(相當於c++中的map)、正則表達式(import re)、sort函數(個人是搞自然語言處理的,感覺這個函數使用頻度很高)、函數的聲明與定義。在此基礎上,可以涉及一些模塊、類的概念(在寫中小規模程序時,這兩個不是使用頻度很高的概念)。
學習python,藉助書籍系統學習是必須的:1)如果你的編程功底足夠好的話,可以看快餐教程——http://wenku..com/view/c98aaafdc8d376eeaeaa31ba.html,當年學習python時,導師跟我講只要兩小時就可以學會,但我學了兩天,究其原因,就是編程功底不符合導師的預期;2)如果想深入學習——http://wenku..com/view/368ef2d6195f312b3169a597.html,我主張看英文資料,也就是要掌握學習中的第一手資料;3)此外,在《python簡明教程》也推薦了大量書籍,都很不錯,且大多可以免費獲得,可以參考一下。
學習python,很重要的一個方法是要學會看文檔,以linux環境為例,在終端下鍵入「python」回車;鍵入「help(list)」,就會顯示list所有函數的用法;如果你想查str類下的find函數,可以鍵入「help(str.find)」。記住:這里顯示的內容是最原汁原味的python教程,但只具有參考手冊的性質,在系統學習之後,才可以熟練應用。
2. 如何開始使用PyCharm,並擁有一個高效的Python IDE
初步使用
當您第一次啟動PyCharm的時候,他會問你要使用的鍵盤布局和主題。我不喜歡它的Emacs鍵盤映射,所以我用的是默認的Mac OS X鍵盤映射並且自定義了我想要的快捷方式:
如果這是你第一次使用PyCharm,並沒有什麼配置可以導入的。你可能會想在歡迎屏幕中點擊「配置」,設置一些基本的配置:
我喜歡顯示出行號和方法分隔符(Editor→Appearance→Show method separators, Show line numbers):
另外,我喜歡Solarized主題。我遵循指示安裝了它,並選擇它作為編輯器的默認主題→顏色和字體。 淺色版的Solarized IntelliJ有一些奇怪的顏色選擇(例如,它採用灰色為默認的文本,而不是更清晰的黑色),所以我在編輯器上進行了修改→Colors & Fonts→General。我的建議是不要害怕修改顏色為你自己喜歡的。你可以導出你的配置,以防你需要重新安裝PyCharm。
相比於別的一些IDE,我覺得PyCharm在視覺上的效果上非常干凈,如果你想要一個更簡潔的用戶界面,您可以隱藏工具欄,工具按鈕,導航欄和狀態欄(在視圖菜單上):
Virtualenv和Python解釋器
您可以創建新的項目文件→File→New Project or open an existing project withFile→Open Directory。 PyCharm支持多種類型的Python項目,如Django,Flask等等。在這里,我將創建一個簡單的項目,以測試pyquery庫(我會選擇「Empty project」)。
你需要告訴PyCharm你想用哪個Python解釋器,因為它可以使用不同的解釋器對於不同的項目。它將利用這些信息來索引的所有可用的庫。一個好的做法是對於每個項目建立一個virtualenv。您可以使用一個已經存在的virtualenv或從PyCharm創建一個新的(Settings→Project Interpreter→Python Interpreters)。
對於這個項目,我將創建一個新的virtualenv並使其用於所有的項目:
您可以快速搜索,閱讀說明,並從PyCharm安裝軟體包。沒有什麼是你在在終端上不能做的,但它能夠使你無需離開IDE,更加方便地夠搜索包。
一些軟體包可能需要安裝一段時間,特別是如果他們需要進行編譯。 PyCharm運行安裝過程是在後台,你可以通過單擊狀態欄看到正在發生的事情:
正如我們所看到的,它不僅安裝pyquery報,所依賴的包,如lxml也一並安裝(正如我們所期望的):
快捷鍵
PyCharm是沒有Vim的,但你也可以只靠鍵盤做很多事情。您可以將快捷方式設置到幾十個(如果不是數百個)快捷動作在Settings→Keymap。我修改了相當多的默認鍵盤映射,因為我喜歡有像Control-a, Control-e, Control-k,and Control-y那樣的快捷鍵,而這幾個快捷鍵在默認情況下多用於文本框,並沒有設置默認在「Mac OS X」的鍵盤映射。您還可以定義滑鼠快捷鍵。舉例來說,我使用Option-Click來改變快速文檔。如果你是一個Vim的用戶,您可能希望嘗試一下IdeaVim,一個Vim的模擬器插件。我聽說過這個好東西,但我沒有機會去嘗試它。
我用的是Dvorak keyboard layout,但煩人的是,一但用到不對的快捷鍵就會有bug。有人反映了這個問題,French Canadian and German layouts也有這個問題。這意味著我必須重新綁定不少的快捷方式來避免這個問題。
PyCharm使用功能鍵,如F1和F2等很多。正如你可能知道的,在Mac上,頂部的按鍵多作為默認「多媒體」鍵,並通過按下Fn鍵的來生效。我們可以在System Preferences→Keyboard交換這種方式。
我希望能夠控制音量和改變亮度,而不需要使用Fn鍵,但我也喜歡使用功能鍵,而無需觸碰較遠的Fn鍵(我很懶惰,我能說什麼?)。我用Palua在「多媒體」和功能鍵之間切換。你可以用全局鍵切換,也可以配置Palua在使用特定應用程序時,自動切換。我為所有應用程序使用多媒體鍵的(默認值),並配置Palua為Xcode和PyCharm使用功能鍵。
外部編輯器
PyCharm可以啟動任何外部工具,所以我將其配置用Emacs來打開當前文件。當你想要利用你喜歡的編輯器(Emacs,Vim,TextMate等等)做一些快速編輯,這非常有用。
進入Settings→External Tools,確保「Open console」未選中,將路徑插入程序,參數(在這種情況下,我們可以用FilePath來得到完整的文件名)和工作目錄(ProjectFileDir/ FileRelativeDir /)。
你可以把它分配給一個快捷方式:
現在它可以從菜單欄獲得。
運行代碼和REPL
PyCharm有很多方式來讓我們運行代碼。我們可以用古老的print 函數(或聲明語句,這取決於你的Python版本),在REPL導入代碼,發送代碼到控制台,使用調試器,或在終端上使用IPython。
列印輸出
使用列印來顯示值是一個有用的並被廣泛使用的技術,但是如果不小心使用的話,它可能會導致混亂的代碼。
如果該文件已被選中運行,我們可以通過單擊「play」按鈕或Control-R來開始。
如果沒有選擇文件來運行,會從上下文菜單中選擇一個文件,用Control-Option-R或右擊來運行她。 PyCharm會記住你的選擇,下一次你可以繼續使用Control-R。這聽起來很復雜,但它其實非常簡單。檢查手冊,以便了解更多的信息。
控制台和REPL
我最喜歡的方法是在REPL運行代碼。您可以在PyCharm的工具欄中打開一個Python控制台,Tools→Run Python Console(我已經分配到Control-C)。它會使用IPython(如果可用)(我建議你在virtualenv內安裝IPython),並將當前文件的路徑添加到Python的路徑。在控制台上,你可以像往常一樣導入你要來執行的功能。
在控制台中補全功能仍然可用:
我們可以像平時一樣正常使用已經導入的函數,並且可以利用⌘–4輕松切換控制台的可視性。
在控制台執行所選擇的代碼
如果我想運行的代碼是多了幾個單行,並沒有編寫正式的單元測試(例如,可能我玩的是數據)我可以將它保存在一個臨時文件。我們可以選擇我們想要運行的代碼(通常我只需要利用⌘-A選擇整個文件),並選擇從上下文菜單中選擇「Execute Selection in Console」(或者,更好的方式,使用鍵盤快捷鍵)。 [我省略了一些菜單項中的截圖以使文章短一些。
在下面的例子中,標題變數在控制台中可用,因為我們在控制台中選擇整個臨時文件來執行:
宏
如果我們可以在一個操作中發送整個文件到控制台,那就太好了。幸運的是,我們可以記錄一個宏。選擇Select Edit→Macros→Start Macro Recording and performthe operations as before(選擇整個文件,發送到控制台,切換到控制台)。正如你所看到的,我的宏只有四個動作(我按向下箭頭鍵取消選擇):
當您錄制的宏已經在宏菜單,你可以分配給它快捷方式(我使用Control-C Control-E,但由於某些原因PyCharm只顯示兩個快捷方式的一半)。
調試
很多人喜歡使用調試器來檢查數據。即使我喜歡使用REPL,有時調試程序更有效,在檢驗復雜的對象時尤其如此。 PyCharm不允許你在一個空行設置一個斷點,因此,在這短短的例子,我不得不添加一個額外的行(我使用print函數,但我本可以使用pass),因為我想要調試停止在設置的headlines變數後。在真正的代碼中,很少有這個必要。
IPyhton
最後,利用IPython來運行外部終端並使用一些功能,比如%run和自動重載沒有任何不妥。
搜尋命令
這很容易變得不知所措,因為有這么多的命令。如果您在Mac上使用PyCharm,你可以像往常一樣使用Help→Search,或者您可以在任何平台上使用Help→Find Action。它可以讓你搜索任何PyCharm命令,包括不能從菜單中獲得的。 (Emacs的使用者會注意到這有點類似於Emacs的M-X)。這是非常有用和強大的功能,我一直使用它。
代碼補全
代碼補全功能在PyCharm上是一流的。默認情況下PyCharm會在你輸入的時候給出建議:
由於此功能可有點耗電,你可以通過選擇File→Power Save Mode來禁用它。您仍然可以通過Control-Space顯式使用這一功能。
在輸入的時候,您可以通過鍵入一個子串來縮小建議列表:
或者,您可以鍵入CammelCaseClasses或function_names_with_underscores的第一個字母:
如果您鍵入Ctrl-Space一次,PyCharm將嘗試列出最相關的項目:
如果你再次鍵入Control-Space,將列出它所知道的每一個名字。這可能是壓倒性的,但要注意,它列出了沒有導入的文件 bar.py中的函數name_of_mother。
但往往你只是想補全在打開的緩沖區中的一個局部變數的名稱。很久以前可以在Emacs和Vim實現這一功能,二現在也可以在PyCharm上實現。手冊將其稱為Hippie Completion,但實際的命令名稱(即,你會發現在Find Action的那個名字)是「Cyclic Expand Word」,並且在我的測試中,它甚至對文檔字元串有效。
代碼補全可能無法在某些情況下工作,比如當一個庫沒有類型提示。這個StackOverflow頁面建議在PDB中設置斷點並用dir列出所有可能的屬性。一個類似的解決方案是在PyCharm創建斷點,並執行一條表達式——通過在調試工具欄點擊最後一個圖標(或使用適當的鍵盤快捷鍵)。在這種情況下,我計算的表達式是「dir(r)」。
訪問文檔
PyCharm有三種方式可以訪問文檔:快速定義,快速文檔,外部文檔,以及參數信息。您可以從查看菜單或者從各自的快捷方式去訪問它們。
快速定義將顯示整個定義的符號(類,方法,功能等)的(廢話!),當然也包括文檔。如果你只是想快速瀏覽一下的定義,而跳躍到它是很有用的。
快速文檔將顯示符號的文檔和簽名。
最後,外部文檔,以及參數信息是非常簡單的。第一個在默認瀏覽器中打開文檔,第二個給出了一個函數或方法(例如快速查詢關鍵字參數的名稱是很有用)參數信息。
外部文檔工作外適用於Python(當然),PyQt4,PySide,GTK,WX,numpy,SciPy,和kivy,並且您可以為外部文檔添加路徑,在Settings→Python External Documentation中設置。
代碼質量
當你在打字的時候,PyCharm會檢查你的代碼是否符合PEP8。它會讓你知道,你是否有太多的空格或空行等等。如果你願意,你可以配置PyCharm運行pylint作為外部工具。
在源代碼找到自己的方式
當你掌握了它的導航命令時,PyCharm開始變得強大起來。它可以跳轉到類,函數等等。在Mac上你可以利用⌘-B或者⌘-Click跳轉到類,方法,函數,變數的定義,同樣在Windows和Linux上使用 或Ctrl-B或者Ctrl-Click。
導航到類,文件或符號的機制幾乎是一樣的。在你輸入一個字元串的時候,你將看到一個對話框,包括你當前項目以外的項目,同市匹配過濾的結果。轉至導航菜單或使用相應的鍵盤快捷鍵:
這是一個類定義典型的對話框:
你可以輸入名稱的一部分,包括文件擴展名。舉例來說,如果你想打開Django項目的一個JavaScript文件是,但又不記得它的名字,你可以搜索「.js」。
這些功能使我們能夠非常快速地瀏覽源代碼。假設我們正在研究Django的源代碼,我們希望看到的是功能實現的過程。我們不知道它的定義,所以我們去Navigate→Symbo(⌥-⌘-O),輸入「render」,並選擇第一個選項(我們可以看到它在django.shortcuts定義)。如果我們隱藏了導航欄,我們可以使用Navigate→Jump到導航欄(⌘-↑),快速顯示它並查看該文件定位(django→django→shortcuts.py):
有時在去掉你並不感興趣的那部分東西之後,代碼補全的效率會更高。在下面的例子中,我刪除相關的JavaScript的結果,得到了一個更加簡潔的列表:
PyCharm可以讓你折疊塊,如類,方法和函數,但你可以創建自己的可折疊的區域。當涉及到成組的一些東西時,就很有用(類,方法,函數等)。這些模塊可以折疊的話,會使我們能夠專注於代碼的特定區域。你可以通過Navigate→Custom Region或使用相應的鍵盤快捷鍵來顯示列表文件中的所有區域。遺憾的是有沒有辦法在一個工程中列出所有區域。
單元測試
在我們可以運行測試文件之前,我們需要添加一個新的運行/調試配置。我們去Run→Edit Configurations,然後點擊在左上角的加號按鈕。然後,我們選擇「Python tests」,開始測試。在這個例子中,我將使用單元測試:
最後,我們需要添加這些測試的文件夾,並選擇正確的Python解釋器:
現在就像我們運行代碼一樣,我們可以運行我們的測試:通過點擊工具欄或者選擇Run→Run(Control-⌥-R)。這將打開一個對話框,你可以在對話框中選擇你想要運行的代碼(你可以運行別的)。您可以進行所有測試或僅測試游標。
當你運行測試是,PyCharm會記住你最後的選擇,這樣你就可以利用Control-R來重復測試。這非常有用,如果你解決了一個特定的測試情況,並希望多次運行它,但不運行其他測試。你並不需要定位到你想要運行的測試文件;你可以從任意文件中運行測試。您可以通過選擇Navigate→Test(或相應的熱鍵)完成代碼的測試。
處理多個文件
正如你看到的那樣,PyCharm為每一個文件使用一個標簽
要切換到標簽,我們可以使用命令選擇下一個標簽或者選擇上一個標簽。默認快捷鍵是Control-→ 和Control-←,但OS X使用這些按鍵,讓我重新綁定它們至Control-⌘-N
和Control-⌘-P(在終端我使用同樣的快捷方式切換標簽頁)。
一個更直接的方法選定標簽就是使用Navigate→File,或者View→Recent Files(⌘-E)和View→Recently Changed Files(⇧-⌘-E)。最後兩個命令將顯示文件,你可以通過輸入子串來縮小選擇范圍。在下面的例子中,我只需要輸入「⌘-E」,「S」,「ENTER」鍵進入scratch.py文件的標簽:
多窗口
PyCharm支持多窗口,雖然不如Emacs中那麼優秀,但也足夠用了。
在默認情況下沒有已分配的快捷方式來處理分割窗口,所以你必須自己做。這些是我用的快捷鍵:
垂直分割,Control-S
水平分割,Control-H
非剖分,Control-C Control-U
非剖分所有,Control-C Control-A
轉到下一個分離器,Control -C Control -N
轉到上一頁分離器,Control -C Control -P
移動到相對組,Control -C Control –M
再有兩個窗格的情況下拖動標簽比較方便。
3. python中mysqldb的connect怎麼驗證是否連接成功
代碼如下:
# -*- coding: utf-8 -*-
#mysqldb
import time, MySQLdb
#連接
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="test",charset="utf8")cursor = conn.cursor()
#寫入
sql = "insert into user(name,created) values(%s,%s)"param = ("aaa",int(time.time()))
n = cursor.execute(sql,param)
print n
#更新
sql = "update user set name=%s where id=3"param = ("bbb")
n = cursor.execute(sql,param)
print n
#查詢
n = cursor.execute("select * from user")
for row in cursor.fetchall():
for r in row:
print r
#刪除
sql = "delete from user where name=%s"
param =("aaa")
n = cursor.execute(sql,param)
print n
cursor.close()
#關閉
conn.close()
復制代碼
基本的使用如上,還是很簡單的,進一步使用還沒操作,先從網上找點資料放上來,以備後續查看1.引入MySQLdb庫
import MySQLdb
2.和資料庫建立連接
conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable",charset="utf8")提供的connect方法用來和資料庫建立連接,接收數個參數,返回連接對象.
比較常用的參數包括
host:資料庫主機名.默認是用本地主機.
user:資料庫登陸名.默認是當前用戶.
passwd:資料庫登陸的秘密.默認為空.
db:要使用的資料庫名.沒有默認值.
port:MySQL服務使用的TCP埠.默認是3306.
charset:資料庫編碼.
更多關於參數的信息可以查這里
http://mysql-python.sourceforge.net/MySQLdb.html然後,這個連接對象也提供了對事務操作的支持,標準的方法commit() 提交
rollback() 回滾
3.執行sql語句和接收返回值
cursor=conn.cursor()
n=cursor.execute(sql,param)
首先,我們用使用連接對象獲得一個cursor對象,接下來,我們會使用cursor提供的方法來進行工作.這些方法包括兩大類:1.執行命令,2.接收返回值cursor用來執行命令的方法:
callproc(self, procname, args):用來執行存儲過程,接收的參數為存儲過程名和參數列表,返回值為受影響的行數execute(self, query, args):執行單條sql語句,接收的參數為sql語句本身和使用的參數列表,返回值為受影響的行數executemany(self, query, args):執行單條sql語句,但是重復執行參數列表裡的參數,返回值為受影響的行數nextset(self):移動到下一個結果集
cursor用來接收返回值的方法:
fetchall(self):接收全部的返回結果行.
fetchmany(self, size=None):接收size條返回結果行.如果size的值大於返回的結果行的數量,則會返回cursor.arraysize條數據.
fetchone(self):返回一條結果行.
scroll(self, value, mode='relative'):移動指針到某一行.如果mode='relative',則表示從當前所在行移動value條,如果mode='absolute',則表示從結果集的第一行移動value條.
下面的代碼是一個完整的例子.
#使用sql語句,這里要接收的參數都用%s佔位符.要注意的是,無論你要插入的數據是什麼類型,佔位符永遠都要用%ssql="insert into cdinfo values(%s,%s,%s,%s,%s)"#param應該為tuple或者list
param=(title,singer,imgurl,url,alpha)
#執行,如果成功,n的值為1
n=cursor.execute(sql,param)
#再來執行一個查詢的操作
cursor.execute("select * from cdinfo")
#我們使用了fetchall這個方法.這樣,cds里保存的將會是查詢返回的全部結果.每條結果都是一個tuple類型的數據,這些tuple組成了一個tuplecds=cursor.fetchall()
#因為是tuple,所以可以這樣使用結果集
print cds[0][3]
#或者直接顯示出來,看看結果集的真實樣子
print cds
#如果需要批量的插入數據,就這樣做
sql="insert into cdinfo values(0,%s,%s,%s,%s,%s)"#每個值的集合為一個tuple,整個參數集組成一個tuple,或者listparam=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))#使用executemany方法來批量的插入數據.這真是一個很酷的方法!
n=cursor.executemany(sql,param)
4.關閉資料庫連接
需要分別的關閉指針對象和連接對象.他們有名字相同的方法cursor.close()
conn.close()
四步完成,基本的資料庫操作就是這樣了.下面是兩個有用的連接MySQLdb用戶指南: http://mysql-python.sourceforge.net/MySQLdb.htmlMySQLdb文檔: http://mysql-python.sourceforge.net/MySQLdb-1.2.2/public/MySQLdb-mole.html5 編碼(防止亂碼)
需要注意的點:
1 Python文件設置編碼 utf-8 (文件前面加上 #encoding=utf-8)2 MySQL資料庫charset=utf-8
3 Python連接MySQL是加上參數 charset=utf8
4 設置Python的默認編碼為 utf-8 (sys.setdefaultencoding(utf-8)復制代碼 代碼如下:
#encoding=utf-8
import sys
import MySQLdb
reload(sys)
sys.setdefaultencoding('utf-8')
db=MySQLdb.connect(user='root',charset='utf8')註:MySQL的配置文件設置也必須配置成utf8
設置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都設置默認的字元集(通常在/etc/mysql/my.cnf):
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
4. python入門經典好嗎
Python入門經典作為一本初學者的書籍是非常全面的,但是作為Python的常翻書籍也是非常好的。
《Python入門經典》是面向Python初學者的學習指南,詳細介紹了Python編程基礎,以及一些高級概念,如面向對象編程。
全書分為24章。第1章介紹了Python的背景和安裝方法。
第2章到第7章介紹了一些基本的編程概念,如變數、數學運算、字元串和獲取輸入。
第8章到第12章介紹了更高級的主題,討論了函數、字典和面向對象編程等。
第13章到第15章介紹了如何使用庫和模塊,以及如何創建自己的模塊。
第16章到第19章介紹了使用數據,如保存到文件,使用標准格式以及使用資料庫。
第20章和第21章嘗試了標准庫以外的一些項目,在這兩章中,介紹了創建動態Web站點和開發游戲。
這兩章並不是要成為完整的課程,而是充當學習更多知識的一個起點。
第22章和第23章介紹了如何正確地保存代碼,以及出錯的時候如何找到解決方案。
第24章介紹了讀者可能會接觸到哪些項目,哪些資源可以幫助讀者學習更多知識,以及如何更深入地融入Python社區。
《Python入門經典》內容循序漸進,逐步深入,概念和知識點講解清楚,而且每章最後配有練習,供讀者檢查和鞏固所學知識。《Python入門經典》適合學習Python語言和應用的初中級用戶閱讀和自學,也可以作為相關培訓的教材。
5. 如何開始使用PyCharm,並擁有一個高效的Python IDE
如何開始使用PyCharm,並擁有一個高效的Python IDE
編輯器與IDE之間的辯論正變得老舊和無聊,因為這是一個zero sum game(零和游戲或者叫零和博弈,表示所有博弈方的利益之和為零或一個常數,即一方有所得,其他方必有所失。)
我已經使用Emacs長達15年了,我使用它閱讀我的郵件,瀏覽網頁,製作咖啡(我們不能做所有的事情嗎?)但是,今天我發現,通過在工作上使用合適的工具,能夠變得更加高效。
強大的編輯器,如Emacs和Vim太棒了。我發現令人費解的是有些編輯器或IDE進行基本操作的時候,如搜索和替換非常笨重,而Vim的和Emacs操作起來恰到好處。
然而,搜索注入「將Vim作為一個Python IDE」或者「將Emacs作為一個Python
IDE」,都會返回成千上萬的鏈接,這表明人們想要這樣的一些功能,如智能完成,代碼導航和項目支持等等。為了給你一點數據,我最熱門的帖子之一就是如何配置Emacs作為一個Python
IDE,即使到今天已經過了三年。
PyCharm是最流行的Python
IDE之一,因為它具有強大的功能。在這篇文章中,我將展示如何開始使用PyCharm,並很快具備一個高效的Python開發環境。我使用Mac上的PyCharm3.0.2專業版(他們有一個開源版本以及)上。我使用的是大量修改了默認按鍵的鍵盤映射(也有Emacs和Vim鍵盤映射表)。我建議你參考官方的Mac和Windows/
Linux的默認快捷鍵。
初步使用
當您第一次啟動PyCharm的時候,他會問你要使用的鍵盤布局和主題。我不喜歡它的Emacs鍵盤映射,所以我用的是默認的Mac OS X鍵盤映射並且自定義了我想要的快捷方式:
如果這是你第一次使用PyCharm,並沒有什麼配置可以導入的。你可能會想在歡迎屏幕中點擊「配置」,設置一些基本的配置:
我喜歡顯示出行號和方法分隔符(Editor→Appearance→Show method separators, Show line numbers):
另外,我喜歡Solarized主題。我遵循指示安裝了它,並選擇它作為編輯器的默認主題→顏色和字體。 淺色版的Solarized
IntelliJ有一些奇怪的顏色選擇(例如,它採用灰色為默認的文本,而不是更清晰的黑色),所以我在編輯器上進行了修改→Colors &
Fonts→General。我的建議是不要害怕修改顏色為你自己喜歡的。你可以導出你的配置,以防你需要重新安裝PyCharm。
相比於別的一些IDE,我覺得PyCharm在視覺上的效果上非常干凈,如果你想要一個更簡潔的用戶界面,您可以隱藏工具欄,工具按鈕,導航欄和狀態欄(在視圖菜單上):
Virtualenv和Python解釋器
您可以創建新的項目文件→File→New Project or open an existing project
withFile→Open Directory。
PyCharm支持多種類型的Python項目,如Django,Flask等等。在這里,我將創建一個簡單的項目,以測試pyquery庫(我會選擇「Empty
project」)。
你需要告訴PyCharm你想用哪個Python解釋器,因為它可以使用不同的解釋器對於不同的項目。它將利用這些信息來索引的所有可用的庫。一個好的做法是對於每個項目建立一個virtualenv。您可以使用一個已經存在的virtualenv或從PyCharm創建一個新的(Settings→Project
Interpreter→Python Interpreters)。
對於這個項目,我將創建一個新的virtualenv並使其用於所有的項目:
您可以快速搜索,閱讀說明,並從PyCharm安裝軟體包。沒有什麼是你在在終端上不能做的,但它能夠使你無需離開IDE,更加方便地夠搜索包。
一些軟體包可能需要安裝一段時間,特別是如果他們需要進行編譯。 PyCharm運行安裝過程是在後台,你可以通過單擊狀態欄看到正在發生的事情:
正如我們所看到的,它不僅安裝pyquery報,所依賴的包,如lxml也一並安裝(正如我們所期望的):
快捷鍵
PyCharm是沒有Vim的,但你也可以只靠鍵盤做很多事情。您可以將快捷方式設置到幾十個(如果不是數百個)快捷動作在Settings→Keymap。我修改了相當多的默認鍵盤映射,因為我喜歡有像Control-a,
Control-e, Control-k,and
Control-y那樣的快捷鍵,而這幾個快捷鍵在默認情況下多用於文本框,並沒有設置默認在「Mac OS
X」的鍵盤映射。您還可以定義滑鼠快捷鍵。舉例來說,我使用Option-Click來改變快速文檔。如果你是一個Vim的用戶,您可能希望嘗試一下IdeaVim,一個Vim的模擬器插件。我聽說過這個好東西,但我沒有機會去嘗試它。
我用的是Dvorak keyboard layout,但煩人的是,一但用到不對的快捷鍵就會有bug。有人反映了這個問題,French Canadian and German layouts也有這個問題。這意味著我必須重新綁定不少的快捷方式來避免這個問題。
PyCharm使用功能鍵,如F1和F2等很多。正如你可能知道的,在Mac上,頂部的按鍵多作為默認「多媒體」鍵,並通過按下Fn鍵的來生效。我們可以在System Preferences→Keyboard交換這種方式。
我希望能夠控制音量和改變亮度,而不需要使用Fn鍵,但我也喜歡使用功能鍵,而無需觸碰較遠的Fn鍵(我很懶惰,我能說什麼?)。我用Palua在「多媒體」和功能鍵之間切換。你可以用全局鍵切換,也可以配置Palua在使用特定應用程序時,自動切換。我為所有應用程序使用多媒體鍵的(默認值),並配置Palua為Xcode和PyCharm使用功能鍵。
外部編輯器
PyCharm可以啟動任何外部工具,所以我將其配置用Emacs來打開當前文件。當你想要利用你喜歡的編輯器(Emacs,Vim,TextMate等等)做一些快速編輯,這非常有用。
進入Settings→External Tools,確保「Open console」未選中,將路徑插入程序,參數(在這種情況下,我們可以用FilePath來得到完整的文件名)和工作目錄(ProjectFileDir/ FileRelativeDir /)。
你可以把它分配給一個快捷方式:
現在它可以從菜單欄獲得。
運行代碼和REPL
PyCharm有很多方式來讓我們運行代碼。我們可以用古老的print 函數(或聲明語句,這取決於你的Python版本),在REPL導入代碼,發送代碼到控制台,使用調試器,或在終端上使用IPython。
列印輸出
使用列印來顯示值是一個有用的並被廣泛使用的技術,但是如果不小心使用的話,它可能會導致混亂的代碼。
如果該文件已被選中運行,我們可以通過單擊「play」按鈕或Control-R來開始。
如果沒有選擇文件來運行,會從上下文菜單中選擇一個文件,用Control-Option-R或右擊來運行她。 PyCharm會記住你的選擇,下一次你可以繼續使用Control-R。這聽起來很復雜,但它其實非常簡單。檢查手冊,以便了解更多的信息。
控制台和REPL
我最喜歡的方法是在REPL運行代碼。您可以在PyCharm的工具欄中打開一個Python控制台,Tools→Run Python
Console(我已經分配到Control-C)。它會使用IPython(如果可用)(我建議你在virtualenv內安裝IPython),並將當前文件的路徑添加到Python的路徑。在控制台上,你可以像往常一樣導入你要來執行的功能。
在控制台中補全功能仍然可用:
我們可以像平時一樣正常使用已經導入的函數,並且可以利用⌘–4輕松切換控制台的可視性。
在控制台執行所選擇的代碼
如果我想運行的代碼是多了幾個單行,並沒有編寫正式的單元測試(例如,可能我玩的是數據)我可以將它保存在一個臨時文件。我們可以選擇我們想要運行的代碼(通常我只需要利用⌘-A選擇整個文件),並選擇從上下文菜單中選擇「Execute
Selection in Console」(或者,更好的方式,使用鍵盤快捷鍵)。 [我省略了一些菜單項中的截圖以使文章短一些。
在下面的例子中,標題變數在控制台中可用,因為我們在控制台中選擇整個臨時文件來執行:
宏
如果我們可以在一個操作中發送整個文件到控制台,那就太好了。幸運的是,我們可以記錄一個宏。選擇Select
Edit→Macros→Start Macro Recording and performthe operations as
before(選擇整個文件,發送到控制台,切換到控制台)。正如你所看到的,我的宏只有四個動作(我按向下箭頭鍵取消選擇):
當您錄制的宏已經在宏菜單,你可以分配給它快捷方式(我使用Control-C Control-E,但由於某些原因PyCharm只顯示兩個快捷方式的一半)。
調試
很多人喜歡使用調試器來檢查數據。即使我喜歡使用REPL,有時調試程序更有效,在檢驗復雜的對象時尤其如此。
PyCharm不允許你在一個空行設置一個斷點,因此,在這短短的例子,我不得不添加一個額外的行(我使用print函數,但我本可以使用pass),因為我想要調試停止在設置的headlines變數後。在真正的代碼中,很少有這個必要。
IPyhton
最後,利用IPython來運行外部終端並使用一些功能,比如%run和自動重載沒有任何不妥。
搜尋命令
這很容易變得不知所措,因為有這么多的命令。如果您在Mac上使用PyCharm,你可以像往常一樣使用Help→Search,或者您可以在任何平台上使用Help→Find
Action。它可以讓你搜索任何PyCharm命令,包括不能從菜單中獲得的。
(Emacs的使用者會注意到這有點類似於Emacs的M-X)。這是非常有用和強大的功能,我一直使用它。
代碼補全
代碼補全功能在PyCharm上是一流的。默認情況下PyCharm會在你輸入的時候給出建議:
由於此功能可有點耗電,你可以通過選擇File→Power Save Mode來禁用它。您仍然可以通過Control-Space顯式使用這一功能。
在輸入的時候,您可以通過鍵入一個子串來縮小建議列表:
或者,您可以鍵入CammelCaseClasses或function_names_with_underscores的第一個字母:
如果您鍵入Ctrl-Space一次,PyCharm將嘗試列出最相關的項目:
如果你再次鍵入Control-Space,將列出它所知道的每一個名字。這可能是壓倒性的,但要注意,它列出了沒有導入的文件 bar.py中的函數name_of_mother。
但往往你只是想補全在打開的緩沖區中的一個局部變數的名稱。很久以前可以在Emacs和Vim實現這一功能,二現在也可以在PyCharm上實現。手冊將其稱為Hippie
Completion,但實際的命令名稱(即,你會發現在Find Action的那個名字)是「Cyclic Expand
Word」,並且在我的測試中,它甚至對文檔字元串有效。
代碼補全可能無法在某些情況下工作,比如當一個庫沒有類型提示。這個StackOverflow頁面建議在PDB中設置斷點並用dir列出所有可能的屬性。一個類似的解決方案是在PyCharm創建斷點,並執行一條表達式——通過在調試工具欄點擊最後一個圖標(或使用適當的鍵盤快捷鍵)。在這種情況下,我計算的表達式是「dir(r)」。
訪問文檔
PyCharm有三種方式可以訪問文檔:快速定義,快速文檔,外部文檔,以及參數信息。您可以從查看菜單或者從各自的快捷方式去訪問它們。
快速定義將顯示整個定義的符號(類,方法,功能等)的(廢話!),當然也包括文檔。如果你只是想快速瀏覽一下的定義,而跳躍到它是很有用的。
快速文檔將顯示符號的文檔和簽名。
最後,外部文檔,以及參數信息是非常簡單的。第一個在默認瀏覽器中打開文檔,第二個給出了一個函數或方法(例如快速查詢關鍵字參數的名稱是很有用)參數信息。
外部文檔工作外適用於Python(當然),PyQt4,PySide,GTK,WX,numpy,SciPy,和kivy,並且您可以為外部文檔添加路徑,在Settings→Python External Documentation中設置。
代碼質量
當你在打字的時候,PyCharm會檢查你的代碼是否符合PEP8。它會讓你知道,你是否有太多的空格或空行等等。如果你願意,你可以配置PyCharm運行pylint作為外部工具。
在源代碼找到自己的方式
當你掌握了它的導航命令時,PyCharm開始變得強大起來。它可以跳轉到類,函數等等。在Mac上你可以利用⌘-B或者⌘-Click跳轉到類,方法,函數,變數的定義,同樣在Windows和Linux上使用 或Ctrl-B或者Ctrl-Click。
導航到類,文件或符號的機制幾乎是一樣的。在你輸入一個字元串的時候,你將看到一個對話框,包括你當前項目以外的項目,同市匹配過濾的結果。轉至導航菜單或使用相應的鍵盤快捷鍵:
這是一個類定義典型的對話框:
你可以輸入名稱的一部分,包括文件擴展名。舉例來說,如果你想打開Django項目的一個JavaScript文件是,但又不記得它的名字,你可以搜索「.js」。
這些功能使我們能夠非常快速地瀏覽源代碼。假設我們正在研究Django的源代碼,我們希望看到的是功能實現的過程。我們不知道它的定義,所以我們去Navigate→Symbo(⌥-⌘-O),輸入「render」,並選擇第一個選項(我們可以看到它在django.shortcuts定義)。如果我們隱藏了導航欄,我們可以使用Navigate→Jump到導航欄(⌘-↑),快速顯示它並查看該文件定位(django→django→shortcuts.py):
有時在去掉你並不感興趣的那部分東西之後,代碼補全的效率會更高。在下面的例子中,我刪除相關的JavaScript的結果,得到了一個更加簡潔的列表:
PyCharm可以讓你折疊塊,如類,方法和函數,但你可以創建自己的可折疊的區域。當涉及到成組的一些東西時,就很有用(類,方法,函數等)。這些模塊可以折疊的話,會使我們能夠專注於代碼的特定區域。你可以通過Navigate→Custom
Region或使用相應的鍵盤快捷鍵來顯示列表文件中的所有區域。遺憾的是有沒有辦法在一個工程中列出所有區域。
單元測試
在我們可以運行測試文件之前,我們需要添加一個新的運行/調試配置。我們去Run→Edit Configurations,然後點擊在左上角的加號按鈕。然後,我們選擇「Python tests」,開始測試。在這個例子中,我將使用單元測試:
最後,我們需要添加這些測試的文件夾,並選擇正確的Python解釋器:
現在就像我們運行代碼一樣,我們可以運行我們的測試:通過點擊工具欄或者選擇Run→Run(Control-⌥-R)。這將打開一個對話框,你可以在對話框中選擇你想要運行的代碼(你可以運行別的)。您可以進行所有測試或僅測試游標。
當你運行測試是,PyCharm會記住你最後的選擇,這樣你就可以利用Control-R來重復測試。這非常有用,如果你解決了一個特定的測試情況,並希望多次運行它,但不運行其他測試。你並不需要定位到你想要運行的測試文件;你可以從任意文件中運行測試。您可以通過選擇Navigate→Test(或相應的熱鍵)完成代碼的測試。
處理多個文件
正如你看到的那樣,PyCharm為每一個文件使用一個標簽
要切換到標簽,我們可以使用命令選擇下一個標簽或者選擇上一個標簽。默認快捷鍵是Control-→ 和Control-←,但OS X使用這些按鍵,讓我重新綁定它們至Control-⌘-N
和Control-⌘-P(在終端我使用同樣的快捷方式切換標簽頁)。
一個更直接的方法選定標簽就是使用Navigate→File,或者View→Recent Files(⌘-E)和View→Recently
Changed
Files(⇧-⌘-E)。最後兩個命令將顯示文件,你可以通過輸入子串來縮小選擇范圍。在下面的例子中,我只需要輸入「⌘-E」,「S」,「ENTER」鍵進入scratch.py文件的標簽:
多窗口
PyCharm支持多窗口,雖然不如Emacs中那麼優秀,但也足夠用了。
在默認情況下沒有已分配的快捷方式來處理分割窗口,所以你必須自己做。這些是我用的快捷鍵:
垂直分割,Control-S
水平分割,Control-H
非剖分,Control-C Control-U
非剖分所有,Control-C Control-A
轉到下一個分離器,Control -C Control -N
轉到上一頁分離器,Control -C Control -P
移動到相對組,Control -C Control –M
再有兩個窗格的情況下拖動標簽比較方便。
總結
PyCharm可以為我們做很多事情。我們看到了如何使用virtualenv,定義快捷鍵,使用外部編輯器,運行代碼,定義宏,找到查找操作命令,可以高效地進行代碼完成,訪問文檔,瀏覽源代碼,運行單元測試,並處理多個文件和分割的窗口。
而這些只是表面文章。我們還沒有談論編輯,版本控制,插件,調試(本地和遠程),模板,使用捆綁的TextMate,網路開發等等更多的功能。
我建議你檢查PyCharm的官方文檔,包括快速入門指南和在線幫助。此外,Andrew Brookins從Vim用戶的角度寫了一片很好的PyCharm評論。我推薦你去閱讀一下,即使你不使用Vim。
6. Python 入門指南之使用 Python 解釋器
Python 解釋器通常被安裝在目標機器的 /usr/local/bin/python3.5 目錄下。將 /usr/local/bin 目錄包含進 Unix shell 的搜索路徑里,以確保可以通過輸入:
命令來啟動他。[1] 由於 Python 解釋器的安裝路徑是可選的,這也可能是其它路徑,你可以聯系安裝 Python 的用戶或系統管理員確認(例如, /usr/local/python 就是一個常見的選擇)。
在 Windows 機器上,Python 通常安裝在 C:Python35 位置,當然你可以在運行安裝向導時修改此值。要想把此目錄添加到你的 PATH 環境變數中,你可以在 DOS 窗口中輸入以下命令:
通常你可以在主窗口輸入一個文件結束符(Unix 系統是 Control-D ,Windows 系統是 Control-Z )讓解釋器以 0 狀態碼退出。如果那沒有作用,你可以通過輸入 quit() 命令退出解釋器。
Python 解釋器具有簡單的行編輯功能。在 Unix 系統上,任何 Python 解釋器都可能已經添加了 GNU readline 庫支持,這樣就具備了精巧的交互編輯和 歷史 記錄等功能。在 Python 主窗口中輸入 Control-P 可能是檢查是否支持命令行編輯的最簡單的方法。如果發出嘟嘟聲(計算機揚聲器),則說明你可以使用命令行編輯功能;更多快捷鍵的介紹請參考 互動式輸入行編輯 歷史 回溯。如果沒有任何聲音,或者顯示 ^P 字元,則說明命令行編輯功能不可用;你只能通過退格鍵從當前行刪除已鍵入的字元並重新輸入。
Python 解釋器有些操作類似 Unix shell:當使用終端設備(tty)作為標准輸入調用時,它交互的解釋並執行命令;當使用文件名參數或以文件作為標准輸入調用時,它讀取文件並將文件作為 腳本 執行。
第二種啟動 Python 解釋器的方法是 python -c command [arg] ... ,這種方法可以在 命令行 執行 Python 語句,類似於 shell 中的 -c 選項。由於 Python 語句通常會包含空格或其他特殊 shell 字元,一般建議將 命令 用單引號包裹起來。
有一些 Python 模塊也可以當作腳本使用。你可以使用 python -m mole [arg] ... 命令調用它們,這類似在命令行中鍵入完整的路徑名執行 模塊 源文件一樣。
使用腳本文件時,經常會運行腳本然後進入交互模式。這也可以通過在腳本之前加上 -i 參數來實現。
調用解釋器時,腳本名和附加參數傳入一個名為 sys.argv 的字元串列表。你能夠獲取這個列表通過執行 import sys ,列表的長度大於等於1;沒有給定腳本和參數時,它至少也有一個元素: sys.argv[0] 此時為空字元串。腳本名指定為 '-' (表示標准輸入)時, sys.argv[0] 被設定為 '-' ,使用 -c 指令 時, sys.argv[0] 被設定為 '-c' 。使用 -m 模塊 參數時, sys.argv[0] 被設定為指定模塊的全名。-c 指令 或者 -m 模塊 之後的參數不會被 Python 解釋器的選項處理機制所截獲,而是留在 sys.argv 中,供腳本命令操作。
從 tty 讀取命令時,我們稱解釋器工作於 交互模式 。這種模式下它根據主提示符來執行,主提示符通常標識為三個大於號( >>> );繼續的部分被稱為 從屬提示符 ,由三個點標識( ... )。在第一行之前,解釋器列印歡迎信息、版本號和授權提示:
輸入多行結構時需要從屬提示符了,例如,下面這個 if 語句:
關於交互模式更多的內容,請參見 交互模式。
默認情況下,Python 源文件是 UTF-8 編碼。在此編碼下,全世界大多數語言的字元可以同時用在字元串、標識符和注釋中 — 盡管 Python 標准庫僅使用 ASCII 字元做為標識符,這只是任何可移植代碼應該遵守的約定。如果要正確的顯示所有的字元,你的編輯器必須能識別出文件是 UTF-8 編碼,並且它使用的字體能支持文件中所有的字元。
你也可以為源文件指定不同的字元編碼。為此,在 #! 行(首行)後插入至少一行特殊的注釋行來定義源文件的編碼:
例如,如果你的編輯器不支持 UTF-8 編碼的文件,但支持像 Windows-1252 的其他一些編碼,你可以定義:
這樣就可以在源文件中使用 Windows-1252 字元集中的所有字元了。這個特殊的編碼注釋必須在文件中的 第一或第二 行定義。
Footnotes
7. 好用的python入門書籍
關於python的好書很多,這里從入門到進階以此給你推薦一些:
1.Python編程:入門到實踐
理論和實踐恰到好處,行文邏輯流暢,不跳躍,手把手教的感覺,卻絕不啰嗦,非常適合入門。小編強烈推薦這本書,書中涵蓋的內容是比較精簡的,沒有艱深晦澀的概念,最重要的是每個小結都附帶有」動手試一試」環節,學編程最佳的方式就是多動動手、多動動腦。
2.Python基礎教程第2版
學習一門編程語言的最好方法就是真正使用它
這本書內容涉及的范圍較廣,既能為初學者夯實基礎,又能幫助程序員提升技能,適合各個層次的Python開發人員閱讀參考。
3.笨辦法學Python
編程入門的必備書,從一個個的小例子入手,不僅是教你寫Python代碼,還有編程的技巧。
這是一本Python入門書籍,適合對計算機了解不多,沒有學過編程,但對編程感興趣的讀者學習使用。這本書以習題的方式引導讀者一步一步學習編程,從簡單的列印一直講到完整項目的實現,讓初學者從基礎的編程技術入手,最終體驗到軟體開發的基本過程。
4.Python for data analysis
還在苦苦尋覓用Python控制、處理、整理、分析結構化數據的完整課程?本書含有大量的實踐案例,你將學會如何利用各種Python庫高效地解決各式各樣的數據分析問題。這本書介紹了ipython 、notebook、Numpy、Scipy和Pandas包的使用等,只要掌握了python的基本語法就可以學習。
8. 新手學python用什麼書
於我個人而言,我很喜歡Python,當然我也有很多的理由推薦你去學python.我只說兩點.一是簡單,二是寫python薪資高.我覺得這倆理由就夠了,對不對.買本書,裝上pycharm,把書上面的例子習題都敲一遍.再用flask,web.py等框架搭個小網站..完美...(小夥伴們有問到該學python2.7還是3.X,那我的答案是:目前大多數實際開發,都是用2.7的,因為實際項目開發有很多依賴的包,都只支持到2.7,你用3.X幹不了活.那你能怎麼辦.所以不需要糾結.等3.X普及,你寫的2.7代碼,都可以無痛移植,妥妥的不用擔心.)
推薦課程:Python教程。
第一個,個人認為《Python學習手冊:第3版》是學習語言基礎比較好的書了.
《Python學習手冊(第3版)》講述了:Python可移植、功能強大、易於使用,是編寫獨立應用程序和腳本應用程序的理想選擇。無論你是剛接觸編程或者剛接觸Python,通過學習《Python學習手冊(第3版)》,你可以迅速高效地精通核心Python語言基礎。讀完《Python學習手冊(第3版)》,你會對這門語言有足夠的了解,從而可以在你所從事的任何應用領域中使用它。
《Python學習手冊(第3版)》是作者根據過去10年用於教學而廣為人知的培訓課程的材料編寫而成的。除了有許多詳實說明和每章小結之外,每章還包括一個頭腦風暴:這是《Python學習手冊(第3版)》獨特的一部分,配合以實用的練習題和復習題,讓讀者練習新學的技巧並測試自己的理解程度。
《Python學習手冊(第3版)》包括:
類型和操作——深入討論Python主要的內置對象類型:數字、列表和字典等。
語句和語法——在Python中輸入代碼來建立並處理對象,以及Python一般的語法模型。
函數——Python基本的面向過程工具,用於組織代碼和重用。
模塊——封裝語句、函數以及其他工具,從而可以組織成較大的組件。
類和OOP——Python可選的面向對象編程工具,可用於組織程序代碼從而實現定製和重用。
異常和工具——異常處理模型和語句,並介紹編寫更大程序的開發工具。
討論Python3.0。
《Python學習手冊(第3版)》讓你對Python語言有深入而完整的了解,從而幫助你理解今後遇到的任何Python應用程序實例。如果你准備探索Google和YouTube為什麼選中了Python,《Python學習手冊(第3版)》就是你入門的最佳指南。
第二個,《Python基礎教程(第2版·修訂版)》
也是經典的Python入門教程,層次鮮明,結構嚴謹,內容翔實,特別是最後幾章,作者將前面講述的內容應用到10個引人入勝的項目中,並以模板的形式介紹了項目的開發過程,手把手教授Python開發,讓讀者從項目中領略Python的真正魅力。這本書既適合初學者夯實基礎,又能幫助Python程序員提升技能,即使是Python方面的技術專家,也能從書里找到耳目一新的內容。
第三個《「笨辦法」學Python(第3版)》
是一本Python入門書籍,適合對計算機了解不多,沒有學過編程,但對編程感興趣的初學者使用。這本書結構非常簡單,其中覆蓋了輸入/輸出、變數和函數三個主題,以及一些比較高級的話題,如條件判斷、循環、類和對象、代碼測試及項目的實現等。每一章的格式基本相同,以代碼習題開始,按照說明編寫代碼,運行並檢查結果,然後再做附加練習。這本書以習題的方式引導讀者一步一步學習編程,從簡單的列印一直講授到完整項目的實現,讓初學者從基礎的編程技術入手,最終體驗到軟體開發的基本過程。
【大牛評價】hardway(笨辦法)比較適合起步編程,作為Python的入門挺不錯。
第四個,在這里給大家推薦最後一本《集體智慧編程》
本書以機器學習與計算統計為主題背景,專門講述如何挖掘和分析Web上的數據和資源,如何分析用戶體驗、市場營銷、個人品味等諸多信息,並得出有用的結論,通過復雜的演算法來從Web網站獲取、收集並分析用戶的數據和反饋信息,以便創造新的用戶價值和商業價值。
全書內容翔實,包括協作過濾技術(實現關聯產品推薦功能)、集群數據分析(在大規模數據集中發掘相似的數據子集)、搜索引擎核心技術(爬蟲、索引、查詢引擎、PageRank演算法等)、搜索海量信息並進行分析統計得出結論的優化演算法、貝葉斯過濾技術(垃圾郵件過濾、文本過濾)、用決策樹技術實現預測和決策建模功能、社交網路的信息匹配技術、機器學習和人工智慧應用等。
本書是Web開發者、架構師、應用工程師等的絕佳選擇。
「太棒了!對於初學這些演算法的開發者而言,我想不出有比這本書更好的選擇了,而對於像我這樣學過Al的老朽而言,我也想不出還有什麼更好的辦法能夠讓自己重溫這些知識的細節。」
——DanRussell,資深技術經理,Google
「Toby的這本書非常成功地將機器學習演算法這一復雜的議題拆分成了一個個既實用又易懂的例子,我們可以直接利用這些例子來分析當前網路上的社會化交互作用。假如我早兩年讀過這本書,就會省去許多寶貴的時間,也不至於走那麼多的彎路了。」
——TimWolters,CTO,CollectiveIntellect
9. 怎樣才能學好python語言
第一:道——明確目標
其實很多人在學習Python之前很少想這個,因為很多人說:現在Python很火呀,所以我么需要學。這個其實跟你自己沒有什麼關系,例如:你曾經想做一個網站不會開發,現在可以做了,現在Python很火並且你也要學來找工作,未來Python很火,我具備了Python的技能會不錯。
在一生中,我們或多或少總會卡到目標上。在一些我們擅長的領域,我們會有明確的目標,並且積極指導別人:親!幹事之前,你要先定目標啊!
王健林的小目標,大家在朋友圈也都看過了,他會定先掙它一個億。
第二:法——做好你學習Python的系統規劃
1.目前市場需求主流的崗位里,你得選擇一個其中你目前看來可以學,並且最敢興趣學習的方向;
2.在方向選擇好後,對照招聘網站:拉勾、智聯、Boss直聘等網站的崗位要求,進行學習內容的統計與大概的記錄;
3.分模塊的計劃你學習這個模塊的時間和完成的大概目標;
4.列出你可能出現的學習誤差與為之准備的應對方案;
好了,你發現沒有,其實任何學習重要的不是有什麼資料,核心是如何學,學多久,有沒有時間限制,遇到過自己多次學習某個內容或者其他人學習某個內容,最關鍵的一點是在起步階段,開始屬於激情期,激情在前面釋放越多,後面的持續力就很弱,好了這就是關於學習計劃。
廢話說多了,那我們來看看一個普適性的學習Python的流程;
1天——下載並安裝好學習環境:到www.python.org網站上下載一個python3.0以上的版本。我建議初學者,不要下載具有IDE功能的集成開發環境,比如Eclipse插件等。
4周——下載一些python的學習文檔,比如《簡明Python教程》,《笨辦法學Python》等等。通過學習語法,掌握python中的關鍵字語法,函數語法,數學表達式、變數、數據結構、語法等等等
1. 了解Python是什麼,都能做些什麼?
2. 知道什麼是變數、演算法、解釋器
3. Python基本數據類型
4. 列表和元組的操作方法
5. 字元串操作方法
6. 基本的字典操作方法
7.任何知識它的基礎知識都是有些枯燥的,現在我們就可以動手來做一些邏輯層面的東西了。掌握 if、else、elif、while、for、continue、break和列表推導式等這些語句的使用,還有程序中的異常處理。
2周——看完基礎後,就是做一些小項目鞏固基礎,python具備很好的交互學習模式,對於書本上的例子我們可以通過交互平台進行操練,通過練習加深印象,達到學習掌握的目的。
2周——通過以上三個步驟的學習後,我們大致掌握了python的常用方法、關鍵字用法以及函數語法等。接下去的學習上,我們就可以著手學習常用模塊的使用, 比如os,os.path,sys,string模塊等。我們可以在交互環境中先熟悉使用其中的函數,如果遇到函數的使用上的問題,可以參考python 安裝後的自帶chm幫助文件。
2周——為了更好得掌握python,我們的學習不能只是停留在學習一些語法或者api階段。在此階段中,我們可以嘗試用python解決我們項目中遇到的一 些問題,如果項目不是用python開發的,那我們可以想想能不能用python製作一些項目組可以使用的一些工具(utility),通過這些工具簡化 項目組成員的任務,提高我們的工作效率。如果沒有項目,我們也可以自己找些題目來自己練習練習。
2周——Python庫是Python的精華所在,可以說Python庫組成並且造就了Python,Python庫是Python開發者的利器,所以學習Python庫就顯得尤為重要:
2周——經過以上鍛煉後,我們的python知識水平肯定是越來越高。接下去的學習,我們就要更上一層樓。為了學以致用,真正能應用於項目開發或產品開發,我 們還必須學習企業應用開發中必須要掌握的網路和資料庫的知識。在此的學習就不光是python語言本身的學習了,如果之前沒有學習和掌握很網路和資料庫知 識,在此階段我們可以藉此機會補習一把。
3周——到此階段,我們已經是真正入門了。在接下去的工作中,就是要快速地通過我們的所學來服務項目了。在此階段,我們除了掌握python自帶的模塊外,我 們最好在掌握一些業界廣泛使用的開源框架,比如twisted、peak、django、xml等。通過熟練使用它們,達到閃電開發,大大節省項目寶貴時間。
《Python 核心編程》,介紹了 Python 的一些具體領域的開發方法;
《Python 網路數據採集》,很簡單的爬蟲入門書;
《利用 Python 進行數據分析》,介紹了 Pandas 和 NumPy 的用法;
《Flask Web 開發》,如何用 Flask 寫一個博客。
第三:術——你具體的學習手段
1.每天你計劃學習多少時間?例如一天必須學2小時,每天堅持;
2.每個階段的計劃拖延時間不能高於多少時間?
3.如果一個階段不順利如何調整?
其實很多時候,並不是資料不夠多,而是本身的學習思路和計劃出現了問題,那麼其實最後學習Python的結果會變成:懂得了很多道理,收集了很多資料,依然學不好Python。
下面我們推薦6本高分書籍給大家,希望大家學習愉快:
1.Python編程:從入門到實踐
豆瓣評分:9.5
內容簡介:本書由奮戰在Python開發一線近20年的Luciano Ramalho執筆,Victor Stinner、Alex Martelli等Python大咖擔綱技術審稿人,從語言設計層面剖析編程細節,兼顧Python 3和Python 2,告訴你Python中不親自動手實踐就無法理解的語言陷阱成因和解決之道,教你寫出風格地道的Python代碼。
10. 最受大家推崇的 Python 書籍有哪些
嚴正提醒! 想提升學習效率,請務必先找准基準線,提高自己對學習材料的品位。
要知道,這個時代,獲取信息的路徑雖短,獲取優質知識的隱性成本卻很高。選錯學習的「姿勢」,白花錢不說,流失了寶貴時間和學習熱情才坑!
選一本 有專業人士背書 、 久經讀者考驗 的技術教程,你便找到了這個領域的基準線。以此來構建自己的知識體系,相信我,絕對能少走很多彎路。
那麼,哪些Python學習書稱得上是「基準」擔當呢?不妨繼續往下看:
文末有驚喜
文末有驚喜
GitHub上有一位叫皮埃爾·德·沃爾夫(Pierre de Wulf)的童鞋,通過以下方法,檢索到了25本網上引用最多的 Python 書籍。
一起看看都有哪些經典 Python 書吧~
希望這些經典的 Python 書籍能夠讓題主的 Python 學習之路更高效,更踏實!
作者: [美] Mark Lutz
——內容簡介——
這本書全面、深入地介紹了 Python 語言,不管你是編程新手還是 Python 初學者,它將幫助你快速實現使用 Python 編寫高質量,且易於與其他語言和工具集成的代碼。本書每一章都是關於Python語言獨立的內容,並且帶有練習和測試,簡單易學,適合入門。
作者:[美]David Beazley, Brian K. Jones
——內容簡介——
這本獨特的「食譜」介紹了 Python 語言應用在各個領域中的使用技巧和方法,其主題涵蓋了數據結構和演算法,字元串和文本,迭代器和生成器,數據編碼與處理,模塊和包,網路和Web編程,並發,實用腳本和系統管理,測試、調試以及異常,C語言擴展等等內容。
每個「配方」均包含可立即在項目中使用的代碼示例,以及Python應用中常見的問題和通用的解決方案。非常適合具有一定編程基礎的Python程序員閱讀。
Python Cookbook(第3版)中文版
作者: [巴西] Luciano Ramalho
——內容簡介——
Python的簡單性可以使你快速提高生產力,但這通常意味著你沒有使用它所提供的一切。
本書致力於幫助Python開發人員挖掘這門語言及相關程序庫的優秀特性,避免重復勞動,同時寫出簡潔、流暢、易讀、易維護,並且具有地道Python風格的代碼。本書尤其深入探討了Python語言的 高級用法 ,涵蓋數據結構、Python風格的對象、並行與並發,以及元編程等不同的方面。通過本書,Python程序員將全面學習如何精通Python 3。
作者: [美] Eric Matthes
——內容簡介——
本書是一本針對所有層次的 Python 讀者而作的 Python 入門書。
全書分兩部分:第一部分介紹用Python 編程所必須了解的 基本概念 ,包括matplotlib、NumPy 和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸 實踐 ,講解如何開發三個項目,包括簡單的 Python 2D 游戲 開發,如何利用數據生成互動式的信息圖,以及創建和定製簡單的 Web 應用,並幫讀者解決常見編程問題和困惑。
作者:Paul Barry
——內容簡介——
你是否想學習 Python 而不用費心地看手冊?
本書通過一種獨特的超越語法手冊的方式來幫助你學習Python。你將能夠快速掌握 Python 的基礎知識,然後擴展到持久化、異常處理、Web開發、SQLite、數據處理和Google應用引擎中去。你也將學會如何為 Android 編寫移動應用,這要感謝Python帶給你的強大能力。本書融合了完備的學習經驗,它將幫助你快速成為一名真正的 Python 程序員。
作者: [美]Albert Sweigart
——內容簡介——
如果你花了數小時重命名文件或更新了數百個電子表格單元格,你就會知道像這樣的任務多麼繁瑣。 但是,如果可以讓你的計算機為你做這些事情呢?可能只用幾分鍾吧。
本書是一本面向實踐的Python編程實用指南。你將學習 Python 的基礎知識,並 探索 用 Python 豐富的模塊庫來執行任務,例如從網站上抓取數據,閱讀PDF和Word文檔以及自動執行單擊和鍵入任務等。
通過閱讀本書,讀者將學會利用強大的 Python 語言和工具,並且會體會到 Python 編程的快樂。
作者: [美] Zed A.Shaw
——內容簡介——
本書是一本 Python 入門書籍。作者 Zed Shaw 完善了這個堪稱世上最好的 Python 學習系統。只要跟著學習,你就會和迄今為止數十萬 Zed 教過的初學者一樣獲得成功。
這本書以習題的方式引導讀者一步一步學習編程,從簡單的列印一直講到完整項目的實現,讓初學者從基礎的編程技術入手,最終體驗到軟體開發的基本過程。你將學會怎樣閱讀、編寫、思考代碼,以及如何用專業程序員的技巧來找出並修正錯誤。
作者:Wes McKinney
——內容簡介——
本書由 Python pandas 項目創始人 Wes McKinney 親筆撰寫,詳細介紹利用 Python 進行操作、處理、清洗和規整數據等方面的具體細節和基本要點。雖然「數據分析」是本書的標題,但重點是Python編程,庫和工具,而不是數據分析方法。這是數據分析所需的 Python 編程。
作者: [美]布雷特·斯拉特金(Brett Slatkin)
——內容簡介——
用 Python 編寫程序是相當容易的,所以這門語言非常流行。但若想掌握 Python 所特有的優勢、魅力和表達能力,則相當困難,而且語言中還有很多隱藏的陷阱,容易令開發者犯錯。本書可以幫你掌握真正的 Pythonic 編程方式,令你能夠完全發揮出 Python 語言的強大功能,並寫出健壯而高效的代碼。
作者: [美] 艾倫 B. 唐尼
——內容簡介——
本書以培養讀者 以計算機科學家一樣的思維方式 來理解Python語言編程。貫穿全書的主體是如何思考、設計,以及開發的方法。
全書詳細介紹了 Python 編程語言的方方面面,從基本的編程概念到函數,遞歸,數據結構和面向對象編程等等。每一章都配有術語表和練習題,方便讀者鞏固所學的知識和技巧。此外,作者針對每章所專注的語言特性,或者相關的開發問題,總結了調試的方方面面。
作者:[德]達恩·巴德爾(Dan Bader)
——內容簡介——
這本書將通過簡單的示例和分步說明來介紹 Python 的最佳實踐以及 Python 代碼的強大魅力。藉助本書,你將專注於真正重要的實踐技能,在 Python 的標准庫中發現「隱藏的金子」,距離精通 Python 更近一步!
作者:[美]Sebastian Raschka, Vahid Mirjalili
——內容簡介——
本書是關於使用 Python 進行機器學習和深度學習的綜合指南。 它既是分步教程,又是構建機器學習系統時不斷翻閱的參考書。
本書包含清晰的注釋,可視化效果和工作示例,深入介紹了基本上所有的機器學習技術。 雖然有些書只教您遵循說明,但在本書中,作者講授了機器學習的原理,這使你可以自己構建模型和應用程序。
作者: Mark Pilgrim
——內容簡介——
有很多 python 開發人員需要學習將代碼移植到python 3,而本書是為他們提供最新版本 python 介紹的最佳書籍。它獨特的風格是先提供大量代碼然後將其分解,非常適合希望快速了解新版本語言的現有開發人員。
作者: [美] David M.Beazley
——內容簡介——
本書是 Python 編程語言的權威參考指南,內容涉及核心 Python 語言和 Python 庫的最重要部分,內容簡潔扼要、可讀性強。書中還包括了一些沒有在 Python 官方文檔或其他資料中出現過的一些高級主題的詳細信息。
這一版在內容上進行了全面更新,介紹了 Python 2.6 和 Python 3 新引入的編程語言特性和庫模塊,同時還分析了Python程序員面臨的如下難題:是應繼續使用現有的 Python 代碼,還是應制定計劃將其移植到Python 3?
作者: 盧茨 (Mark Lutz)
——內容簡介——
當掌握 Python 的基礎知識後,你要如何使用 Python?本書為這門語言的主要應用領域提供了深度教程,譬如系統管理、GUI 和 Web,並 探索 了其在資料庫、網路、前端腳本、文本處理等方面的應用。你將學到清晰、簡潔明了的語法和編程技巧,並伴隨大量的示例來展示正確的用法和慣例。
作者: [德]安德里亞斯·穆勒,[美]莎拉·吉多
——內容簡介——
本書是機器學習入門書,以 Python 語言介紹。
書中重點討論機器學習演算法的實踐而不是背後的數學,全面涵蓋在實踐中實現機器學習演算法的所有重要內容,幫助讀者使用 Python 和 scikit-learn 庫一步一步構建一個有效的機器學習應用。
本書將向所有對機器學習技術感興趣的初學者展示,自己動手構建機器學習解決方案並非難事!
作者: [美] Alex Martelli,Anna Ravenscroft,Steve Holden
——內容簡介——
本書適合具有一定 Python 編程經驗或者有其他語言編程基礎的程序員閱讀,它涵蓋了廣泛的應用領域,包括 Web和網路編程,XML處理,資料庫交互以及高速數值計算。該實用手冊的第三版提供了對該語言的快速參考(包括Python 3.5、2.7和3.6的亮點)。
作者: [美] Al Sweigart
——內容簡介——
本書通過編寫一個個小巧、有趣的 游戲 來教授Python編程,並且採用直接展示 游戲 的源代碼並通過實例來解釋編程的原理的方式。首先構建 猜數字 和 Tic Tac Toe 這樣的經典 游戲 ,然後逐步開發更高級的 游戲 ,在此過程中,你將學習關鍵的編程和數學概念,這將幫助你在輕松有趣的過程中,掌握 Python 游戲 編程的基本技能。
全書共21章,12個 游戲 程序和示例貫穿其中,介紹了Python基礎知識、數據類型、函數、流程式控制制、程序調試、流程圖設計、字元串操作、列表和字典、笛卡爾坐標系、密碼學基礎、 游戲 AI模擬、動畫圖形、碰撞檢測、聲音和圖像等方方面面的程序設計知識。
作者:Mark Lutz
——內容簡介——
對於新的Python 3.4 和 2.7 而言,這款便捷的袖珍指南是完美的實戰快速參考書。你將會從中學習有關Python類型和語句,特殊方法名,內建函數與異常,常用的標准庫模塊及其他卓越的Python工具。
作者:[美] Kenneth Reitz,Tanya Schlusser
——內容簡介——
本書是 Python 用戶的一本網路式學習指南,本書由 Python 社區的大神 Kenneth Reitz 發起並組織編寫,由社區數百名開發者集體奉獻。其特色在於,近乎完整地總結了在 Python 編程中會用到的各種實踐技巧和經驗,涵蓋眾多主流的應用場景,並告訴你如何提高效率、避免踩坑、編寫高質量的代碼。
本書著重於可重用的代碼,重於設計理念,將讀者引向已存在的優秀資源,適合有一定Python基礎的人員學習,幫助你迅速從小工修煉成專家,編寫出高質量的代碼!
========
以上python書籍我已整理電子版本
獲取方式:
轉發+私信「1」獲取,
私信方式:第一步:點擊頭像
旁邊有個私信按鈕,點擊回復「1」即可!