第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Python 進階應(yīng)用教程

Python 進階應(yīng)用教程
01 Python 的對象和類 02 Python 類屬性和實例屬性 03 Python類的構(gòu)造方法、析構(gòu)方法、實例方法 04 Python 類的私有屬性和私有方法 05 Python 類的繼承和多繼承 06 Python 類實戰(zhàn) 07 Python 中的迭代器實現(xiàn)原理 08 Python 中的迭代器趣味實踐 09 Python 中的生成器實現(xiàn)原理 10 Python 中的生成器趣味實踐 11 Python 中的錯誤和異常 12 Python 中的異常處理 13 Python 中的模塊 14 Python 標(biāo)準庫之 os 模塊 15 Python 標(biāo)準庫之 sys 模塊 16 Python 標(biāo)準庫之 math 模塊 17 Python 標(biāo)準庫之 random 模塊 18 Python 標(biāo)準庫之 Json 模塊 19 Python 標(biāo)準庫 datetime 模塊 20 Python 中的常用第三方模塊 21 Python 中的命名空間 22 Python 中的作用域 23 Python 中的文件 IO 操作 24 Python 基礎(chǔ)實戰(zhàn) 25 Python 內(nèi)置函數(shù) 26 Python 中使用正則表達式 27 使用 Python 操作 MySQL 數(shù)據(jù)庫 28 使用 Python 操作 Mongo 數(shù)據(jù)庫 29 使用 Python 操作 Redis 數(shù)據(jù)庫 30 使用 Python 發(fā)送一封郵件 31 threading 之 Thread 的使用 32 threading 之 Lock 的基本使用 33 Python 生產(chǎn)者消費者模型 34 Python 的內(nèi)存管理與垃圾回收 35 Python 領(lǐng)域運用:網(wǎng)絡(luò)爬蟲 36 Python 領(lǐng)域運用:Web 開發(fā) 37 Python 領(lǐng)域運用:自動化運維 38 Python 領(lǐng)域運用:自動化測試

Python 中的常用第三方模塊

Python 有豐富且易用的第三方模塊,使用第三方模塊省去了大量開發(fā)時間。本節(jié)介紹了 Python 的包管理工具 pip,講解了使用 pip 下載、安裝、卸載第三方模塊的方法,最后介紹了常用的第三方 Python 模塊。

1. 第三方模塊簡介

Python 的標(biāo)準庫是隨著 Pyhon 安裝的時候默認自帶的庫,提供了有文本處理、系統(tǒng)管理、網(wǎng)絡(luò)處理等功能。Python 的第三方庫,是由各家廠商和 Python 愛好者開發(fā)的庫,第三方庫需要下載后安裝到 Python 的安裝目錄下。

有一句話:“人生苦短,我用Python”。使用 Python 可以節(jié)省開發(fā)時間,原因在于: Python 有豐富且易用的第三方模塊。使用第三方模塊省去了大量重復(fù)造輪子的時間,節(jié)約了眾多開發(fā)者的生命。所以現(xiàn)如今Python這么火,大行其道,也是有其原因的。

網(wǎng)站 https://pypi.org 匯聚了所有的第三方模塊的信息,通過該網(wǎng)站可以查找和下載第三方模塊,輸入第三方模塊的名字可以查詢到該模塊的信息,如下圖所示:

圖片描述

2. pip 簡介

2.1 pip 簡介

pip 是 Python 包管理工具,該工具提供了對Python 包的查找、下載、安裝、卸載的功能。

Python 3.4+ 以上版本自帶 pip 工具,如果在 python.org 下載最新版本的安裝包,則已經(jīng)自帶了該工具。使用命令 pip --version 檢查是否已經(jīng)安裝了 pip,如下所示:

C:\> pip --version
pip 9.0.1 from C:\Python3\lib\site-packages (python 3.6)

2.2 pip 和 pip3

存在有兩個主要的 Python 版本:Python2 和 Python3,這兩個版本的語法和庫不完全兼容,對應(yīng)有 2 個包管理工具:pip 和 pip3,它們的區(qū)別如下:

  • 如果系統(tǒng)中同時安裝了 Python2 和 Python3,則 pip 用于安裝 Python2 的模塊,pip3 用于安裝 Python3 的模塊;
  • 如果系統(tǒng)中只安裝了 Python2,那么就只能使用 pip;
  • 如果系統(tǒng)中只安裝了 Python3,那么既可以使用 pip 也可以使用 pip3,二者是等價的。

在 Linux 系統(tǒng)中,默認安裝有 Python2,安裝完 Python3 以后,系統(tǒng)中就存在兩個版本的 Python,因此,最好明確使用 pip3 指定安裝 Python3 的模塊。

2.3 更換 pip 的源

