這篇文章主要介紹了python中內(nèi)置模塊的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司企業(yè)建站,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。一.random模塊 隨機(jī)
random() 隨機(jī)小數(shù)
uninform(a,b) 隨機(jī)小數(shù)
randint(a,b) 隨機(jī)整數(shù)
choice() 隨機(jī)選擇一個(gè)
sample() 隨機(jī)選擇多個(gè)
shuffle() 打亂
import random from random import randint print(randint(10, 20)) # print(random.randint(10, 20))/ print(random.random()) print(random.uniform(10, 20)) # 10-20的隨機(jī)小數(shù) lst = ['寶寶', '寶浪', '寶強(qiáng)', '包拯'] random.shuffle(lst) # 隨機(jī)打亂順序 print(lst) # 從列表中隨機(jī)選擇一個(gè) print(random.choice(["林志玲", "劉一菲", "王昭君", "艾米", "寶寶"])) print(random.sample(["林志玲", "劉一菲", "王昭君", "艾米", "寶寶"],3)) # 可以給隨機(jī)選取幾個(gè)
二.Counter 計(jì)數(shù)
from collections import Counter print(Counter('寶寶今年特別喜歡王寶強(qiáng)')) # 計(jì)數(shù) lst = ['jay', 'jay', 'jay', '寶寶', '寶寶', '胡辣湯', '上官婉兒'] c = Counter(lst) print(c.get('寶寶'))
三.字典
1.默認(rèn)值字典
from collections import defaultdict dd = defaultdict(lambda: '胡辣湯') # callable 可調(diào)用的, 字典是空的 print(dd['張無忌']) # 從字典向外拿數(shù)據(jù). 字典是空的. key:callable() print(dd['寶寶']) # 這里的[] 和get() 不是一回事兒 print(dd)
2.有序字典
from collections import OrderedDict dic = OrderedDict() # 有序字典 dic['a'] = '哈哈' dic['b'] = '呵呵' print(dic) print(dic.get('a')) print(dic.values()) print(dic['a'])
四.棧和隊(duì)列
1.棧
特點(diǎn):先進(jìn)后出
class StackFullException(Exception): pass class StackEmptyException(Exception): pass class Stack: def __init__(self,size): self.size = size 給定存放數(shù)據(jù)的長度 self.lst = [] # 存放數(shù)據(jù)的列表 self.top = 0 # 棧頂指針 # 入棧 def push(self, el): if self.top >= self.size: raise StackFullException('your stack is full!!') self.lst.insert(self.top, el) # 放元素 self.top += 1 # 棧頂指針向上移動一下 # 出棧 def pop(self): if self.top == 0: raise StackEmptyException('your stack is empty!!!') self.top -= 1 el = self.lst[self.top] return el s = Stack(6) s.push('寶寶') s.push('我還') s.push('記得') print(s.pop()) print(s.pop()) print(s.pop())
2.單項(xiàng)隊(duì)列
特點(diǎn):先進(jìn)先出
import queue q = queue.Queue() q.put('李嘉誠1') q.put('李嘉誠2') q.put('李嘉誠3') q.put('李嘉誠4') q.put('李嘉誠5') print(q.get()) print(q.get()) print(q.get()) print(q.get()) print(q.get())
3.雙向隊(duì)列
特點(diǎn):和單項(xiàng)一樣
from collections import deque d =deque() # 創(chuàng)建雙向隊(duì)列 d.append('寶寶') # 在右側(cè)添加 d.append('no') d.append('way') d.append('哈哈') d.appendleft('娃哈哈') # 在左邊添加 d.appendleft('爽歪歪') d.appendleft('優(yōu)酸乳') print(d.pop()) # 從右邊拿數(shù)據(jù) print(d.pop()) # 從右邊拿數(shù)據(jù) print(d.pop()) # 從右邊拿數(shù)據(jù) print(d.pop()) # 從右邊拿數(shù)據(jù) print(d.popleft()) # 從左邊拿數(shù)據(jù) print(d.popleft()) # 從左邊拿數(shù)據(jù) print(d.popleft()) # 從左邊拿數(shù)據(jù)
五.time模塊
# 時(shí)間戳: 從1970-01-01 00:00:00 開始計(jì)算. 未來存儲的時(shí)候用時(shí)間戳
print(time.time())
# 格式化時(shí)間
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 用來顯示的
# 結(jié)構(gòu)化時(shí)間(python的時(shí)間)
t = time.localtime()
print(t.tm_year)
print(t.tm_mon)
print(t.tm_mday)
# 數(shù)據(jù)庫里存儲一個(gè)數(shù)字. 把它還原成我們的格式化時(shí)間
a = 847772281.0
# 先把這個(gè)時(shí)間戳轉(zhuǎn)換成python中的結(jié)構(gòu)化時(shí)間
t = time.localtime(a) # 結(jié)構(gòu)化時(shí)間括號里填的是秒 time.localtime(秒) # 本地化的東八區(qū)的時(shí)間
# t = time.gmtime(a) # 格林尼治時(shí)間
s = time.strftime('%Y-%m-%d %H:%M:%S', t) # time.strftime(格式化格式, 傳入結(jié)構(gòu)化轉(zhuǎn)化完的時(shí)間 t)
print(s)
# 讓用戶輸入一個(gè)時(shí)間. 然后把時(shí)間轉(zhuǎn)化成時(shí)間戳
strt = input('請輸入一個(gè)時(shí)間:')
# 把字符串轉(zhuǎn)化成結(jié)構(gòu)化時(shí)間
t = time.strptime(strt, '%Y-%m-%d %H:%M:%S')
# 轉(zhuǎn)化成時(shí)間戳
print(time.mktime(t)) # 847772281.0 # 本地化的東八區(qū)的時(shí)間
六.functools
1.wraps
from functools import wraps # 可以改變一個(gè)函數(shù)的名字, 注釋.... def wrapper(fn): @wraps(fn) # 把inner的名字改變成原來的func def inner(*args, **kwargs): print('前') ret = fn(*args,**kwargs) print('后') return ret return inner @wrapper # func = wrapper(func) def func(): print('哈哈哈') print(func.__name__) # func
2.reduce
def func(a, b): return a + b # 0 + 1 # 會把我們每一個(gè)數(shù)據(jù)交給func去執(zhí)行, 把默認(rèn)值作為第一個(gè)參數(shù)傳遞給函數(shù) ret = reduce(func, [1, 4, 7, 8, 6, 9],0) print(ret) print(reduce(lambda x, y: x+y, [i for i in range(101)]))
3.partial
from functools import partial def chi(zhushi, fushi): print(zhushi, fushi) chi2 = partial(chi, fushi = "辣雞爪") chi2('大米飯') chi2('小米飯') chi2('黑米飯')
七.命名元組 namedtuple
p = namedtuple('Point', ["x", "y"]) p1 = p(10, 20) print(p1) print(p1.x) print(p1.y)
八.OS模塊 系統(tǒng)操作
1.os
# 必須要記住. 很常用 os.makedirs('baby/安哥拉/特斯拉') # 可以一次性創(chuàng)建多級目錄 os.mkdir('baby/安哥拉/特斯拉/bb') # 上層文件夾必須存在 os.removedirs('baby/安哥拉/特斯拉/bb') # 目錄不是空, 不能刪除 #可以幫我們刪除當(dāng)前這個(gè)目錄級中的所有空文件夾 # 可以記住 一般不刪數(shù)據(jù) os.rmdir('baby/安哥拉/特斯拉') # 指定文件夾刪除 os.system('dir') print(os.popen('dir').read()) # 執(zhí)行shell腳本或者cmd命令 print(os.getcwd()) # 當(dāng)前程序運(yùn)行的文件夾 D:\python_workspace_s18\day 23 內(nèi)置模塊02 os.chdir('baby') # os.path 和路徑相關(guān)的內(nèi)容 print(os.path.abspath('baby')) # 把相對路徑改成絕對路徑 print(os.path.split(r'D:\python_workspace\內(nèi)置模塊\baby\1.txt')) # 切割文件和文件路徑 print(os.path.dirname(r'D:\python_workspace\內(nèi)置模塊\baby\1.txt')) # 文件路徑 print(os.path.basename(r'D:\python_workspace\內(nèi)置模塊\baby\1.txt')) # 文件 print(os.path.existsr'D:\python_workspace\內(nèi)置模塊\baby\1.txt')) # 判斷文件是否存在 print(os.path.abspath('1.txt'))
2.sys模塊
import sys print(sys.path) # 找到模塊的. 必須要記住. 模塊的搜索路徑 sys.path.append(r'D:\python_workspace\內(nèi)置常用模塊') print(sys.path)
九.自定義模塊和包
import
from xxx import xxxx
一個(gè)表達(dá)式 -> 一條語句 -> 語句塊 -> 函數(shù) -> 類 -> 模塊 -> 包 -> 項(xiàng)目
包就是我們的文件夾, 包內(nèi)可以寫很多個(gè)模塊.
查找路徑是:sys.path, 隨動. 跟著你的啟動文件所在的位置變化
不論使用絕對導(dǎo)入. 還是相對導(dǎo)入. 啟動文件一定在最外面
1.模塊
寫的一個(gè)py文件就可以稱作一個(gè)模塊
2.包
文件夾里裝很多模塊的就是包
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python中內(nèi)置模塊的示例分析”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。