⑴ 萬字干貨,python語法大合集,一篇文章帶你入門
這份資料非常純粹,只有Python的基礎語法,專門針對想要學習Python的小白。
Python中用#表示單行注釋,#之後的同行的內容都會被注釋掉。
使用三個連續的雙引號表示多行注釋,兩個多行注釋標識之間內容會被視作是注釋。
Python當中的數字定義和其他語言一樣:
我們分別使用+, -, *, /表示加減乘除四則運算符。
這里要注意的是,在Python2當中,10/3這個操作會得到3,而不是3.33333。因為除數和被除數都是整數,所以Python會自動執行整數的計算,幫我們把得到的商取整。如果是10.0 / 3,就會得到3.33333。目前Python2已經不再維護了,可以不用關心其中的細節。
但問題是Python是一個 弱類型 的語言,如果我們在一個函數當中得到兩個變數,是無法直接判斷它們的類型的。這就導致了同樣的計算符可能會得到不同的結果,這非常蛋疼。以至於程序員在運算除法的時候,往往都需要手工加上類型轉化符,將被除數轉成浮點數。
在Python3當中撥亂反正,修正了這個問題,即使是兩個整數相除,並且可以整除的情況下,得到的結果也一定是浮點數。
如果我們想要得到整數,我們可以這么操作:
兩個除號表示 取整除 ,Python會為我們保留去除余數的結果。
除了取整除操作之外還有取余數操作,數學上稱為取模,Python中用%表示。
Python中支持 乘方運算 ,我們可以不用調用額外的函數,而使用**符號來完成:
當運算比較復雜的時候,我們可以用括弧來強制改變運算順序。
Python中用首字母大寫的True和False表示真和假。
用and表示與操作,or表示或操作,not表示非操作。而不是C++或者是Java當中的&&, || 和!。
在Python底層, True和False其實是1和0 ,所以如果我們執行以下操作,是不會報錯的,但是在邏輯上毫無意義。
我們用==判斷相等的操作,可以看出來True==1, False == 0.
我們要小心Python當中的bool()這個函數,它並不是轉成bool類型的意思。如果我們執行這個函數,那麼 只有0會被視作是False,其他所有數值都是True :
Python中用==判斷相等,>表示大於,>=表示大於等於, <表示小於,<=表示小於等於,!=表示不等。
我們可以用and和or拼裝各個邏輯運算:
注意not,and,or之間的優先順序,其中not > and > or。如果分不清楚的話,可以用括弧強行改變運行順序。
關於list的判斷,我們常用的判斷有兩種,一種是剛才介紹的==,還有一種是is。我們有時候也會簡單實用is來判斷,那麼這兩者有什麼區別呢?我們來看下面的例子:
Python是全引用的語言,其中的對象都使用引用來表示。is判斷的就是 兩個引用是否指向同一個對象 ,而==則是判斷兩個引用指向的具體內容是否相等。舉個例子,如果我們把引用比喻成地址的話,is就是判斷兩個變數的是否指向同一個地址,比如說都是沿河東路XX號。而==則是判斷這兩個地址的收件人是否都叫張三。
顯然,住在同一個地址的人一定都叫張三,但是住在不同地址的兩個人也可以都叫張三,也可以叫不同的名字。所以如果a is b,那麼a == b一定成立,反之則不然。
Python當中對字元串的限制比較松, 雙引號和單引號都可以表示字元串 ,看個人喜好使用單引號或者是雙引號。我個人比較喜歡單引號,因為寫起來方便。
字元串也支持+操作,表示兩個字元串相連。除此之外,我們把兩個字元串寫在一起,即使沒有+,Python也會為我們拼接:
我們可以使用[]來查找字元串當中某個位置的字元,用 len 來計算字元串的長度。
我們可以在字元串前面 加上f表示格式操作 ,並且在格式操作當中也支持運算,比如可以嵌套上len函數等。不過要注意,只有Python3.6以上的版本支持f操作。
最後是None的判斷,在Python當中None也是一個對象, 所有為None的變數都會指向這個對象 。根據我們前面所說的,既然所有的None都指向同一個地址,我們需要判斷一個變數是否是None的時候,可以使用is來進行判斷,當然用==也是可以的,不過我們通常使用is。
理解了None之後,我們再回到之前介紹過的bool()函數,它的用途其實就是判斷值是否是空。所有類型的 默認空值會被返回False ,否則都是True。比如0,"",[], {}, ()等。
除了上面這些值以外的所有值傳入都會得到True。
Python當中的標准輸入輸出是 input和print 。
print會輸出一個字元串,如果傳入的不是字元串會自動調用__str__方法轉成字元串進行輸出。 默認輸出會自動換行 ,如果想要以不同的字元結尾代替換行,可以傳入end參數:
使用input時,Python會在命令行接收一行字元串作為輸入。可以在input當中傳入字元串,會被當成提示輸出:
Python支持 三元表達式 ,但是語法和C++不同,使用if else結構,寫成:
上段代碼等價於:
Python中用[]表示空的list,我們也可以直接在其中填充元素進行初始化:
使用append和pop可以在list的末尾插入或者刪除元素:
list可以通過[]加上下標訪問指定位置的元素,如果是負數,則表示 倒序訪問 。-1表示最後一個元素,-2表示倒數第二個,以此類推。如果訪問的元素超過數組長度,則會出發 IndexError 的錯誤。
list支持切片操作,所謂的切片則是從原list當中 拷貝 出指定的一段。我們用start: end的格式來獲取切片,注意,這是一個 左閉右開區間 。如果留空表示全部獲取,我們也可以額外再加入一個參數表示步長,比如[1:5:2]表示從1號位置開始,步長為2獲取元素。得到的結果為[1, 3]。如果步長設置成-1則代表反向遍歷。
如果我們要指定一段區間倒序,則前面的start和end也需要反過來,例如我想要獲取[3: 6]區間的倒序,應該寫成[6:3:-1]。
只寫一個:,表示全部拷貝,如果用is判斷拷貝前後的list會得到False。可以使用del刪除指定位置的元素,或者可以使用remove方法。
insert方法可以 指定位置插入元素 ,index方法可以查詢某個元素第一次出現的下標。
list可以進行加法運算,兩個list相加表示list當中的元素合並。 等價於使用extend 方法:
我們想要判斷元素是否在list中出現,可以使用 in關鍵字 ,通過使用len計算list的長度:
tuple和list非常接近,tuple通過()初始化。和list不同, tuple是不可變對象 。也就是說tuple一旦生成不可以改變。如果我們修改tuple,會引發TypeError異常。
由於小括弧是有改變優先順序的含義,所以我們定義單個元素的tuple, 末尾必須加上逗號 ,否則會被當成是單個元素:
tuple支持list當中絕大部分操作:
我們可以用多個變數來解壓一個tuple:
解釋一下這行代碼:
我們在b的前面加上了星號, 表示這是一個list 。所以Python會在將其他變數對應上值的情況下,將剩下的元素都賦值給b。
補充一點,tuple本身雖然是不可變的,但是 tuple當中的可變元素是可以改變的 。比如我們有這樣一個tuple:
我們雖然不能往a當中添加或者刪除元素,但是a當中含有一個list,我們可以改變這個list類型的元素,這並不會觸發tuple的異常:
dict也是Python當中經常使用的容器,它等價於C++當中的map,即 存儲key和value的鍵值對 。我們用{}表示一個dict,用:分隔key和value。
對 。我們用{}表示一個dict,用:分隔key和value。
dict的key必須為不可變對象,所以 list、set和dict不可以作為另一個dict的key ,否則會拋出異常:
我們同樣用[]查找dict當中的元素,我們傳入key,獲得value,等價於get方法。
我們可以call dict當中的keys和values方法,獲取dict當中的所有key和value的集合,會得到一個list。在Python3.7以下版本當中,返回的結果的順序可能和插入順序不同,在Python3.7及以上版本中,Python會保證返回的順序和插入順序一致:
我們也可以用in判斷一個key是否在dict當中,注意只能判斷key。
如果使用[]查找不存在的key,會引發KeyError的異常。如果使用 get方法則不會引起異常,只會得到一個None :
setdefault方法可以 為不存在的key 插入一個value,如果key已經存在,則不會覆蓋它:
我們可以使用update方法用另外一個dict來更新當前dict,比如a.update(b)。對於a和b交集的key會被b覆蓋,a當中不存在的key會被插入進來:
我們一樣可以使用del刪除dict當中的元素,同樣只能傳入key。
Python3.5以上的版本支持使用**來解壓一個dict:
set是用來存儲 不重復元素 的容器,當中的元素都是不同的,相同的元素會被刪除。我們可以通過set(),或者通過{}來進行初始化。注意當我們使用{}的時候,必須要傳入數據,否則Python會將它和dict弄混。
set當中的元素也必須是不可變對象,因此list不能傳入set。
可以調用add方法為set插入元素:
set還可以被認為是集合,所以它還支持一些集合交叉並補的操作。
set還支持 超集和子集的判斷 ,我們可以用大於等於和小於等於號判斷一個set是不是另一個的超集或子集:
和dict一樣,我們可以使用in判斷元素在不在set當中。用可以拷貝一個set。
Python當中的判斷語句非常簡單,並且Python不支持switch,所以即使是多個條件,我們也只能 羅列if-else 。
我們可以用in來循環迭代一個list當中的內容,這也是Python當中基本的循環方式。
如果我們要循環一個范圍,可以使用range。range加上一個參數表示從0開始的序列,比如range(10),表示[0, 10)區間內的所有整數:
如果我們傳入兩個參數,則 代表迭代區間的首尾 。
如果我們傳入第三個元素,表示每次 循環變數自增的步長 。
如果使用enumerate函數,可以 同時迭代一個list的下標和元素 :
while循環和C++類似,當條件為True時執行,為false時退出。並且判斷條件不需要加上括弧:
Python當中使用 try和except捕獲異常 ,我們可以在except後面限制異常的類型。如果有多個類型可以寫多個except,還可以使用else語句表示其他所有的類型。finally語句內的語法 無論是否會觸發異常都必定執行 :
在Python當中我們經常會使用資源,最常見的就是open打開一個文件。我們 打開了文件句柄就一定要關閉 ,但是如果我們手動來編碼,經常會忘記執行close操作。並且如果文件異常,還會觸發異常。這個時候我們可以使用with語句來代替這部分處理,使用with會 自動在with塊執行結束或者是觸發異常時關閉打開的資源 。
以下是with的幾種用法和功能:
凡是可以使用in語句來迭代的對象都叫做 可迭代對象 ,它和迭代器不是一個含義。這里只有可迭代對象的介紹,想要了解迭代器的具體內容,請移步傳送門:
Python——五分鍾帶你弄懂迭代器與生成器,夯實代碼能力
當我們調用dict當中的keys方法的時候,返回的結果就是一個可迭代對象。
我們 不能使用下標來訪問 可迭代對象,但我們可以用iter將它轉化成迭代器,使用next關鍵字來獲取下一個元素。也可以將它轉化成list類型,變成一個list。
使用def關鍵字來定義函數,我們在傳參的時候如果指定函數內的參數名, 可以不按照函數定義的順序 傳參:
可以在參數名之前加上*表示任意長度的參數,參數會被轉化成list:
也可以指定任意長度的關鍵字參數,在參數前加上**表示接受一個dict:
當然我們也可以兩個都用上,這樣可以接受任何參數:
傳入參數的時候我們也可以使用*和**來解壓list或者是dict:
Python中的參數 可以返回多個值 :
函數內部定義的變數即使和全局變數重名,也 不會覆蓋全局變數的值 。想要在函數內部使用全局變數,需要加上 global 關鍵字,表示這是一個全局變數:
Python支持 函數式編程 ,我們可以在一個函數內部返回一個函數:
Python中可以使用lambda表示 匿名函數 ,使用:作為分隔,:前面表示匿名函數的參數,:後面的是函數的返回值:
我們還可以將函數作為參數使用map和filter,實現元素的批量處理和過濾。關於Python中map、rece和filter的使用,具體可以查看之前的文章:
五分鍾帶你了解map、rece和filter
我們還可以結合循環和判斷語來給list或者是dict進行初始化:
使用 import語句引入一個Python模塊 ,我們可以用.來訪問模塊中的函數或者是類。
我們也可以使用from import的語句,單獨引入模塊內的函數或者是類,而不再需要寫出完整路徑。使用from import *可以引入模塊內所有內容(不推薦這么干)
可以使用as給模塊內的方法或者類起別名:
我們可以使用dir查看我們用的模塊的路徑:
這么做的原因是如果我們當前的路徑下也有一個叫做math的Python文件,那麼 會覆蓋系統自帶的math的模塊 。這是尤其需要注意的,不小心會導致很多奇怪的bug。
我們來看一個完整的類,相關的介紹都在注釋當中
以上內容的詳細介紹之前也有過相關文章,可以查看:
Python—— slots ,property和對象命名規范
下面我們來看看Python當中類的使用:
這里解釋一下,實例和對象可以理解成一個概念,實例的英文是instance,對象的英文是object。都是指類經過實例化之後得到的對象。
繼承可以讓子類 繼承父類的變數以及方法 ,並且我們還可以在子類當中指定一些屬於自己的特性,並且還可以重寫父類的一些方法。一般我們會將不同的類放在不同的文件當中,使用import引入,一樣可以實現繼承。
我們創建一個蝙蝠類:
我們再創建一個蝙蝠俠的類,同時繼承Superhero和Bat:
執行這個類:
我們可以通過yield關鍵字創建一個生成器,每次我們調用的時候執行到yield關鍵字處則停止。下次再次調用則還是從yield處開始往下執行:
除了yield之外,我們還可以使用()小括弧來生成一個生成器:
關於生成器和迭代器更多的內容,可以查看下面這篇文章:
五分鍾帶你弄懂迭代器與生成器,夯實代碼能力
我們引入functools當中的wraps之後,可以創建一個裝飾器。裝飾器可以在不修改函數內部代碼的前提下,在外麵包裝一層其他的邏輯:
裝飾器之前也有專門的文章詳細介紹,可以移步下面的傳送門:
一文搞定Python裝飾器,看完面試不再慌
不知道有多少小夥伴可以看到結束,原作者的確非常厲害,把Python的基本操作基本上都囊括在裡面了。如果都能讀懂並且理解的話,那麼Python這門語言就算是入門了。
如果你之前就有其他語言的語言基礎,我想本文讀完應該不用30分鍾。當然在30分鍾內學會一門語言是不可能的,也不是我所提倡的。但至少通過本文我們可以做到熟悉Python的語法,知道大概有哪些操作,剩下的就要我們親自去寫代碼的時候去體會和運用了。
根據我的經驗,在學習一門新語言的前期,不停地查閱資料是免不了的。希望本文可以作為你在使用Python時候的查閱文檔。
最後,我這里有各種免費的編程類資料,有需要的及時私聊我,回復"學習",分享給大家,正在發放中............
⑵ Python程序開發之簡單小程序實例(3)-列印99乘法口訣表
Python程序開發之簡單小程序實例
(3)-列印99乘法口訣表
一、項目功能
在屏幕中列印格式化的九九乘法口訣表。
二、項目分析
按九九乘法口訣的運算順序,列印的口訣表共有9行9列,第1行只有1列,第2行有2列……,第9行共有9列,如下所示:
1 1
1 2 2 2
1 3 2 3 3 3
……
……
1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 9
要按格式控制輸出,需定義2個循環,其中一個循環(我們稱其為外循環,在其內定義變數i)嵌套另一個循環(我們稱其為內循環,在其內定義變數j),外循環(變數i)控制行,循環次數大於等於1且小於10,內循環(變數j)控制列,循環次數取決於外循環變數i的值。
三、程序源代碼
#!/usr/bin/python3.6
# -*- coding: GBK -*-
print("九九乘法口訣表")
for i in range(1, 10):
print()
for j in range(1, i+1):
print ("%d*%d=%d" % (j, i, i*j), end=" " )
四、代碼解釋:
在程序的第一行為引用python版本,本實例為python3.6
第二行是程序編碼引用,因為在程序中包含有中文字元,所以必須引用GBK,否則就會報錯。
第三行為輸出標題「九九乘法口訣表」
第四行至第七行為程序主體,由兩個循環嵌套組成,在循環內的第五行,為一個控制行格式輸出語句print(),用於換行操作。
五、運行後的輸出結果
下一篇:《Python程序開發之簡單小程序實例(4)》
⑶ 如何用30行代碼爬取Google Play 100萬個App的數據
基礎工作:
內置元素選擇器
序列化和存儲數據
處啟臘理cookie、HTTP頭這些東西的中間件
爬取 Sitemap 或者 RSS
等等
我的需求是爬取 Google Play 市場上的世並所有 App 的頁面鏈接以及下載數量。
首先確保配置好 Python 2.7, MongoDB 資料庫, 以及 Python 的 pip 包管理系統。
然後安裝悄返滑對應的 Python 包並且生成項目模板:
pip install scrapy scrapy-mongodb
scrapy startproject app
cd app
scrapy genspider google
然後把 app/spider/google.py 換成下面的內容:
`# -*- coding: utf-8 -*-
import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.linkextractors import LinkExtractor
from app.items import GoogleItem
class GoogleSpider(CrawlSpider):
name = "google"
allowed_domains = ["play.google.com"]
start_urls = [
⑷ 想用python編寫一個帶有函數的代碼,行數要30行左右,難度一般就可以,
⑸ python能做什麼有趣的東西
python能做什麼有趣的東西?下面給大家介紹35個Python實例:
1. Python3 實現圖片識別
2. Python3 圖片隱寫術
3. 200 行 Python 代碼實現 2048
4. Python實現3D建模工具
5. 使用 Python 定製詞雲
相關推薦:《Python教程》
6. Python3 智能裁切圖片
7.微信變為聊天機器人
8. 使用 Python 解數學方程
9. 使用 Python 創建照片馬賽克
10. Python 基於共現提取《釜山行》人物關系
11. Python 氣象數據分析:《Python 數據分析實戰》
12. NBA常規賽結果預測:利用Python進行比賽數據分析
13. Python 的循環語句和隱含波動率的計算
14. K-近鄰演算法實現手寫數字識別系統
15. 數獨游戲的 Python 實現與破解
16. 基於 Flask 與 MySQL 實現番劇推薦系
17. Python 實現英文新聞摘要自動提取
18. Python 解決哲學家就餐問題
19. Ebay 在線拍賣數據分析
20. 神經網路實現人臉識別任務
21. 使用 Python 解數學方程
22. Python3 實現火車票查詢工具
23. Python 實現埠掃描器
24. Python3 實現可控制肉雞的反向Shell
25. Python 實現 FTP 弱口令掃描器
26. 基於PyQt5 實現地圖中定位相片拍攝位置
27. Python實現網站模擬登陸
28.Python實現簡易區域網視頻聊天工具
29. 基於 TCP 的 python 聊天程序
30. Python3基於Scapy實現DDos
31. 高德API + Python 解決租房問題
32. 基於 Flask 與 RethinkDB 實現TODO List
33. Python3 實現簡單的 Web 伺服器
34. Python 實現 Redis 非同步客戶端
35. 仿 StackOverflow 開發在線問答系統
⑹ 如何用30行代碼爬取Google Play 100萬個App的數據
基礎工作:
內置元啟臘素選擇器
序列化存儲數據
處理cookie、HTTP些東西間件
爬取 Sitemap 或者世並 RSS
等等
我需求爬取 Google Play 市場所 App 頁面鏈接及載數量
首先確保配置 Python 2.7, MongoDB 資料庫悄返滑, 及 Python pip 包管理系統
安裝應 Python 包並且項目模板:
pip install scrapy scrapy-mongodb
scrapy startproject app
cd app
scrapy genspider google
app/spider/google.py 換面內容:
`# -*- coding: utf-8 -*-
import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.linkextractors import LinkExtractor
from app.items import GoogleItem
class GoogleSpider(CrawlSpider):
name = "google"
allowed_domains = ["play.google.com"]
start_urls = [
⑺ python程序實現簡單計算機項目目標怎麼寫
打開APP
python簡單程序實例-python簡單項目實例
2020-10-28 20:39:43
編程大樂趣
碼齡10年
關注
語言多元化是PayPal編程文化中一個重要的組成部分。在C++和Java長期流行的同時,更多的團隊選擇了Jva和Scala。同時,Braintree的收購也引入了一個久經世故的Ruby社區。Python作為一門特別的語言,在eBay和PayPal有很長的歷史。而且其流行程度依然有增不減。
eBay的開發者支持Python這個應用於基層領域多年的語言。甚至在eBay管理層官方支持Python以前,技術人員就開始使用Python。我在幾年前加入PayPal並選擇Python來寫內部應用,然而,我卻發現了PayPal中將近15年以前的Python代碼。
目前,Python 支撐著 超過50個項目, 包括:
功能和產品型, 例如 eBay Now 和 RedLaser運營和基礎設施型**, 從開放的 OpenStack 到專有設施中間層服務和應用型**, 例如 PayPal 用來設定價格以及檢測用戶可用功能的那個(服務/應用)監測代理和介面*型*, 用於涉及到部署和安全的一些用例批處理任務*型*, 例如數據導入,價格調整,及其它項目以及不計其數的開發者工具
在接下來的文章里我將詳細介紹那些使得 eBay 和 PayPal 的 Python 生態系統從2011年的不超過25個工程師到2014年超過260個工程師所使用的技術和舉措。對於本文,我則會專注於10個不得不予以揭露的關於 eBay 和 PayPal 的企業環境的謬誤。
謬誤 #1: Python 是一門新語言
伴隨著所有的初創公司正在使用它以及孩子們最近也在學習它的事實,這個謬誤為何仍然存在是可以理解的。實際上 Python 已經 超過23歲了, 它最初發布於1991年, 早於 HTTP 1.0協議 5年且早於 Java 4年. 目前比較有著名的很早就使用 Python 的例子是在1996年: Google 的第一個成功的網路爬蟲。
⑻ Python編程題求助
代碼如下輪畢:
#輸入數值,輸入值為str,所以使用int轉換成整數
number=int(input("請輸入數值:"))#數值輸入
print_str=''
foriinrange(number):#遍歷
temp_str=''#臨時字元儲存變數者桐純
for首咐jinrange(number-i):#累加」*「
temp_str+="*"
temp_str+=""#添加間隔空格
print_str+=temp_str#增加到輸出字元中
print(print_str[:-1])#刪除最後一個無用的間隔空格列印
⑼ 你都用Python 來做什麼
當我知道可以做這些之後,我特別想會。因為論文查閱、答案確認查詢;想知道豆瓣8分以上電影,或者穿越類的電影、處理工資數據考核表等。
可以干什麼
1、上學吧答案神器 主要實現的是無限制獲取上學吧網站上的題目答案(繞過 IP 限制),並實現了自動識別驗證碼,只用輸入某個題目的網址,即可一鍵獲取答案,速度非常快。「想要哈哈,自己或者給孩子輔導作業必備啊?」
2、抓取某系統內全部學生姓名學號及選課信息
3、掃描研究生系統上的弱密碼用戶、模擬登錄圖書館系統並自動續借
4、給釣魚網站批量提交垃圾信息 經常會收到含有釣魚網站鏈接的簡訊的,一般都是盜取 QQ 密碼的偏多,其實可以使用 Python 來批量給對方的伺服器提交垃圾數據(需要先抓包),這樣騙子看到信息之後就不知道哪些是真的哪些是假的了,說不定可以解救一部分填了密碼的同學。
5、網易雲音樂批量下載 可以批量下載網易雲音樂熱歌榜的歌曲,可以自己設定數量,速度非常快。
6、批量下載讀者雜志某一期的全部文章
7、 獲取城市PM2.5濃度和排名
8、爬取某網商品價格信息
你都用 Python 來做什麼?
那Python 作為一種功能強大的編程語言,因其簡單易學而受到很多開發者的青睞。那麼,Python 的應用領域有哪些呢?
Python 的應用領域非常廣泛,幾乎所有大中型互聯網企業都在使用 Python 完成各種各樣的任務,例如國外的 Google、Youtube、Dropbox,國內的網路、新浪、搜狐、騰訊、阿里、網易、淘寶、知乎、豆瓣、汽車之家、美團等等。概括起來,Python 的應用領域主要有如下幾個。
Web應用開發
Python 經常被用於 Web 開發,盡管目前 PHP、JS 依然是 Web 開發的主流語言,但 Python 上升勢頭更勁。尤其隨著 Python 的 Web 開發框架逐漸成熟(比如 Django、flask、TurboGears、web2py 等等),程序員可以更輕松地開發和管理復雜的 Web 程序。例如,通過 mod_wsgi 模塊,Apache 可以運行用 Python 編寫的 Web 程序。Python 定義了 WSGI 標准應用介面來協調 HTTP 伺服器與基於 Python 的 Web 程序之間的通信。舉個最直觀的例子,全球最大的搜索引擎 Google,在其網路搜索系統中就廣泛使用 Python 語言。另外,我們經常訪問的集電影、讀書、音樂於一體的豆瓣網(如圖 1 所示),也是使用 Python 實現的。
圖2Python開發的游戲
除此之外,Python 可以直接調用 Open GL 實現 3D 繪制,這是高性能游戲引擎的技術基礎。事實上,有很多 Python 語言實現的游戲引擎,例如 Pygame、Pyglet 以及 Cocos 2d 等。以上也僅是介紹了 Python 應用領域的「冰山一角」,例如,還可以利用 Pygame 進行游戲編程;用 PIL 和其他的一些工具進行圖像處理;用 PyRo 工具包進行機器人控制編程,等等。有興趣的讀者,可自行搜索資料進行詳細了解。