pip 工具會從網(wǎng)站自動下載 Python 的第三方模塊,提供下載 Python 第三方模塊的網(wǎng)站被稱為源。默認情況下,pip 從國外網(wǎng)站下載 Python 的第三方模塊,速度非常的慢。為了加快下載速度,可以將 pip 的源改為國內(nèi)的鏡像源。

國內(nèi)常用的源如下:

2.4 在 Linux 下更換源

在 Linux 下更換源的步驟如下:

1. 在用戶主目錄下創(chuàng)建 .pip 目錄

mkdir ~/.pip

2. 創(chuàng)建 ~/.pip/pip.conf

[global]
index-url = https://mirrors.aliyun.com/pypi/simple

2.5 在 Windows 下更換源

在 Windows 下更換源的步驟如下:

1. 進入目錄 Roaming

cd C:\Users\Administrator\AppData\Roaming

目錄 Roaming 用來存放軟件的配置文件。

2. 創(chuàng)建目錄 pip

mkdir pip

3. 創(chuàng)建文件 pip\pip.ini

[global]
index-url = https://mirrors.aliyun.com/pypi/simple

3. pip3 的使用

3.1 pip3 list

命令 pip3 list 列出所有已經(jīng)安裝的包,示例如下:

C:\> pip3 list
certifi (2020.4.5.1)
chardet (3.0.4)
idna (2.9)
numpy (1.18.4)
pip3 (9.0.1)
pygame (1.9.4)
requests (2.23.0)
setuptools (28.8.0)
urllib3 (1.25.9)

pip3 list 輸出了已經(jīng)安裝的包的名稱和版本。

3.2 pip3 search package-name

命令 pip3 search package-name 在 pypi.org 上根據(jù) package-name 搜索第三方包。

輸出所有包含有關(guān)鍵字 requests 的第三方模塊,并給出模塊的功能簡介,示例如下:

C:\> pip3 search requests
requests-auth (5.1.0)               - Authentication for Requests
pydantic-requests (0.1.3)           - A pydantic integration with requests.
Requests-OpenTracing (0.2.0)        - OpenTracing support for Requests
yamlsettings-requests (1.0.0)       - YamlSettings Request Extension
requests-aws4auth (0.9)             - AWS4 authentication for Requests
pycopy-requests (0.0.0)             - Dummy requests module for Pycopy
jupyter-requests (0.0.3)            - Send requests to a Jupyter server.
requests-middleware (0.1.2)         - Composable HTTP middleware for requests
...

3.3 pip3 install package-name

命令 pip3 install package-name 安裝名稱為 package-name 的第三方模塊。命令 pip install 從網(wǎng)站 pypi.org 下載指定名稱的第三方模塊然后自動安裝,非常方便。

安裝名為 django 的第三方模塊,示例如下:

C:\>pip3 install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/9d/04/04abb097c84c770180ee
ebe7ed920ce42f9917ab5ad4de01ff8ed11bc25b/Django-3.0.6-py3-none-any.whl (7.5MB)
    34% |███████████▏                    | 2.6MB 144kB/s eta 0:00:34
    34% |███████████▏                    | 2.6MB 108kB/s eta 0:00:45
    35% |███████████▏                    | 2.6MB 108kB/s eta 0:00:45
    ...

3.4 pip3 install --upgrade package-name

命令 pip3 install --upgrade package-name 升級名稱為 package-name 的第三方模塊。命令 從網(wǎng)站 pypi.org 下載指定名稱的第三方模塊的最新版本,然后自動安裝升級。

升級名為 requests 的第三方模塊,示例如下:

C:\>pip3 install --upgrade requests
Requirement already up-to-date: requests in c:\python3\lib\site-packages
Requirement already up-to-date: certifi>=2017.4.17 in c:\python3\lib\site-pac
kages (from requests)
Requirement already up-to-date: idna<3,>=2.5 in c:\python3\lib\site-packages
(from requests)
Requirement already up-to-date: chardet<4,>=3.0.2 in c:\python3\lib\site-pack
ages (from requests)
Requirement already up-to-date: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in d:\ad
don\py36\lib\site-packages (from requests)

3.5 pip3 uninstall package-name

命令 pip3 uninstall package-name 卸載名稱為 package-name 的第三方模塊。卸載 requests 模塊,示例如下:

C:\>pip3 uninstall requests
Uninstalling requests-2.23.0:
  c:\python3\lib\site-packages\requests-2.23.0.dist-info\installer
  c:\python3\lib\site-packages\requests-2.23.0.dist-info\license
  c:\python3\lib\site-packages\requests-2.23.0.dist-info\metadata
  c:\python3\lib\site-packages\requests-2.23.0.dist-info\record
  c:\python3\lib\site-packages\requests-2.23.0.dist-info\top_level.txt
  c:\python3\lib\site-packages\requests-2.23.0.dist-info\wheel
  c:\python3\lib\site-packages\requests\__init__.py
  ...
