以下數(shù)據(jù)依照《Python編程快速上手 讓繁瑣工作自動(dòng)化》書(shū)寫(xiě)。
1.關(guān)鍵字:
and elif import returnas else in tryassert except is whilebreak finally lambda withclass for not yieldcontinue from ordef global passdel if raise
2.操作符:
計(jì)算操作符:** | 指數(shù) | 2**3 | 8% | 取余(取模) | 22%8 | 6// | 整除 | 22//8 | 2/ | 除法 | 22/8 | 2.75* | 乘法 | 3*5 | 15- | 減法 | 5-2 | 3+ | 加法 | 2+2 | 4優(yōu)先級(jí):** -> * <-> / <-> // <-> % -> + <-> -比較操作符:== | 等于!= | 不等于< | 小于> | 大于<= | 小于等于>= | 大于等于二元操作符:and | 都為True時(shí)為Trueor | 有一個(gè)為True時(shí)為Truenot | 相反,True時(shí)為False,F(xiàn)alse時(shí)為True賦值操作符:+= | 加賦值 -= | 減賦值 *= | 乘賦值 /= | 除賦值%= | 取模賦值特殊操作符\ | 續(xù)行符轉(zhuǎn)義字符:\' | 單引號(hào)\' | 雙引號(hào)\t | 制表符\n | 換行符\\ | 倒斜杠分類字符:\d | 0到9的任何數(shù)字\D | 除0到9的數(shù)字以外的任何字符\w | 任何字母、數(shù)字或下劃線\W | 除字母、數(shù)字和下劃線以外的任何字符\s | 空格、制表符或換行符\S | 除空格、制表符和換行符以外的任何字符
3.整數(shù)、浮點(diǎn)型、字符串?dāng)?shù)據(jù)類型
整數(shù) | -2,-1,0,1,5浮點(diǎn)型 | -1.25,0.0,4.30字符串 | 'a','Hello','b' 總是用單引號(hào)包圍住字符串 字符串連接符號(hào) ‘+’ 如果連接數(shù)據(jù)為非字符串格式,需要顯示的轉(zhuǎn)換為字符串 例:'Hello' + 'Word' 字符串復(fù)制符號(hào) ‘*’ *操作符在作用于整形或浮點(diǎn)型為乘法,在作用于字符串時(shí),則為字符串復(fù)制操作 例:'Alice' * 5布爾值 | True、FalseNone | 空值
4.賦值
格式:變量名 = 值
例:
spam = 40str = 'Hello'
Python的變量是區(qū)分大小寫(xiě)的。
變量在第一次進(jìn)行賦值時(shí),確定變量的類型
例:
spam = 40 整形str = 'hello' 字符串f = 40.0 浮點(diǎn)型
5.注釋 Python 使用#作為注釋
Python使用''' .... ''' 作為多行注釋
6.顯示轉(zhuǎn)換類型
str() 轉(zhuǎn)為字符串int() 轉(zhuǎn)為整數(shù)float() 轉(zhuǎn)為浮點(diǎn)數(shù) Tips:對(duì)浮點(diǎn)數(shù)取整,可以使用int()函數(shù)
7.流程控制語(yǔ)句
注意:Python 更加代碼行的縮進(jìn),知道代碼塊的開(kāi)始和結(jié)束
格式:if 條件 : 語(yǔ)句塊#------------if 條件 : 語(yǔ)句塊else : 語(yǔ)句塊#-------------if 條件 : 語(yǔ)句塊elif 條件 : 語(yǔ)句塊
8.循環(huán)語(yǔ)句
while 語(yǔ)句:while 條件 : 語(yǔ)句塊for 語(yǔ)句:for 變量名 in range函數(shù) : 語(yǔ)句塊tips:range函數(shù):range(開(kāi)始,停止,步長(zhǎng))break語(yǔ)句 跳出循環(huán)continue語(yǔ)句 跳出本次循環(huán)
9.導(dǎo)入模塊
格式: import 模塊名稱[,模塊名稱...]
from 模塊 import * #此方式可以調(diào)用模塊中的函數(shù)時(shí)不需要random前綴
10.函數(shù)
格式:def 函數(shù)名(參數(shù)[,參數(shù)1,...]) : 函數(shù)體tips:return語(yǔ)句 在函數(shù)體中使用return語(yǔ)句來(lái)執(zhí)行返回值
11.作用域
分為局部和全局,一個(gè)變量必是其中一種。
局部變量不能再全局變量中使用,局部變量可以使用全局變量
global語(yǔ)句 在局部作用域定義、修改全局變量
12.異常處理
try: 語(yǔ)句塊except [異常類型]: 語(yǔ)句塊拋出異常:raise Exception(異常信息)存儲(chǔ)錯(cuò)誤信息:try: 語(yǔ)句塊except Exception as 變量: 語(yǔ)句塊traceback模塊:模塊:improt tracebacktraceback.format_exc() 得到異常的反向跟蹤字符串?dāng)嘌裕焊袷剑?span>assert 條件,錯(cuò)誤信息禁用斷言:運(yùn)行Python程序時(shí)加上 -O 開(kāi)關(guān)
13.數(shù)據(jù)結(jié)構(gòu)
1)列表
定義:列表名 =[[值1,值2,...]]
獲取值:列表名[索引] #索引從0開(kāi)始
多維列表:列表名 = [[值1,值2,..],[值1,值2,...]]
多維列表獲取值:列表名[索引][索引]
負(fù)數(shù)下標(biāo):-1列表最后一個(gè),-2列表倒數(shù)第二個(gè),依次類推
切片獲取列表:
列表名[結(jié)束下標(biāo)] #默認(rèn)從0開(kāi)始 不包含結(jié)束下標(biāo)列表名[開(kāi)始下標(biāo):] #默認(rèn)使用列表長(zhǎng)度為結(jié)束下標(biāo)列表名[:結(jié)束下標(biāo)] #默認(rèn)從零開(kāi)始列表名[開(kāi)始下標(biāo):結(jié)束下標(biāo)] #注意用: 不包含結(jié)束下標(biāo)列表名[開(kāi)始下標(biāo):結(jié)束下標(biāo):增量] #以增量獲取數(shù)值
切片獲取列表:操作符+可以連接連個(gè)列表,得到新的列表
操作符*可以實(shí)現(xiàn)列表復(fù)制
刪除列表值:del 語(yǔ)句可以刪除列表下標(biāo)處的值,格式del 列表名[索引]
值是否在列表中:in 和 not in 可以確定一個(gè)值是否在列表中,格式 值 in 列表
| 值 not in 列表
多重復(fù)制:格式 變量1,變量2[,變量3]} = 列表
#注意變量的數(shù)據(jù)必須與列表的長(zhǎng)度相等
Tips:list 是引用類型
常用 方法:
len() 獲取列表的長(zhǎng)度
index() 在列表中查找值并返回下標(biāo)
append() 在末尾添加值
insert() 在任意下標(biāo)處插入值
remove() 從列表中刪除值
sort() 對(duì)列表進(jìn)行排序
2)元組
定義:名 = ([值1,[值2,...]])
與list區(qū)別:
元組是不可變的,列表是可變的
Tips: 元祖只有一個(gè)值時(shí),需要后面跟一個(gè)逗號(hào)
list() 可以轉(zhuǎn)換為list
tuple() 可以轉(zhuǎn)換為元組
Copy模塊的copy()和deepcopy()方法:
copy() 復(fù)制一個(gè)列表或字典為新列表或字典,具有不同的引用地址
deepcopy() 如果列表或字典有子列表,使用此方法
3)字典
格式:名 = {鍵1:值1[,鍵2:值2,...]}
關(guān)鍵字in和not in,可以查看鍵是否在字典中
方法:
keys() 獲取字典的鍵,返回列表
values() 獲取字典的值,返回列表
items() 獲取鍵值對(duì)
get(鍵,備用值) 根據(jù)鍵獲取值,如果值不存在返回備用值
setdefault(鍵,值) 根據(jù)鍵值設(shè)置默認(rèn)數(shù)據(jù),如果鍵不存在,則添加該鍵和值,如果存在則返回鍵的值
14.字符串
格式:'字符串' | '字符串' #雙引號(hào)中可以使用單引號(hào)
原始字符串:r'字符串' #忽略所有轉(zhuǎn)義字符#
多行字符串:'''字符串''' #可以將字符串在多行進(jìn)行書(shū)寫(xiě)
字符串也可以使用下標(biāo)和切片獲取值
in和not in 也適用于字符串
常用方法:
upper() 轉(zhuǎn)為大寫(xiě)
lower() 轉(zhuǎn)為小寫(xiě)
isupper() 是否為大寫(xiě)
islower() 是否為小寫(xiě)
isalpha() 是否只包含字母,并且非空
isalnum() 是否只包含字母和數(shù)字,并且非空
isdecimal() 是否只包含數(shù)字,并且非空
isspace() 是否只包含空格、制表符和換行,并且非空
istitle() 是否為開(kāi)頭大寫(xiě)
startswith() 是否為某字符串開(kāi)頭
endswith() 是否我某字符串結(jié)尾
join() 連接列表字符串
split() 分割字符串
rjust() 以特定字符前置填充字符串
ljust() 以特定字符后置填充字符串
center() 以特定字符居中填充字符串
strip() 刪除兩邊邊空白字符串(控制、制表符和換行符)
rstrip() 刪除右邊空白字符串(控制、制表符和換行符)
lstrip() 刪除左邊空白字符串(控制、制表符和換行符)
pyperclip模塊:
copy() 向計(jì)算機(jī)的剪貼板發(fā)送文本
paste() 向計(jì)算機(jī)的剪貼板接受文本
15.正則表達(dá)式
模塊:import re
創(chuàng)建:名 = re.compile(格式)
匹配對(duì)象: 返回值 = 表達(dá)式.search(值) #返回第一次匹配的文本 返回match對(duì)象
返回值 = 表達(dá)式.search(值) #返回所有匹配的文本 返回元組列表
獲取返回值:返回值.group() #反回值不為null,返回實(shí)際匹配字段
分組:(\d\d\d)-(\d\d\d\d) #使用括號(hào)可以對(duì)返回值分組
獲取分組:返回值.group(組下標(biāo)) #下標(biāo)從1開(kāi)始 獲取所有組 使用 groups()方法
匹配管道:希望匹配許多表達(dá)式中的一個(gè)時(shí),可以使用字符|進(jìn)行分割
使用匹配符:
? 零次或一次
* 多次
+ 匹配一次或多次,至少出現(xiàn)一次
{} 匹配特定次數(shù)
[] 定義自己的字符分類
[^] 非自定義字符分類
^ 以某個(gè)字符開(kāi)始
$ 以某個(gè)字符結(jié)尾
. 通配字符
.* 匹配所有字符
16.讀寫(xiě)文件
模塊:要實(shí)現(xiàn)文件讀取,需要引入os模塊,import os
. 當(dāng)前目錄
.. 父目錄
方法:
os.path.join() 生成文件路徑,或鏈接文件名
os.getcwd() 獲取當(dāng)前工作目錄
os.chdir() 修改當(dāng)前工作目錄
os.makedirs() 創(chuàng)建新的目錄
os.path.abspath(path) 相對(duì)路徑轉(zhuǎn)決定路徑
os.path.isabs(path) 絕對(duì)路徑返回True,相對(duì)路徑返回False
os.path.relpath(path,start) 返回start路徑到path的相對(duì)路徑的字符串,沒(méi)有提供start,就使用當(dāng)前工作目錄作為開(kāi)始路徑
os.path.dirname(path) 返回目錄路徑
os.path.basename(path) 返回文件名稱
os.path.split(path) 返回兩個(gè)字符串的元組,包含路徑和文件名
os.path.getsize(path) 查看文件大小
os.listdir(path) 返回path下的所有文件名
os.path.exists(path) 檢測(cè)文件或文件夾是否存在,可以檢測(cè)dvd或閃存盤當(dāng)前是否連擊計(jì)算機(jī)
os.path.isfile(path) 檢測(cè)文件是否存在
os.path.isdir(path) 檢測(cè)文件夾是否存在
os.unlink(path) 刪除path處的文件
os.rmdir(path) 刪除path處的文件夾,該文件夾必須為空
os.walk() 遍歷目錄樹(shù)
open(path,打開(kāi)模式符) 打開(kāi)文件,返回file對(duì)象,打開(kāi)模式為空,默認(rèn)為只度
file.read() 讀取文件內(nèi)容
file.write() 寫(xiě)入文件
file.close() 關(guān)閉文件
文件打開(kāi)模式:
a 添加模式
r 只讀模式
w 寫(xiě)入模式
wb 寫(xiě)二進(jìn)制模式
sheleve 模塊(感覺(jué)像是配置表)
模塊:import shelve
方法:
shelve.open() 打開(kāi)文件
shelve.keys() 獲取鍵
shelve.values() 獲取值
17.Shutil 模塊
模塊:import shutil
方法:
shutil.copy(path1,path2) 將path1的文件復(fù)制到path2
shutil,copytree(path1,path2) 同copy,不一樣的是會(huì)復(fù)制整個(gè)文件夾
shutil.move(path1,path2) 將path1的文件移動(dòng)到path2
shutil.rmtree(path) 刪除path處的文件夾及子文件
send2trash 模塊
模塊:import send2trash #此模塊需要安裝
send2trash.send2trash(path) 將path的文件移除到回收站
18.zipfile 壓縮模塊
模塊:import zipfile
方法:
zipfile.ZipFile(path) 打開(kāi)一個(gè)zip壓縮文件
ZipFile.naelist() 返回zip文件中包含的所有文件和文件夾列表
ZipFile.getinfo() 返回一個(gè)特定文件ZipInfo對(duì)象
ZipFile.extractall() 從zip文件中解壓縮所有文件和文件夾
ZipFile.write(path,壓縮類型) 會(huì)將路徑處的文件寫(xiě)入zip
19日志:
模塊:import logging
方法: logging.debug(日志信息)
輸出日志信息 logging.disable(日志級(jí)別)
禁止日志
未完待續(xù)…
聯(lián)系客服