這篇文章主要介紹了python中內置模塊的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一.random模塊 隨機
random() 隨機小數
uninform(a,b) 隨機小數
randint(a,b) 隨機整數
choice() 隨機選擇一個
sample() 隨機選擇多個
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的隨機小數 lst = ['寶寶', '寶浪', '寶強', '包拯'] random.shuffle(lst) # 隨機打亂順序 print(lst) # 從列表中隨機選擇一個 print(random.choice(["林志玲", "劉一菲", "王昭君", "艾米", "寶寶"])) print(random.sample(["林志玲", "劉一菲", "王昭君", "艾米", "寶寶"],3)) # 可以給隨機選取幾個
二.Counter 計數
from collections import Counter
print(Counter('寶寶今年特別喜歡王寶強')) # 計數
lst = ['jay', 'jay', 'jay', '寶寶', '寶寶', '胡辣湯', '上官婉兒']
c = Counter(lst)
print(c.get('寶寶'))三.字典
1.默認值字典
from collections import defaultdict dd = defaultdict(lambda: '胡辣湯') # callable 可調用的, 字典是空的 print(dd['張無忌']) # 從字典向外拿數據. 字典是空的. 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'])四.棧和隊列
1.棧
特點:先進后出
class StackFullException(Exception):
pass
class StackEmptyException(Exception):
pass
class Stack:
def __init__(self,size):
self.size = size 給定存放數據的長度
self.lst = [] # 存放數據的列表
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.單項隊列
特點:先進先出
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.雙向隊列
特點:和單項一樣
from collections import deque
d =deque() # 創建雙向隊列
d.append('寶寶') # 在右側添加
d.append('no')
d.append('way')
d.append('哈哈')
d.appendleft('娃哈哈') # 在左邊添加
d.appendleft('爽歪歪')
d.appendleft('優酸乳')
print(d.pop()) # 從右邊拿數據
print(d.pop()) # 從右邊拿數據
print(d.pop()) # 從右邊拿數據
print(d.pop()) # 從右邊拿數據
print(d.popleft()) # 從左邊拿數據
print(d.popleft()) # 從左邊拿數據
print(d.popleft()) # 從左邊拿數據五.time模塊
# 時間戳: 從1970-01-01 00:00:00 開始計算. 未來存儲的時候用時間戳
print(time.time())
# 格式化時間
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 用來顯示的
# 結構化時間(python的時間)
t = time.localtime()
print(t.tm_year)
print(t.tm_mon)
print(t.tm_mday)
# 數據庫里存儲一個數字. 把它還原成我們的格式化時間
a = 847772281.0
# 先把這個時間戳轉換成python中的結構化時間
t = time.localtime(a) # 結構化時間括號里填的是秒 time.localtime(秒) # 本地化的東八區的時間
# t = time.gmtime(a) # 格林尼治時間
s = time.strftime('%Y-%m-%d %H:%M:%S', t) # time.strftime(格式化格式, 傳入結構化轉化完的時間 t)
print(s)
# 讓用戶輸入一個時間. 然后把時間轉化成時間戳
strt = input('請輸入一個時間:')
# 把字符串轉化成結構化時間
t = time.strptime(strt, '%Y-%m-%d %H:%M:%S')
# 轉化成時間戳
print(time.mktime(t)) # 847772281.0 # 本地化的東八區的時間
六.functools
1.wraps
from functools import wraps # 可以改變一個函數的名字, 注釋....
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__) # func2.reduce
def func(a, b): return a + b # 0 + 1 # 會把我們每一個數據交給func去執行, 把默認值作為第一個參數傳遞給函數 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模塊 系統操作
1.os
# 必須要記住. 很常用
os.makedirs('baby/安哥拉/特斯拉') # 可以一次性創建多級目錄
os.mkdir('baby/安哥拉/特斯拉/bb') # 上層文件夾必須存在
os.removedirs('baby/安哥拉/特斯拉/bb') # 目錄不是空, 不能刪除 #可以幫我們刪除當前這個目錄級中的所有空文件夾
# 可以記住 一般不刪數據
os.rmdir('baby/安哥拉/特斯拉') # 指定文件夾刪除
os.system('dir')
print(os.popen('dir').read()) # 執行shell腳本或者cmd命令
print(os.getcwd()) # 當前程序運行的文件夾 D:\python_workspace_s18\day 23 內置模塊02
os.chdir('baby')
# os.path 和路徑相關的內容
print(os.path.abspath('baby')) # 把相對路徑改成絕對路徑
print(os.path.split(r'D:\python_workspace\內置模塊\baby\1.txt')) # 切割文件和文件路徑
print(os.path.dirname(r'D:\python_workspace\內置模塊\baby\1.txt'))
# 文件路徑
print(os.path.basename(r'D:\python_workspace\內置模塊\baby\1.txt'))
# 文件
print(os.path.existsr'D:\python_workspace\內置模塊\baby\1.txt'))
# 判斷文件是否存在
print(os.path.abspath('1.txt'))2.sys模塊
import sys print(sys.path) # 找到模塊的. 必須要記住. 模塊的搜索路徑 sys.path.append(r'D:\python_workspace\內置常用模塊') print(sys.path)
九.自定義模塊和包
import
from xxx import xxxx
一個表達式 -> 一條語句 -> 語句塊 -> 函數 -> 類 -> 模塊 -> 包 -> 項目
包就是我們的文件夾, 包內可以寫很多個模塊.
查找路徑是:sys.path, 隨動. 跟著你的啟動文件所在的位置變化
不論使用絕對導入. 還是相對導入. 啟動文件一定在最外面
1.模塊
寫的一個py文件就可以稱作一個模塊
2.包
文件夾里裝很多模塊的就是包
感謝你能夠認真閱讀完這篇文章,希望小編分享的“python中內置模塊的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。