当前位置:   article > 正文

【Python】常见的第三方库及实例

【Python】常见的第三方库及实例
各位大佬好 ,这里是阿川的博客 , 祝您变得更强

在这里插入图片描述 个人主页在线OJ的阿川

大佬的支持和鼓励,将是我成长路上最大的动力 在这里插入图片描述

阿川水平有限,如有错误,欢迎大佬指正 在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

库介绍

Python是通过模块体现库,常见的有标准库第三方库

  • 标准库是Python自带的库,在官方文档中可以查看
  • 第三方库是其他大佬做出来的。

库的优点

  1. 降低程序员的学习成本
  2. 提高程序的开发效率

常见库

datetime

我们放在日期管理器中为例:

  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网址
import qrcode
strings = qrcode.make("你好呀!祝你好好学习,天天向上")
strings.save("test.png")
  • 1
  • 2
  • 3

当运行的时候发现它没有消息的时候,往往no news is good news,没有消息就是最好的消息
对了,其实可以把博客的链接弄成二维码放在简历上,这样面试官可以拿手机扫一下,可以看出您很用心哦
心得感悟:
网址上的一些代码在自己的程序中不一定运行起来,可能是它代码本身就是错误的,因为没人验证,第2个可能是它的运行软件版本不同,也可能造成运行不成功。

例如:操作Excel的模块,主要是xlrd 读 xlwt写 这里的读写都是指文档地址。 注意安装的时候尽量这样安装 pip install xlrd == 1.2.0 这个数字是版本号这里要指定版本号,否则自动默认最新版,而最新版不支持xlsx格式文件,也就是Excel的格式.我这里是用该模板进行极差标准化演示:

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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

程序员鼓励师:这里用了一个多线程的方法,因为此处的播放音频的时间比较多,可能会引起输入的卡顿,此时可以创造一个线程,在线程里播放音频.也就是threating.

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

当你释放按键的时候listerener会自动调用,像这样不是咱们自己自动调用,而是交给别人在合适的时机进行调用,这样的函数叫做回调函数.
最后感谢大大大佬的支持!

好的,到此为止啦,祝您变得更强

在这里插入图片描述

道阻且长 行则将至
个人主页:在线OJ的阿川大佬的支持和鼓励,将是我成长路上最大的动力 在这里插入图片描述
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号