Python常見的第三方庫[詳細解析]

慈雲數據 7個月前 (05-09) 技術支持 35 0

Python是通過模塊來體現庫,常見的有标準庫和第三方庫。标準庫是Python自帶的庫,在官方文檔中可以查看,第三方庫是其他大佬做出來的。

Python常見的第三方庫[詳細解析]
(圖片來源網絡,侵删)

庫它的優點有:1.降低程序員的學習成本 2.提高程序的開發效率

第1個常見的庫爲datetime,我們放在日期管理器中爲例:

Python常見的第三方庫[詳細解析]
(圖片來源網絡,侵删)

1.根據日期構造出datetime類型變量

2.把兩個變量進行相減,得到的結果即爲所求

datetime.datetime(年,月,日)

第1個datetime是模塊,第2個是具體類型

但這樣容易引起誤會,可以直接導入模塊中的類型嗎?是可以的,隻要在開頭聲明

from 模塊 import 類型. 又或者直接将模塊名改一下: import datetime as 改的變量名.

第2個常見的庫,我們以字符串的轉置字符爲例,具體體現:1.字符串split的方法可以指定分隔符,把字符串分爲多個部分放到一個list裏 2.針對鋼材逆序可以用reverse方法 3.再把逆序的列表用join方法組合起來 例:" “(” "裏面填入字符) 這個是字符串表示每次拼接後以什麽結束.join(變量)

加大難度:查找是否前綴相同的字符串

1.遍曆整個列表,取列表中每個字符串

2.判斷當前字符串是否是target的前綴就行了.

這裏要用到startswitch方法,可以判斷是不是相同開頭的,endswitch方法可以判斷是不是相同結尾,而in則可以查看這些這個target是不是在裏面的.

加大難度:很多目錄很多文件,請實現一個文件管理

這裏要用到Os.walk()Os是模塊,操作系統的模塊. walk()表示是循環路徑. Os walk 每次調用都能自動的去針對子目錄進行遞歸操作,隻需要使用上述循環就可,已把所有路徑找出來.

這裏上述例子用到的都是标準庫,然後第三方庫備pypl官方網站集合了起來,相當于Python世界中的應用商店,而pip工具是 pypl的一個句柄,在Python安裝的過程中就已經下載好了,成爲了命令行程序.

點擊控制台下方的terminal,使用命令pip install[庫名] 安裝後記得導入模塊名哦

這裏說着很空洞,直接舉個例子生成二維碼(本質就是字符串,而生活中的二維碼更多的是一個URL網址):

Python
import qrcode
strings = qrcode.make("你好呀!祝你好好學習,天天向上")
strings.save("test.png")

當你運行的時候發現它沒有消息的時候,往往no news is good news,沒有消息就是最好的消息.

對了,其實可以把博客的鏈接弄成二維碼放在簡曆上,這樣面試官可以拿手機掃一下.

對了,提個題外話,網址上的一些代碼在自己的程序中不一定運行起來,可能是它代碼本身就是錯誤的,因爲沒人驗證,第2個可能是它的運行軟件版本不同,也可能造成運行不成功.

第2個操作Excel的模塊,主要是xlrd 讀 xlwt寫 這裏的讀寫都是指文檔地址。 注意安裝的時候盡量這樣安裝 pip install xlrd == 1.2.0 這個數字是版本号這裏要指定版本号,否則自動默認最新版,而最新版不支持xlsx格式文件,也就是Excel的格式.我這裏主要是極差标準化,主要是爲了演示:

Python
import xlrd
# 先打開xlsx文件
reads = xlrd.open_workbook("C:/Users/Documents/Python/Excel.xlsx")
# 确定标簽頁
loated = reads.sheet_by_index(0)
# 确定行數
rows = loated.nrows
print(f'行數爲:{rows}')
# 遍曆每行 尋找每列mix and max
mix1 = 100000; max1 = 0; mix2 = 100000; max2 = 0; mix3 = 100000; max3 = 0
for i in range(1, rows):
    rowsj1 = loated.cell_value(i, 1)
    mix1 = min(mix1, rowsj1)
    max1 = max(max1, rowsj1)
    rowsj2 = loated.cell_value(i, 2)
    mix2 = min(mix2, rowsj2)
    max2 = max(max2, rowsj2)
    rowsj3 = loated.cell_value(i, 3)
    mix3 = min(mix3, rowsj3)
    max3 = max(max3, rowsj3)
denominator1 = max1 - mix1;denominator2 = max2 - mix2; denominator3 = max3 - mix3;
# 計算每行極差标準化
for i in range(1, rows):
    rowsj1 = loated.cell_value(i, 1)
    real1 = (rowsj1 - mix1)/denominator1
    rowsj2 = loated.cell_value(i, 2)
    real2 = (rowsj2 - mix2)/denominator2
    rowsj3 = loated.cell_value(i, 3)
    real3 = (rowsj3 - mix3)/denominator3
    print([real1, real2, real3], "\t")

程序員鼓勵師:這裏用了一個多線程的方法,因爲此處的播放音頻的時間比較多,可能會引起輸入的卡頓,此時可以創造一個線程,在線程裏播放音頻.也就是threating.

Python
from playsound import playsound
from pynput import keyboard
import random
from threading import Thread
sound = ["sound/1.mp3", "sound/3.mp3", "sound/4.mp3", "sound/5.mp3", "sound/6.mp3", "sound/7.mp3", "sound/8.mp3"]
count = 0
def release(s):
    print(s)
    global count
    count += 1
    if count % 20 == 0:
        i = random.randint(0, len(sound)-1)
        print(i)
        t = Thread(target=playsound, args=(sound[i], ))
        t.start()
soundstart = keyboard.Listener(on_release=release)
soundstart.start()
soundstart.join()

當你釋放按鍵的時候listerener會自動調用,像這樣不是咱們自己自動調用,而是交給别人在合适的時機進行調用,這樣的函數叫做回調函數.

最後感謝大大大佬的支持!

微信掃一掃加客服

微信掃一掃加客服

點擊啓動AI問答
Draggable Icon