『壹』 如何系統地自學 python
是否非常想學好 Python,一方面被瑣事糾纏,一直沒能動手,另一方面,擔心學習成本太高,心裡默默敲著退堂鼓?
幸運的是,Python 是一門初學者友好的編程語言,想要完全掌握它,你不必花上太多的時間和精力。
Python 的設計哲學之一就是簡單易學,體現在兩個方面:
語法簡潔明了:相對 Ruby 和 Perl,它的語法特性不多不少,大多數都很簡單直接,不玩兒玄學。
切入點很多:Python 可以讓你可以做很多事情,科學計算和數據分析、爬蟲、Web 網站、游戲、命令行實用工具等等等等,總有一個是你感興趣並且願意投入時間的。
廢話不多說,學會一門語言的捷徑只有一個: Getting Started
¶ 起步階段
任何一種編程語言都包含兩個部分:硬知識和軟知識,起步階段的主要任務是掌握硬知識。
硬知識
「硬知識」指的是編程語言的語法、演算法和數據結構、編程範式等,例如:變數和類型、循環語句、分支、函數、類。這部分知識也是具有普適性的,看上去是掌握了一種語法,實際是建立了一種思維。例如:讓一個 Java 程序員去學習 Python,他可以很快的將 Java 中的學到的面向對象的知識 map 到 Python 中來,因此能夠快速掌握 Python 中面向對象的特性。
如果你是剛開始學習編程的新手,一本可靠的語法書是非常重要的。它看上去可能非常枯燥乏味,但對於建立穩固的編程思維是必不可少。
下面列出了一些適合初學者入門的教學材料:
廖雪峰的 Python 教程 Python 中文教程的翹楚,專為剛剛步入程序世界的小白打造。
笨方法學 Python 這本書在講解 Python 的語法成分時,還附帶大量可實踐的例子,非常適合快速起步。
The Hitchhiker』s Guide to Python! 這本指南著重於 Python 的最佳實踐,不管你是 Python 專家還是新手,都能獲得極大的幫助。
Python 的哲學:
- 用一種方法,最好是只有一種方法來做一件事。
學習也是一樣,雖然推薦了多種學習資料,但實際學習的時候,最好只選擇其中的一個,堅持看完。
必要的時候,可能需要閱讀講解數據結構和演算法的書,這些知識對於理解和使用 Python 中的對象模型有著很大的幫助。
軟知識
「軟知識」則是特定語言環境下的語法技巧、類庫的使用、IDE的選擇等等。這一部分,即使完全不了解不會使用,也不會妨礙你去編程,只不過寫出的程序,看上去顯得「傻」了些。
對這些知識的學習,取決於你嘗試解決的問題的領域和深度。對初學者而言,起步階段極易走火,或者在選擇 Python 版本時徘徊不決,一會兒看 2.7 一會兒又轉到 3.0,或者徜徉在類庫的大海中無法自拔,Scrapy,Numpy,Django 什麼都要試試,或者參與編輯器聖戰、大括弧縮進探究、操作系統辯論賽等無意義活動,或者整天跪舔語法糖,老想著怎麼一行代碼把所有的事情做完,或者去構想聖潔的性能安全通用性健壯性全部滿分的解決方案。
很多「大牛」都會告誡初學者,用這個用那個,少走彎路,這樣反而把初學者推向了真正的彎路。
還不如告訴初學者,學習本來就是個需要你去走彎路出 Bug,只能腳踏實地,沒有奇跡只有狗屎的過程。
選擇一個方向先走下去,哪怕臟丑差,走不動了再看看有沒有更好的解決途徑。
自己走了彎路,你才知道這么做的好處,才能理解為什麼人們可以手寫狀態機去匹配卻偏要發明正則表達式,為什麼面向過程可以解決卻偏要面向對象,為什麼我可以操縱每一根指針卻偏要自動管理內存,為什麼我可以嵌套回調卻偏要用 Promise...
更重要的是,你會明白,高層次的解決方法都是對低層次的封裝,並不是任何情況下都是最有效最合適的。
技術涌進就像波浪一樣,那些陳舊的封存已久的技術,消退了遲早還會涌回的。就像現在移動端應用、手游和 HTML5 的火熱,某些方面不正在重演過去 PC 的那些歷史么?
因此,不要擔心自己走錯路誤了終身,堅持並保持進步才是正道。
起步階段的核心任務是掌握硬知識,軟知識做適當了解,有了穩固的根,粗壯的枝幹,才能長出濃密的葉子,結出甜美的果實。
¶ 發展階段
完成了基礎知識的學習,必定會感到一陣空虛,懷疑這些語法知識是不是真的有用。
沒錯,你的懷疑是非常正確的。要讓 Python 發揮出它的價值,當然不能停留在語法層面。
發展階段的核心任務,就是「跳出 Python,擁抱世界」。
在你面前會有多個分支:科學計算和數據分析、爬蟲、Web 網站、游戲、命令行實用工具等等等等,這些都不是僅僅知道 Python 語法就能解決的問題。
拿爬蟲舉例,如果你對計算機網路,HTTP 協議,HTML,文本編碼,JSON 一無所知,你能做好這部分的工作么?而你在起步階段的基礎知識也同樣重要,如果你連循環遞歸怎麼寫都還要查文檔,連 BFS 都不知道怎麼實現,這就像工匠做石凳每次起錘都要思考錘子怎麼使用一樣,非常低效。
在這個階段,不可避免要接觸大量類庫,閱讀大量書籍的。
類庫方面
「Awesome Python 項目」:vinta/awesome-python · GitHub
這里列出了你在嘗試解決各種實際問題時,Python 社區已有的工具型類庫,如下圖所示:

vinta/awesome-python
你可以按照實際需求,尋找你需要的類庫。
至於相關類庫如何使用,必須掌握的技能便是閱讀文檔。由於開源社區大多數文檔都是英文寫成的,所以,英語不好的同學,需要惡補下。
書籍方面
這里我只列出一些我覺得比較有一些幫助的書籍,詳細的請看豆瓣的書評:
科學和數據分析:
❖「集體智慧編程」:集體智慧編程 (豆瓣)
❖「數學之美」:數學之美 (豆瓣)
❖「統計學習方法」:統計學習方法 (豆瓣)
❖「Pattern Recognition And Machine Learning」:Pattern Recognition And Machine Learning (豆瓣)
❖「數據科學實戰」:數據科學實戰 (豆瓣)
❖「數據檢索導論」:信息檢索導論 (豆瓣)
爬蟲:
❖「HTTP 權威指南」:HTTP權威指南 (豆瓣)
Web 網站:
❖「HTML & CSS 設計與構建網站」:HTML & CSS設計與構建網站 (豆瓣)
...
列到這里已經不需要繼續了。
聰明的你一定會發現上面的大部分書籍,並不是講 Python 的書,而更多的是專業知識。
事實上,這里所謂「跳出 Python,擁抱世界」,其實是發現 Python 和專業知識相結合,能夠解決很多實際問題。這個階段能走到什麼程度,更多的取決於自己的專業知識。
¶ 深入階段
這個階段的你,對 Python 幾乎了如指掌,那麼你一定知道 Python 是用 C 語言實現的。
可是 Python 對象的「動態特徵」是怎麼用相對底層,連自動內存管理都沒有的C語言實現的呢?這時候就不能停留在表面了,勇敢的拆開 Python 的黑盒子,深入到語言的內部,去看它的歷史,讀它的源碼,才能真正理解它的設計思路。
這里推薦一本書:
「Python 源碼剖析」:Python源碼剖析 (豆瓣)
這本書把 Python 源碼中最核心的部分,給出了詳細的闡釋,不過閱讀此書需要對 C 語言內存模型和指針有著很好的理解。
另外,Python 本身是一門雜糅多種範式的動態語言,也就是說,相對於 C 的過程式、 Haskell 等的函數式、Java 基於類的面向對象而言,它都不夠純粹。換而言之,編程語言的「道學」,在 Python 中只能有限的體悟。學習某種編程範式時,從那些面向這種範式更加純粹的語言出發,才能有更深刻的理解,也能了解到 Python 語言的根源。
這里推薦一門公開課
「編程範式」:斯坦福大學公開課:編程範式
講師高屋建瓴,從各種編程範式的代表語言出發,給出了每種編程範式最核心的思想。
值得一提的是,這門課程對C語言有非常深入的講解,例如C語言的范型和內存管理。這些知識,對閱讀 Python 源碼也有大有幫助。
Python 的許多最佳實踐都隱藏在那些眾所周知的框架和類庫中,例如 Django、Tornado 等等。在它們的源代碼中淘金,也是個不錯的選擇。
¶ 最後的話
每個人學編程的道路都是不一樣的,其實大都殊途同歸,沒有迷路的人只有不能堅持的人!
希望想學 Python 想學編程的同學,不要猶豫了,看完這篇文章,
Just Getting Started !!!
『貳』 python培訓都學哪些知識
不同的Python培訓機構學習的內容不同。如需學習Python推薦選擇【達內教育】,該機構雙模式項目教學小程序開發到名企項目全案。可先就業後付款,保險公司承保,不就業理賠學費。
Python培訓知識具體如下:
1、Python核心編程:主要是學習Python語言基礎、Linux、MySQL。前期學習【Python編程語言】基礎內容,中期主要涉及OOP基礎知識,學習後能處理OOP問題,具有初步軟體工程知識並樹立模塊化編程思想,以及了解什麼是資料庫以及相關知識。
2、學習全棧開發:學習Web編程基礎、Flask框架和Django框架等。主要是前端網站開發流程。
3、人工智慧:主要是學習數據分析、機器學習、深度學習。能夠學到人工智慧領域中的圖像識別技術,對行業中流行的數據模型和演算法有所了解,使用主流人工智慧框架進行項目開發,深入理解演算法原理與實現步驟。感興趣的話點擊此處,免費學習一下
想了解更多有關python的相關信息,推薦咨詢【達內教育】。該機構已從事19年IT技術培訓,並且獨創TTS8.0教學系統,1v1督學,跟蹤式學習,有疑問隨時溝通。該機構26大課程體系緊跟企業需求,企業級項目,課程穿插大廠真實項目講解,對標企業人才標准,制定專業學習計劃,囊括主流熱點技術,助力學員更好的學習。達內IT培訓機構,試聽名額限時搶購。
『叄』 python3.10.2環境配置
有教程。
Python3.10中的新功能:帶括弧的上下文管理器,現在支持在上下文管理器中使用括弧來跨多行繼續。這允許以與以前使用import語句類似的方式在多行中格式化長的上下文管理器集合,也可以在封閉組的末尾使用尾隨逗號。
右擊桌面的【此電腦】(【我的電腦】),然後右擊,點擊【屬性】點擊【高級系統設置】找到【高級】--【環境變數】找到【FREIOR_PATH】,點擊【編輯】然後在我框起來的這個地方,輸入python安裝路徑即可安裝路徑就是剛才安裝的位置。安裝完成。
『肆』 python怎麼實現按照文本順序執行函數
Python讀文本可以用with上下文管理器。根據文本來執行對應名字的函數可以用getatter方法。代碼如下:
首先,新建文本文件test.txt,內容如下:
func1,life is short
func2,use python
func1, hello word
下面是Python代碼,聲明兩個function,功能是列印出傳入的參數。main裡面的把內容就是按照文本的順序,傳入參數執行對應的function:
class Example(object):
def __init__(self):
pass
def func1(self, arg):
print 'this is func1, arg is {}.'.format(arg)
def func2(self, arg):
print 'this is func2, arg is {}.'.format(arg)if __name__ == '__main__':
example_instance = Example()
with open('test.txt', 'r') as f:
for line in f.readlines():
function_name, args = line.strip().split(',')
getattr(example_instance, function_name)(args)
得到這樣的輸出:
this is func1, arg is life is short.
this is func2, arg is use python.
this is func1, arg is hello word.
『伍』 python context manager怎麼定義其它函數
Python替你自動創建了一個上下文管理器。
with open("test/test.txt","w") as f_obj:
f_obj.write("hello")
如果你使用的是Python 2.4,你不得不以一種老的方式來完成這個任務。
f_obj = open("test/test.txt","w")
f_obj.write("hello")
f_obj.close()
『陸』 python文件有哪些操作

