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

全部開(kāi)發(fā)者教程

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

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

Python 中常用的標(biāo)準(zhǔn)庫(kù)系列之 sys 模塊

上節(jié)課我們學(xué)習(xí)了 Python 中的 OS 標(biāo)準(zhǔn)庫(kù) ,這節(jié)課我們來(lái)學(xué)習(xí)下另外一個(gè) 標(biāo)準(zhǔn)庫(kù) sys。

1. sys.exit(code)

sys.exit(code) 的功能是退出程序:

  • 參數(shù) code,退出代碼,通常 0 代表正常退出,其它值代碼異常退出
  • 返回值,無(wú)

演示 sys.exit(code) 的例子如下:

import sys

print('hello')
sys.exit(0)
print('world')
  • 在第 3 行,打印 hello
  • 在第 4 行,退出程序
  • 在第 5 行,打印 world
    • 已經(jīng)執(zhí)行 sys.exit(0) 退出了程序,不會(huì)執(zhí)行該行代碼

運(yùn)行程序:

C:\> python exit.py
hello
C:\>

可以看到,程序打印 hello 后即退出了。

2. sys.argv

2.1 命令行參數(shù)

在 windows 和 linux 中,操作系統(tǒng)提供了命令行的控制方式,用戶(hù)輸入命令完成任務(wù)。例如,建立一個(gè)目錄,輸入如下命令:

C:\> mkdir test

這條命令創(chuàng)建了一個(gè)名稱(chēng)為 test 的目錄,字符串 ‘mkdir’ 和字符串 ‘test’ 被稱(chēng)為命令行參數(shù)。

2.2 Python 程序的命令行參數(shù)

Python 將命令行參數(shù)保存在 sys 模塊中的 argv 變量中:

  • sys.argv 是一個(gè)數(shù)組
  • 數(shù)組中存儲(chǔ)的是字符串

在命令行模式下,使用 python 解釋器執(zhí)行程序 program.py

C:\> python program.py argument

則命令行參數(shù) sys.argv 等于 [‘program.py’, ‘a(chǎn)rgument’],注意:

  • 輸入的命令行由 3 個(gè)單詞構(gòu)成,但是命令行參數(shù)不包括 ‘python’
  • 命令行參數(shù)包括 python 程序文件名,即 ‘program.py

2.3 例子:回顯所有的參數(shù)

編寫(xiě)程序 echo.py,程序顯示所有的參數(shù):

import sys

for arg in sys.argv:
    print(arg)

程序遍歷數(shù)組 sys.argv,打印數(shù)組中的參數(shù)。在命令行中運(yùn)行程序:

C:\> python echo.py a b c
echo.py
a
b
c

sys.argv 包括 4 個(gè)參數(shù):‘echo.py’、‘a(chǎn)’、‘b’、‘c’

2.4 例子:命令行計(jì)算器

編寫(xiě)程序 calc.py,對(duì)命令行輸入的表達(dá)式進(jìn)行計(jì)算,例如:

C:\> python calc.py 1 + 1
2
C:\> python calc.py 2 - 1
2
  • 在第 1 行,計(jì)算 1 + 1 的結(jié)果
  • 在第 3 行,計(jì)算 2 - 1 的結(jié)果

注意:數(shù)字和運(yùn)算符之間必須要有空格

  • 正確的輸入:python calc.py 1 + 1
  • 錯(cuò)誤的輸入:python calc.py 1+1

程序 calc.py 的代碼如下:

import sys

if len(sys.argv) != 4:
    print('Usage: python calc.py operand [+|-] operand')
    sys.exit(0)

left = sys.argv[1]
operator = sys.argv[2]
right = sys.argv[3]

if operator == '+':
    print(int(left) + int(right))

if operator == '-':
    print(int(left) - int(right))
  • 在第 3 行,檢查命令行參數(shù)個(gè)數(shù),正常情況下是 4 個(gè)參數(shù)
    • 參數(shù) 0 是 ‘calc.py
    • 參數(shù) 1 是左邊的操作數(shù)
    • 參數(shù) 2 是操作符
    • 參數(shù) 3 是右邊的操作數(shù)
  • 在第 7 行到第 9 行,獲取左邊的操作數(shù)、操作符、右邊的操作數(shù)
  • 在第 11 行,求和
    • 注意,命令行參數(shù)是字符串,需要使用函數(shù) int(string) 轉(zhuǎn)換為整數(shù)
  • 在第 14 行,相減
    • 注意,命令行參數(shù)是字符串,需要使用函數(shù) int(string) 轉(zhuǎn)換為整數(shù)

3. 標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)出錯(cuò)

3.1 概述

Python 程序?qū)㈡I盤(pán)抽象成一個(gè)可讀的文件,從鍵盤(pán)讀取用戶(hù)輸入,類(lèi)似于從文件中讀取數(shù)據(jù);Python 程序?qū)⑵聊怀橄蟪梢粋€(gè)可寫(xiě)的文件,向屏幕輸出數(shù)據(jù),類(lèi)似于向文件中寫(xiě)數(shù)據(jù)。

Python 程序執(zhí)行時(shí)會(huì)自動(dòng)打開(kāi)三個(gè)文件:

  • 標(biāo)準(zhǔn)輸入文件(stdin),通常對(duì)應(yīng)終端的鍵盤(pán)
  • 標(biāo)準(zhǔn)輸出文件(stdout),對(duì)應(yīng)終端的屏幕
  • 標(biāo)準(zhǔn)錯(cuò)誤輸出文件(stderr),對(duì)應(yīng)終端的屏幕

程序?qū)臉?biāo)準(zhǔn)輸入文件讀取用戶(hù)輸入,將正常輸出數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出文件,而將錯(cuò)誤信息輸出到標(biāo)準(zhǔn)錯(cuò)誤文件。