Proceed (y/n)? y
  Successfully uninstalled requests-2.23.0

卸載 requests 模塊時,首先列出該模塊相關(guān)的文件,在刪除這些文件前,程序要求用戶輸入 y 進行確認。用戶輸入 y 后,pip3 就會卸載該模塊。

3.6 pip3 show package-name

命令 pip3 show package-name 顯示名稱為 package-name 的第三方模塊的信息,示例如下:

C:\> pip3 show requests
Name: requests
Version: 2.23.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\python3\lib\site-packages
Requires: chardet, idna, certifi, urllib3

在以上信息中,requires 列出 requests 模塊的依賴的模塊:chardet、idna、certifi、urllib3,當(dāng)安裝 requests 模塊時,會自動安裝這 4 個模塊。

4. 常用的第三方模塊

4.1 requests 模塊

requests 是一個的簡單易用的 http 庫,發(fā)出 http 請求并獲取響應(yīng),可以用于抓取網(wǎng)站的頁面。

使用 requests.get(url) 方法抓取 baidu 的首頁,示例如下:

>>> import requests
>>> response = requests.get('https://www.baidu.com')
>>> response.text
'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type c
ontent=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge>
<meta content=always name=referrer>
...
  • 在第 2 行,使用 requests.get(‘https://www.baidu.com’) 獲取 baidu 首頁
  • 在第 3 行,response.text 是 baidu 首頁 html 文件的內(nèi)容

4.2 numpy 模塊

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫。NumPy 是一個運行速度非??斓臄?shù)學(xué)庫,主要用于科學(xué)計算,包含:

  • 一個強大的 N 維數(shù)組對象 ndarray
  • 統(tǒng)計函數(shù)
  • 線性代數(shù)、傅里葉變換、隨機數(shù)生成
  • 矩陣運算

numpy 提供了從數(shù)組中查找最小元素,最大元素的功能,示例如下:

>>> import numpy
>>> a = numpy.array([[1,2,3],[4,5,6],[7,8,9]])
>>> numpy.amin(a)
1
>>> numpy.amax(a)
9
  • 在第 2 行,創(chuàng)建一個二維數(shù)組
  • 在第 3 行,函數(shù) amin(a) 返回數(shù)組的最小元素
  • 在第 5 行,函數(shù) amax(a) 返回數(shù)組的最小元素

4.3 pygame 模塊

Pygame 是一組用來開發(fā)游戲軟件的 Python 程序模塊,基于 SDL 庫的基礎(chǔ)上開發(fā)。允許你在 Python 程序中創(chuàng)建功能豐富的游戲和多媒體程序,Pygame 是一個高可移植性的模塊,可以支持多個操作系統(tǒng),使用 Pygame 開發(fā)的程序可以運行在 windows、linux 和 mac os 上。

使用 pygame 開發(fā)了一個圍棋的游戲,如下圖所示:

圖片描述

4.4 pymysql 模塊

pymysql 模塊提供了訪問 mysql 數(shù)據(jù)庫的功能,包括:

  • 獲取與數(shù)據(jù)庫的連接
  • 執(zhí)行 SQL 語句并獲取執(zhí)行結(jié)果
  • 關(guān)閉數(shù)據(jù)庫連接

假設(shè)存在數(shù)據(jù)庫 QA,查詢表 users 的示例如下:

import pymysql

conn = pymysql.connect(host="localhost", user="root", passwd="", db='QA')
cursor = conn.cursor()

cursor.execute("SELECT userId,password FROM users");
rows = cursor.fetchall()
for row in rows:
    print(row[0], row[1])

cursor.close()
conn.close()
  • 在第 3 行,連接數(shù)據(jù)庫 QA
  • 在第 6 行,執(zhí)行 SQL 語句 SELECT userId,password FROM users
  • 在第 7 行,函數(shù) fetchall() 返回 SQL 語句的查詢結(jié)果

程序輸出如下:

張三 ZhangSan
李四 LiSi
王五 WangWu

4.5 其它常用的模塊

模塊名 功能
urllib3 Python HTTP庫,安全連接池、支持文件post
RoboBrowser 無需獨立的瀏覽器即可瀏覽網(wǎng)頁
MechanicalSoup 一個與網(wǎng)站自動交互 Python 庫
mechanize 有狀態(tài)、可編程的 Web 瀏覽庫
hyper Python的HTTP/2客戶端
grab 網(wǎng)絡(luò)爬蟲框架(基于pycurl/multicur)
scrapy 網(wǎng)絡(luò)爬蟲框架(基于twisted)架
selenium 用于Web應(yīng)用程序測試的工具
jieba 中文分詞工具
OpenCV 開源計算機視覺庫
SimpleCV 用于照相機、圖像處理、特征提取、格式轉(zhuǎn)換