使用文件:
文件迭代器是最好的讀取行工具,文件也有個迭代器會自動在for循環,列表解析或者其他迭代語句中對文件進行逐行讀取。
讀取內容是字元串,而不是對象,文件讀取的數據回到腳本時是一個字元串
close是通常選項,文件上下文管理器是一種替代方法。但close()是一個好習慣。
其他文件工具
open函數及其返回的文件對象是python腳本中通向外部文件的主要介面,但還有其他的類似工具:
標准流,在sys模塊中預先打開的文件對象
os模塊中的描述文件
sockets、pipes和FIFO文件,文件類對象同步進程、網路通信
通過鍵來存取的文件,通過鍵直接存儲的不變的python對象
Shell命令流,os.popen、subprocess.Popen這樣的工具
第三方開源的文件類工具等
『柒』 python open與json.mo()
with是Python的上下文管理器,使用with打開文件可自動管理文件流,無需人工關閉。as定義別名,即open()函數返回值的別名。with...as怎麼用請看Python教材。
json.mp()作用就是將numbers這個列表給mp成json數組寫到文件f_obj中去。
『捌』 用Python讀入規定目錄下的txt文件中的部分內容
# filename: test.py
import os
users = [] # 用來保存從文件中讀取的數據
for item in os.listdir('.'): # 遍歷指定目錄
if os.path.isfile(item) and item.endswith('.txt'): # 判斷是否為.txt文件
f = open(item) # 打開文件
for line in f: # 讀入文件的每一行
if line.startswith('用戶名'): # 變數初始化
uid = age = sex = None
elif line.startswith("用戶id"): # 根據每行開始內容獲取數據
uid = line.split()[1]
elif line.startswith("年齡"):
age = line.split()[1]
elif line.startswith("性別"):
sex = line.split()[1]
users.append([uid, age, sex]) # 將所獲得的數據以列表的形式追加到數組中
f.close() # 關閉文件
print(users) # 列印數組內容
# [['12345', '23', '男'], ['12346', '23', '男'], ['12347', '23', '男'], ['12348', '23', '男']]
使用的數據文件:
1.txt
------------
用戶名 abc
------------
用戶id 12345
年齡 23
性別 男
------------
用戶名 小張
------------
用戶id 12346
年齡 23
性別 男
2.txt
------------
用戶名 張三
------------
用戶id 12347
年齡 23
性別 男
------------
用戶名 李四
------------
用戶id 12348
年齡 23
性別 男
『玖』 零基礎應當如何開始學習 Python
零基礎學編程,python入門是個不錯的選擇,國內基本上是以c語言作為入門開發語言,但在國外,已經有很多使用python作為入門編程語言。此外,python在機器學習,人工智慧領域也非常流行,算得上是演算法工程師的標配編程語言。
下面的內容由淺入深,建議按照先後順序閱讀學習。
一. Python基礎
Python基礎01 Hello World!
Python基礎02 基本數據類型
Python基礎03 序列
Python基礎04 運算
Python基礎05 縮進和選擇
Python基礎06 循環
Python基礎07 函數
Python基礎08 面向對象的基本概念
Python基礎09 面向對象的進一步拓展
Python基礎10 反過頭來看看
二. Python進階
Python進階01 詞典
Python進階02 文本文件的輸入輸出
Python進階03 模塊
Python進階04 函數的參數傳遞
Python進階05 循環設計
Python進階06 循環對象
Python進階07 函數對象
Python進階08 錯誤處理
三. Python深入
到此,Python學習已經可以告一段落。Python的高級語法和底層實現。這一部分的內容並不是使用Python所必須的。想從事一些大型的Python開發(比如製作Python工具、寫一個框架等),必須對(特殊方法與多範式、上下文管理器、 對象的屬性、 閉包、 裝飾器、內存管理)這一部分內容有所的了解。
四. Python標准庫
Python標准庫的重要性在於:
標准庫是Python的一個組成部分。
Python的哲學是一個問題只有一個最好的解決方法。這些標准庫為許多問題提供了一個標準的解決方案。
Python標准庫01 正則表達式 (re包)
Python標准庫02 時間與日期 (time, datetime包)
Python標准庫03 路徑與文件 (os.path包, glob包)
Python標准庫04 文件管理 (部分os包,shutil包)
Python標准庫05 存儲對象 (pickle包,cPickle包)
Python標准庫06 子進程 (subprocess包)
Python標准庫07 信號 (signal包)
Python標准庫08 多線程與同步 (threading包)
Python標准庫09 進程信息 (部分os包)
Python標准庫10 多進程初步 (multiprocessing包)
Python標准庫11 多進程探索 (multiprocessing包)
Python標准庫12 數學與隨機數 (math包,random包)
Python標准庫13 循環器 (itertools)
Python標准庫14 資料庫 (sqlite3)