【Python】库的使用

我的gitee仓库是:https://gitee.com/liu-yihao-hhh/learning-python

库 就是是别人已经写好了的代码, 可以让我们直接拿来用.

荀子曰: “君子性非异也,善假于物也”

一个编程语言能不能流行起来, 一方面取决于语法是否简单方便容易学习, 一方面取决于生态是否完备.

所谓的 “生态” 指的就是语言是否有足够丰富的库, 来应对各种各样的场景.
实际开发中, 也并非所有的代码都自己手写, 而是要充分利用现成的库, 简化开发过程.

按照库的来源, 可以大致分成两大类

  • 标准库: Python 自带的库. 只要安装了 Python 就可以直接使用.
  • 第三方库: 其他人实现的库. 要想使用, 需要额外安装.

咱们自己也可以实现 “第三方库” 发布出去, 交给别人来使用标准库

认识标准库

在 Python 官方文档上可以看到这些库的内容.
Python标准库官方文档

简单来说, 主要是这些部分:

内置函数 (如 print, input 等)

  • 内置类型 (针对 int, str, bool, list, dict 等类型内置的操作).

  • 文本处理

  • 时间日期

  • 数学计算

  • 文件目录

  • 数据存储 (操作数据库, 数据序列化等).

  • 加密解密

  • 操作系统相关

  • 并发编程相关 (多进程, 多线程, 协程, 异步等).

  • 网络编程相关

  • 多媒体相关 (音频处理, 视频处理等)

  • 图形化界面相关


  • 我们不需要把这些库的内容都背下来, 只要大概知道里面有啥, 需要用的时候能够找到即可

​使用 import 导入模块
使用 import 可以导入标准库的一个 模块

import [模块名]

所谓 “模块” , 其实就是一个单独的 .py 文件.
使用 import 语句可以把这个外部的 .py 文件导入到当前 .py 文件中, 并执行其中的代码.

代码示例: 日期计算

输入任意的两个日期, 计算两个日期之间隔了多少天.

  • 使用 import 语句导入标准库的 datetime 模块
  • 使用 datetime.datetime 构造两个日期. 参数使用 年, 月, 日 这样的格式.
  • 两个日期对象相减, 即可得到日期的差值
import datetime
date1 = dt.datetime(2004,9,14)
date2 = dt.datetime(2025,3,3)
print(date2 - date1)

在这里插入图片描述
关于 datetime 的更多操作, 可以参考官方文档
官方文档链接

代码示例: 字符串操作

字符串是 Python 的内置类型, 字符串的很多方法不需要导入额外的模块, 即可直接使用.

1) 剑指offer 58, 翻转单词顺序

链接跳转

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。

  • 使用 str 的 split 方法进行字符串切分, 指定 空格 为分隔符. 返回结果是一个列表.
  • 使用列表的 reverse 方法进行逆序.
  • 使用 str 的 join 方法进行字符串拼接. 把列表中的内容进行合并
def reverseWords(s):
    tokens = s.split()
    tokens.reverse()
    return ' '.join(tokens)
print(reverseWords('I am a student.'))

2) leetcode 796, 旋转字符串

链接跳转

给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = ‘abcde’,在旋转一次之后结果就是’bcdea’ 。

  • 使用 len 求字符串的长度. 如果长度不相同, 则一定不能旋转得到.
  • 将 s 和 自己 进行拼接, 然后直接使用 in 方法来判定 goal 是否是 s + s 的子串
   return len(s) == len(goal) and goal in s + s
print(rotateString('abcde', 'cdeab'))

3) leetcode 2255, 统计是给定字符串前缀的字符串数目

链接跳转

给你一个字符串数组 words 和一个字符串 s ,其中 words[i] 和 s 只包含 小写英文字母 。
请你返回 words 中是字符串 s 前缀 的 字符串数目 。
一个字符串的 前缀 是出现在字符串开头的子字符串。子字符串 是一个字符串中的连续一段字符序列。

  • 依次遍历 words 中的字符串
  • 直接使用字符串的 startswith 方法即可判定当前字符串是否是 s 的前缀
def countPrefixes(words, s):
    res = 0   # 符合要求字符串个数
    for word in words:
        if s.startswith(word):
            res += 1
    return res