3.2 sys.stdin

sys.stdin 是 python 程序的標(biāo)準(zhǔn)輸入,示例如下:

>>> import sys
>>> line = sys.stdin.readline()
abc
>>> line
'abc\n'
  • 在第 2 行,使用 readline() 方法讀取用戶(hù)輸入的一行
  • 在第 3 行,用戶(hù)輸入 abc

3.3 sys.stdout

sys.stdout 是 python 程序的標(biāo)準(zhǔn)輸出,示例如下:

import sys

sys.stdout.write('www')
sys.stdout.write('imooc')
sys.stdout.write('com')
  • 在第 3 行,使用 write() 方法向屏幕輸出

運(yùn)行程序,輸出如下:

wwwimooccom

從輸出可以看出,sys.stdout.write(text) 和 print(text) 的區(qū)別:

  • print(text) 輸出 text 后會(huì)自動(dòng)換行
  • sys.stdout.write(text) 輸出 text 后不會(huì)自動(dòng)換行

3.4 sys.stderr

sys.stderr 是 python 程序的標(biāo)準(zhǔn)出錯(cuò),與 sys.stdout 相比:

  • 兩者都是將數(shù)據(jù)輸出到屏幕
  • 將正常的信息輸出到 sys.stdout
  • 將錯(cuò)誤的信息輸出到 sys.stderr

3.5 例子:打印下載進(jìn)度

Python 中的內(nèi)置函數(shù) print(text) 會(huì)自動(dòng)的加入換行,而在某些場(chǎng)景下,不希望輸出換行,例如,打印下載進(jìn)度,顯示效果如下:

下載進(jìn)度

程序在運(yùn)行的過(guò)程中,斷斷續(xù)續(xù)的輸出如下文本:

  • Downloading 1%
  • Downloading 2%
  • Downloading 100%

如果使用 print(text),就會(huì)輸出 100 行,無(wú)法達(dá)到上圖的效果。

使用 sys.stdout.write(text) 可以控制程序輸出在同一行,代碼如下:

import sys
import time

for rate in range(100):
    text = 'Downloading %d%%' % rate
    sys.stdout.write(text)
    sys.stdout.write('\r')
    time.sleep(1)    
  • 在第 2 行,引入 time 模塊,需要使用 time 模塊的 sleep 方法
  • 在第 4 行,使用 for 循環(huán)模擬下載的過(guò)程,總共輸出 100 行文本
    • 在第 6 行,打印當(dāng)前的下載進(jìn)度
    • 在第 7 行,輸出 ‘\r’,將光標(biāo)移動(dòng)到行首
      • sys.stdout.write(’\r’) 僅僅輸出一個(gè)字符 ‘\r’,不會(huì)再額外輸出換行
    • 在第 8 行,使用 time.sleep 睡眠 1 秒

4. sys.path

4.1 概述

Python 的模塊是一個(gè)普通的 Python 文件,例如 os 模塊對(duì)應(yīng)的文件是 os.py。os 模塊是 Python 自帶的模塊,如果 Python 安裝到 C:\Python3 目錄下,在 C:\Python3\Lib 目錄下能找到 os.py,即 os.py 的完整路徑是 C:\Python3\Lib\os.py。

sys.path 是一個(gè)列表,列表保存了多個(gè)路徑名

>>> import sys
>>> sys.path
['C:\\Python3\\DLLs', 'C:\\Python3\\lib', 'C:\\Python3\\lib\\plat-win', 'C:\\Python3\\lib\\lib-tk', 'C:\\Python3', 'C:\\Python3\\lib\\site-packages', 'C:\\Python3\\lib\\site-packages\\win32']

Python 使用 ‘import os’ 引入 os 模塊,注意:Python 使用模塊名而不是模塊的完整路徑引入模塊。Python 查找模塊 os 的過(guò)程如下:

  • 在 sys.path[0] 指向的目錄 C:\Python3\DLLs 下查找文件 os.py
  • 在 sys.path[1] 指向的目錄 C:\Python3\lib 下查找文件 os.py

4.2 例子:自定義模塊查找路徑

本節(jié)演示如何自定義模塊的查找路徑,例子的目錄結(jié)構(gòu)如下:

目錄結(jié)構(gòu)
  1. 創(chuàng)建目錄 my-modules
mkdir my-modules
  1. 創(chuàng)建文件 my-modules\utils.py
def add(a, b):
    return a + b

def sub(a, b):
    return a - b
  1. 創(chuàng)建文件 main.py
import sys
sys.path.append('my-modules')

import utils
print(utils.add(1, 1))
print(utils.sub(2, 1))
  • 在第 2 行,將 my-modules 目錄加入到搜索路徑中
  • 在第 4 行,通過(guò)模塊名 utils 導(dǎo)入模塊
    • 導(dǎo)入模塊時(shí),在 sys.path 指定的目錄下查找 utils.py
    • sys.path 包括目錄 my-modules,因此能找到 utils.py

運(yùn)行程序,輸出結(jié)果:

2
1

5. sys.version

sys.version 記錄了 Python 的版本

如果運(yùn)行 Python 3:

>>> sys.version
'2.7.0 (v2.7.17, Nov 7 2019, 10:07:09)'

如果運(yùn)行 Python 2:

>>> sys.version
'3.6.0 (v3.6.0, Dec 23 2016, 08:06:12)'

6. sys.platform

sys.version 記錄了操作系統(tǒng)的型號(hào)。

在 windows 中打印 sys.platform:

>>> sys.platform
'win32'

在 linux 中打印 sys.platform:

>>> sys.platform
'linux'