Python是一種非常適合編程初學者學習的語言。相比于其他語言,Python效率極高,程序包含的代碼行更少,代碼更容易閱讀、調試和擴展。
下面我們先來看看編寫Python程序一般需要學習哪些知識:
變量和簡單數據類型,包括如何使用變量,以及如何使用文本和數字。由于Python要求變量名應既簡短又具有描述性,所以Python代碼具有很強的可讀性。在上面這個程序中,添加了一個名為message的變量,變量存儲的值為文本“Hello Python world!”,程序的輸出如下:
Hello Python world!列表是新手可直接使用的最強大的Python功能之一。列表由一系列按特定順序排列的元素組成。你可以創建包含字母表中所有字母、數字0-9或所有家庭成員姓名的列表,也可以將任何東西加入列表中,其中的元素之間可以沒有任何關系。下面是一個列表的示例,列表中包含了幾種品牌的自行車。列表中的值可以像其他變量一樣訪問和使用,常用的操作有:修改、添加和刪除元素,排序,遍歷等。if語句。無論采用哪一種編程語言,都會用到if語句。通過創建if語句,我們可以判斷程序的當前狀態,并據此采取相應的措施。這段代碼的意思是,對于列表中的四個汽車名,依次檢查當前的汽車名是否是‘bmw’。如果是,就以全大寫的方式打印它;否則就以首字母大寫的方式打印:
AudiBMWSubaruToyota字典。在Python中,字典是一系列鍵—值對。每個鍵都與一個值相關聯,可以使用鍵來訪問與之相關的值。與鍵相關的值可以是數字、字符串、列表乃至字典。可將任何Python對象用作字典中的值。上述代碼首先定義了一個字典,然后從這個字典中獲取并輸出與鍵‘color’相關聯的值,程序運行的結果是:
green字典的常見操作有添加/刪除鍵—值對,創建空字典,修改字典中的值,遍歷等。Python還能實現嵌套:將一系列字典存儲在列表中,或將列表作為值存儲在字典中。
用戶輸入和while循環。大多數程序都旨在解決最終用戶的問題,為此,通常需要從用戶那里獲取一些信息,并在程序中使用這些信息。有時,我們還需要使用while循環讓程序不斷地運行,直到指定的條件不再滿足條件為止。在上面的程序中,我們定義了一條提示消息prompt,告訴用戶它有兩個選擇:要么輸入一條消息,要么輸入退出值(‘quit’)。接下來,創建一個變量message來存儲用戶輸入的值(message的初始值設為空字符串" ")。當Python執行while語句時,將message的值與‘quit’進行比較,只要message的值不是‘quit’,這個循環就會不斷運行,不斷打印用戶輸入的消息。
下面是對這個程序進行簡單測試的一種結果:
Tell me something, and I will repeat it back to you:Enter 'quit' to end the program. Hello everyone!Hello everyone!Tell me something, and I will repeat it back to you:Enter 'quit' to end the program. Hello again!Hello again!Tell me something, and I will repeat it back to you:Enter 'quit' to end the program. quit函數可以執行特定的任務。通過使用函數,程序的編寫、閱讀、測試和修復都將更容易。下面是一個打印問候語的簡單函數:在該示例中,關鍵字def告訴Python定義一個函數,函數名為greet_user(),第二行的文本注釋描述了函數的功能,第三行是函數體內的代碼,打印Hello!第五行調用該函數,執行該函數的代碼,函數輸出的結果為:
Hello!面向對象編程是最有效的軟件編寫方法之一。在面向對象編程中,用類來表現現實世界中的事物和情景,并基于這些類來創建對象。使用類幾乎可以模擬任何東西。上面這個Dog類,表示的不是特定的小狗,而是任何小狗。大多數寵物狗都有名字和年齡,還會蹲下和打滾,那么就可以將大多數小狗都具備的這兩項信息包含在Dog類中。這個類讓Python知道如何創建表示小狗的對象。編寫這個類后,我們將使用它來表示特定小狗的實例。
簡單總結一下,變量和簡單數據類型,列表,if語句,字典,用戶輸入,while循環,函數,面向對象編程是學習Python時應該掌握的基本概念,其中的很多概念適用于所有的編程語言。題主已經有一些C語言的語法基礎,那學習Python時應該就能很快上手了。即便是任何編程語言都沒有學過的人,通過上面的這些代碼示例,相信你也能感覺到Python代碼簡潔明了的特點,從最簡單的變量概念學起,你也能很快入門Python。
在這里向編程入門者推薦《Python編程:從入門到實踐》這本書,這本書在講解基礎概念的同時,搭配代碼示例,讓讀者能迅速掌握Python的語法規范,并通過編寫代碼來體會代碼的功能。
《Python編程:從入門到實踐》,作者:[美]Eric Matthes,譯者:袁國忠
更多關于IT、經管和心理學類的圖書和知識請關注@人民郵電出版社
可以去百度網盤找分享的視頻教程,也可以去淘寶上花幾塊前買相關的視頻教程,一般都很便宜。
你好,我也正在學習編程,我學的是python語言,有手機端app和電腦端。電腦端編寫代碼用geany,可以在geany端運行程序,也可以在終端運行,我用后者方式(自己感覺終端運行方便加載庫文件)python版本是3.6.7,目前已有更新版。朋友如果你真的打算學習編程,可以關注我“跟丹丹一起學python”,我在里面發了一些關于python學習的知識卡片,盡量堅持能每天更新一篇。一起加油,在一個個代碼中,享受編程的樂趣
一、Django: Python Web應用開發框架
Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,
即是CMS(內容管理系統)軟件。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。
Django 應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理后臺:只需要使用起ORM,做簡單的對象定義,它就能自動生成數據庫結構、以及全功能的管理后臺。
Django提供的方便,也意味著Django內置的ORM跟框架內的其他模塊耦合程度高。應用程序必須使用Django內置的ORM,否則就不能享受到框架內提供的種種基于其ORM的便利;理論上可以切換掉其ORM模塊,
但這就相當于要把裝修完畢的房子拆除重新裝修,倒不如一開始就去毛胚房做全新的裝修。Django的賣點是超高的開發效率,其性能擴展有限;采用Django的項目,在流量達到一定規模后,都需要對其進行重構,才能滿足性能的要求。
二、Diesel:基于Greenlet的事件I/O框架
Diesel提供一個整潔的API來編寫網絡客戶端和服務器。支持TCP和UDP。
你應該使用diesel來編寫你的下一個網絡應用。得益于Python使得diesel語法非常整潔,發展步伐非常迅速。非阻塞I/O使得diesel非常快速并且容易擴展。greenlets使得diesel有了unwind(to(callbacks(no)))。
nose使得測試變得容易。最后,Flask使得你不需要寫一個新的網絡框架來使用diesel。
示例
需要框架項目實戰視頻 + Python學習交流 643692991
三、Flask:一個用Python編寫的輕量級Web應用框架
Flask是一個使用Python編寫的輕量級Web應用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD授權。 Flask也被稱為“microframework”,因為它使用簡單的核心,用extension增加其他功能。
Flask沒有默認使用的數據庫、窗體驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。
Flask 很有趣
配置簡單
特性
1、內置開發用服務器和debugger
2、集成單元測試(unit testing)
3、RESTful request dispatching
4、使用Jinja2模板引擎
5、支持secure cookies(client side sessions)
6、100% WSGI 1.0兼容
7、Unicode based
8、詳細的文件、教學
9、Google App Engine兼容
10、可用Extensions增加其他功能
四、Cubes:輕量級Python OLAP框架
Cubes是一個輕量級Python框架,包含OLAP、多維數據分析和瀏覽聚合數據(aggregated data)等工具
Cubes的主要特性之一是它的邏輯模型,抽象物理數據并提供給終端用戶層。
需要框架項目實戰視頻 + Python學習交流 643692991
五、Kartograph.py:創造矢量地圖的輕量級Python框架
Kartograph是一個Python庫,用來為ESRI生成SVG地圖。Kartograph.py目前仍處于beta階段,你可以在virtualenv環境下來測試。
六、Pulsar:Python的事件驅動并發框架
Pulsar是一個事件驅動的并發框架,有了pulsar,你可以寫出在不同進程或線程中運行一個或多個活動的異步服務器。
應用
附帶以下功能
1、Socket服務器
2、WSGI服務器
3、JSON-RPC
4、Web Sockets
5、任務隊列
6、Shell
7、測試包
8、django集成
示例
對所有請求都返回“Hello World!”作為響應
需要框架項目實戰視頻 + Python學習交流 643692991 七、Web2py:全棧式Web框架
Web2py是一個為Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具有快速、安全以及可移植的數據庫驅動的應用,兼容Google App Engine。
Web2py目錄結構
八、Falcon:構建云API和網絡應用后端的高性能Python框架
Falcon是一個構建云API的高性能Python框架,它鼓勵使用REST架構風格,盡可能以最少的力氣做最多的事情。
特性
1、通過URI模板和資源類的路由
2、通過請求和響應類訪問headers和bodies
3、通過異常基類響應HTTP錯誤等等
基準測試
需要框架項目實戰視頻 + Python學習交流 643692991
九、Dpark:Python版的Spark
DPark是一個基于Mesos的集群計算框架(cluster computing framework),是Spark的Python實現版本,類似于MapReduce,但是比其更靈活,可以用Python非常方便地進行分布式計算,并且提供了更多的功能以便更好
的進行迭代式計算。DPark的計算模型是基于兩個中心思想的:對分布式數據集的并行計算以及一些有限的可以在計算過程中、從不同機器訪問的共享變量類型。這個的目標是為了提供一種類似于global address space
programming model的工具,例如OpenMP,但是我們要求共享變量的類型必須是那些很容易在分布式系統當中實現的,當前支持的共享變量類型有只讀的數據和支持一種數據修改方式的累加器(accumulators)。
DPark具有的一個很重要的特性:分布式的數據集可以在多個不同的并行循環當中被重復利用。這個特性將其與其他數據流形式的框架例如Hadoop和Dryad區分開來。
示例
一個word counting程序
上面的腳本可以無修改的在Mesos集群上運行,只需稍微修改一下命令行參數:
十、Buildbot:基于Python的持續集成測試框架
Buildbot是一個開源框架,可以自動化軟件構建、測試和發布等過程。每當代碼有改變,服務器要求不同平臺上的客戶端立即進行代碼構建和測試,收集并報告不同平臺的構建和測試結果。
需要框架項目實戰視頻 + Python學習交流 643692991
十一、Zerorpc:基于ZeroMQ的高性能分布式RPC框架
Zerorpc是一個基于ZeroMQ和MessagePack開發的遠程過程調用協議(RPC)實現。和 Zerorpc 一起使用的 Service API 被稱為 zeroservice。Zerorpc 可以通過編程或命令行方式調用。
它允許你:
1、不用修改代碼即可顯露python模塊
2、通過命令行遠程調用這些模塊
如何把你代碼中的對象暴露為一個zeroservice?
運行以上代碼,在另一個終端,嘗試連接這個zeroservice
十二、Bottle: 微型Python Web框架
Bottle是一個簡單高效的遵循WSGI的微型python Web框架。說微型,是因為它只有一個文件,除Python標準庫外,它不依賴于任何第三方模塊。
特性
1、Routing:把請求映射到函數,建立簡潔動態的URLs
2、Templates:采用內置模板引擎,同時還支持 mako, jinja2, cheetah 等第三方模板
3、Utilities:便捷地讀取表單數據、上傳文件、 cookies、HTTP頭信息和其它 HTTP相關的元數據
4、Server:內置HTTP開發服務器,并且支持 paste, fapws3, bjoern, Google App Engine, Cherrypy 或者其它任何WSGI HTTP 服務器
示例
運行上面的代碼,訪問http://localhost:8080/hello/bottle試試。
下載和安裝
通過
或者
安裝最新穩定版,或者下載bottle.py (不穩定)到你的工程目錄。Bottle運行于Python 2.5+ and 3.x環境下。 需要框架項目實戰視頻 + Python學習交流 643692991
十三、Tornado:異步非阻塞IO的Python Web框架
Tornado的全稱是Torado Web Server,從名字上看就可知道它可以用作Web服務器,但同時它也是一個Python Web的開發框架。最初是在FriendFeed公司的網站上使用,FaceBook收購了之后便開源了出來。
作為Web框架,是一個輕量級的Web框架,類似于另一個Python web 框架Web.py,其擁有異步非阻塞IO的處理方式。
作為Web服務器,Tornado有較為出色的抗負載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應用框架進行對比,結果最大瀏覽量超過第二名近40%。
此外,它的源代碼也是Python開發者學習與研究的絕佳材料。
以下是Tornado的Hello World示例程序。
十四、webpy: 輕量級的Python Web框架
webpy的設計理念力求精簡(Keep it simple and powerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有數據庫的訪問。這樣的優點是,
框架給開發帶來的限制少,可以根據自己的需求進行定制。缺點就是,很多東西都需要自己親自動手開發。
雖然webpy的作者Aaron H.Swartz,一位偉大的程序員在2013年1月11日自殺身亡,結束了短暫的26年生命。但是,作為一個開源項目,目前還是有很多開發者在持續更新。
webpy非常的簡單,語法幾乎跟Python一樣,以下是一個簡單的示例:
需要框架項目實戰視頻 + Python學習交流 643692991
十五、Scrapy:Python的爬蟲框架
網絡爬蟲,是在網上進行數據抓取的程序,使用它能夠抓取特定網頁的HTML數據。雖然我們利用一些庫開發一個爬蟲程序,但是使用框架可以大大提高效率,縮短開發時間。Scrapy是一個使用Python編寫的,
輕量級的,簡單輕巧,并且使用起來非常的方便。
Scrapy使用了Twisted異步網絡庫來處理網絡通訊。整體架構大致如下(注:圖片來自互聯網):
Scrapy主要包括了以下組件:
1、引擎,用來處理整個系統的數據流處理,觸發事務。
2、調度器,用來接受引擎發過來的請求,壓入隊列中,并在引擎再次請求的時候返回。
3、下載器,用于下載網頁內容,并將網頁內容返回給蜘蛛。
4、蜘蛛,蜘蛛是主要干活的,用它來制訂特定域名或網頁的解析規則。
5、項目管道,負責處理有蜘蛛從網頁中抽取的項目,他的主要任務是清晰、驗證和存儲數據。當頁面被蜘蛛解析后,將被發送到項目管道,并經過幾個特定的次序處理數據。
6、下載器中間件,位于Scrapy引擎和下載器之間的鉤子框架,主要是處理Scrapy引擎與下載器之間的請求及響應。
7、蜘蛛中間件,介于Scrapy引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛的響應輸入和請求輸出。
8、調度中間件,介于Scrapy引擎和調度之間的中間件,從Scrapy引擎發送到調度的請求和響應。
使用Scrapy可以很方便的完成網上數據的采集工作,它為我們完成了大量的工作,而不需要自己費大力氣去開發。