print(countPrefixes(["a","b","c","ab","bc","abc"], "abc"))

代码示例: 文件查找工具

指定一个待搜索路径, 同时指定一个待搜索的关键字.
在待搜索路径中查找是否文件名中包含这个关键字.

  • 使用 os.walk 即可实现目录的递归遍历.
  • os.walk 返回一个三元组, 分别是 当前路径 , 当前路径下包含的目录名 (多个), 当前路径下包含的文件名 (多个)
import os
inputPath = input('请输入待搜索路径: ')
pattern = input('请输入待搜索关键词: ')
for dirpath, dirnames, filenames in os.walk(inputPath):
    for f in filenames:
        if pattern in f:
            print(f'{dirpath}/{f}')

关于 os 模块的更多操作, 参考官方文档
官方文档链接

第三方库

  • 第三方库就是别人已经实现好了的库, 我们可以拿过来直接使用.
  • 虽然标准库已经很强大了, 但是终究是有限的. 而第三方库可以视为是集合了全世界 Python 程序猿的智慧, 可以说是几乎无穷无尽
  • 当我们确定了该使用哪个第三方库之后, 就可以使用 pip 来安装第三方库了.

使用 pip
pip 是 Python 内置的 包管理器.

所谓 包管理器 就类似于我们平时使用的手机 app 应用商店一样.
第三方库有很多, 是不同的人, 不同的组织实现的. 为了方便大家整理, Python 官方提供了一个网站
PyPI 官方链接, 来收集第三方库.
其他大佬写好的第三方库也会申请上传到 PyPI 上.
这个时候就可以方便的使用 pip 工具来下载 PyPI 上的库了

pip 在我们安装 Python 的时候就已经内置了. 无需额外安装.
pip 是一个可执行程序, 就在 Python 的安装目录中

打开 cmd, 直接输入 pip. 如果显示以下帮助信息, 说明 pip 已经准备就绪. 在这里插入图片描述

如果最开始按照要求在安装 Python 的时候勾选了在这里插入图片描述
那么 pip 就是默认可用的.

如果提示

‘pip’ 不是内部或外部命令,也不是可运行的程或批处理文件。

则说明没有正确的把 pip 加入到 PATH 中, 可以手动把 pip 所在的路径加入到 PATH 环境变量中. (参考 https://www.jianshu.com/p/1de0acf7185d)
或者卸载重装 Python, 记得勾上上述选项, 也许是更简单的办法.

使用以下命令, 即可安装第三方库

pip install [库名]

注意: 这个命令需要从网络上下载, 使用时要保证网络畅通.
安装成功后, 即可使用 import 导入相关模块, 即可进行使用

注意: 如果使用 pip 安装完第三方库之后, 在 PyCharm 中仍然提示找不到对应的模块, 则检查 Settings -> Project -> Python Interpreter , 看当前 Python 解释器设置的是否正确. (如果一个机器上安装了多个版本的 Python, 容易出现这种情况).

代码示例: 生成二维码

(1) 通过搜索引擎, 确定使用哪个库
PyPI https://pypi.org/, 来收集第三方库
在这里插入图片描述

(2) 查看 qrcode 文档
在 PyPI 上搜索 qrcode
在这里插入图片描述点击则进入 qrcode 的详情页.
文档开头描述了如何安装 qrcode
在这里插入图片描述页面中央位置描述了 qrcode 库的使用方法
在这里插入图片描述

(3) 使用 pip 安装

pip install qrcode[pil]

注意: pip 安装的时候可能会有警告, 提示使用的 pip 版本太低. 这个警告我们不必处理, 不影响我们正常使用.

(4) 编写代码
按照文档给出的示例, 模仿一段代码

import qrcode
img = qrcode.make('哈哈真帅')
img.save('qrcode.png')

运行完毕后, 得到结果如下:
在这里插入图片描述
使用微信或者其他工具扫码, 即可看到二维码内容.

所谓二维码, 本质上就是使用黑白点阵表示一个字符串.
我们日常使用的二维码内部一般是一个 URL, 扫码后会自动跳转到对应的地址, 从而打开一个网页.

总结不易~ 本章节对我有很大的收获,希望对你也是~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值