文章目录

  • 库的使用
    • 标准库
      • 认识标准库
      • import导入模块
      • 使用示例:日期差计算
      • 使用示例:字符串操作
        • 1)翻转单词顺序
        • 2)旋转字符串
        • 3)统计是给定字符串前缀的字符串数目
    • 第三方库
      • 认识第三方库
      • 包管理器pip
      • 使用示例:生成二维码

库的使用

什么是库

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

  • 一个编程语言能否流行起来,一方面取决于其语法是否简单方便容易学习,另一方面取决于其生态是否完备。所谓的生态就是指,该语言是否有足够丰富的库来应对各种编程场景。
  • 在编程过程中并发所有代码都需要自己写,而是要充分利用现成的库来简化开发过程,因此如果一个语言有足够丰富的库,就能够降低程序员的学习成本,提高程序的开发效率。

库的分类

按照库的来源不同,可以将库大致分为两类:

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

标准库

认识标准库

Python自身内置了非常丰富的库,主要有以下部分:

  • 内置函数(如print,input等)。
  • 内置类型的操作(如int,st,list,dict等内置类型的操作)。
  • 文本处理。
  • 时间日期。
  • 数学计算。
  • 文件目录。
  • 数据存储(如操作数据库,数据序列化等)。
  • 加密解密。
  • 操作系统相关。
  • 并发编程相关(如多进程,多线程,协程等)。
  • 网络编程相关。
  • 多媒体相关(如音频处理,视频处理等)。
  • 图形化界面相关。

当需要使用这些库时,可以在Python的官方文档上进行查找:https://docs.python.org/3.10/library/index.html

import导入模块

导入模块

通过import 模块名的方式可以导入对应的模块,导入模块后以模块名.xxx的方式就可以使用模块中的变量或函数。比如:

import osos.remove('test.txt')

说明一下:

  • 模块其实就是一个单独的xxx.py文件,使用import语句可以将外部的xxx.py文件导入到当前文件中,并执行其中的代码。
  • os模块是Python中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文件和目录,代码中remove函数的作用就是删除指定文件。

查看模块

使用dir函数可以获取指定模块中的所有变量名和函数名。比如:

import osnames = dir(os)
for name in names:print(name)

运行结果如下:

说明一下:

  • dir函数会以列表的方式返回指定模块中的变量名和函数名。
  • dir函数可用于所有模块,包括我们自己创建的模块。

重命名模块

通过import 模块名 as 别名的方式可以为导入的模块创建别名。比如:

import os as aliasalias.remove('test.txt')

注意: 如果对导入模块进行了重命名,那么后续在使用模块时就必须使用别名对模块进行访问。

从模块导入

通过from 模块名 import 部件的方式可以仅从模块中导入指定部件。比如:

from os import removeremove('test.txt')

注意: 在使用from关键字导入的部件时,不能以模块名.xxx的方式使用,而是直接使用。

使用示例:日期差计算

计算任意两个日期之间隔了多少天

解题步骤:

  1. 使用import语句导入标准库的datetime模块。
  2. 使用datetime模块中的datetime类构造两个日期对象。
  3. 两个日期对象相减,即可得到日期的差值。

代码如下:

import datetimedate1 = datetime.datetime(2021, 1, 10)
date2 = datetime.datetime(2022, 10, 30)
print(date2 - date1)  # 658 days, 0:00:00

关于datetime的更多操作,可以参考官方文档:https://docs.python.org/3/library/datetime.html

使用示例:字符串操作

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

1)翻转单词顺序

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

解题步骤:

  1. 使用字符串的split方法对字符串进行切分,指定空格为分隔符,返回结果是一个列表。
  2. 使用列表的reverse方法对列表内元素进行逆序。
  3. 使用字符串的join方法对字符串进行拼接,把列表中的内容进行合并。

代码如下:

def reverseWords(s: str):tokens = s.split(' ')    # 切分字符串tokens.reverse()         # 逆序列表return ' '.join(tokens)  # 拼接字符串

2)旋转字符串

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

解题步骤:

  1. 使用len函数求两个字符串的长度,如果长度不相同,则一定不能旋转得到。
  2. 将s和自己进行拼接,然后直接使用in方法来判定goal是否是s+s的子串。

代码如下:

def rotateString(s, goal):if len(s) != len(goal):return Falsereturn goal in (s + s)

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

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

解题步骤:

  1. 依次遍历words中的字符串。
  2. 使用字符串的startswith方法判定当前字符串是否是s的前缀。

代码如下:

def countPrefixes(words: list, s: str):count = 0for word in words:if s.startswith(word):count += 1return count

关于字符串的更多操作,可以参考官方文档:https://docs.python.org/3/library/stdtypes.html#str

第三方库

认识第三方库

  • 虽然Python自身已经内置了非常丰富的库,但标准库终究是有限的,而第三方库集合了全世界Python程序员的智慧,可以说是无穷无尽。
  • 其次,我们也可以将自己的代码作为第三方库发布出去,以供其他人使用。

问题来了,当我们遇到一个需求场景的时候,如何知道,该使用哪个第三方库呢?
就需要用到下面几个网站了:

当我们确定了该使用哪个第三方库之后,就可以使用pip来安装第三方库了。

包管理器pip

pip介绍

pip是一个通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载的功能。

  • 全世界所有程序员都可以发布第三方库,Python官方为了方便大家使用,于是提供了PyPI网站来收集这些第三方库,程序员写好的第三方库都会申请上传到PyPI上。
  • pip是一个可执行程序,在安装Python的时候就已经内置了,无需额外安装。

pip使用

打开终端输入pip,如果显示以下帮助信息,则说明pip已经准备就绪。

如果提示'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件,则说明在安装Python的时候没有正确的将pip添加到PATH环境变量中,此时的解决方法有两种:

  • 手动将pip所在的路径添加到PATH环境变量中。
  • 卸载重装Python,在重装时记得勾选添加环境变量的选项。

当pip就绪后,通过以下命令即可安装对应的第三方库:

pip install [库名]

注意:

  • pip命令需要从网络上进行下载,使用时需要保证网络畅通,安装成功后即可使用import导入对应的模块进行使用。
  • 如果使用pip安装完第三方库后,在PyCharm中仍然提示找不到对应的模块,则依次点击File->Settings->Project->Project Interpreter,查看Python解释器设置是否正确。(如果一个机器上安装了多个版本的Python,就容易出现这种情况)

使用示例:生成二维码

1、通过搜索引擎,确定需要使用的库

2、查看qrcode文档

Python官方将第三方库都收集到了PyPI网站,因此我们可以在PyPI上直接搜索qrcode。

搜索后进入qrcode的详情页,在文档开头就描述了应该如何安装qrcode库。

在文档中还描述了qrcode库的使用方法。

3、使用pip安装

在得知如何安装qrcode后,直接使用pip命令进行安装即可。

pip install qrcode[pil]

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

4、编写代码

安装qrcode库后,模仿文档中的示例代码来编写代码即可。比如:

import qrcodeimg = qrcode.make('越努力越幸运')
img.save('qrcode.png')

运行程序后,在当前目录下就会生成一个名为qrcode.png的二维码图片。如下:

这时使用微信或者其他工具扫码,即可看到二维码当中的内容。

说明一下:二维码本质就是用黑白点阵来表示一个字符串,如果表示的字符串是一个URL,那么扫码后就会直接跳转到对应的地址,从而打开一个网页。

Python库的使用相关推荐

  1. 53个Python库,你必须要试试

    Python库大全 大邓将Python库整理为8部分,对每个库稍加自己的理解和评价,对Python感兴趣的同学可以收藏起来 •网络爬虫 •数据库 •数据分析 •机器学习 •可视化 •文本分析 •GUI ...

  2. Python库全部整理出来了,非常全面

    库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...

  3. Python工具 | 9个用来爬取网络站点的 Python 库

    1️⃣Scrapy 一个开源和协作框架,用于从网站中提取所需的数据. 以快速,简单,可扩展的方式. 官网 2️⃣cola 一个分布式爬虫框架. GitHub 3️⃣Demiurge 基于 PyQuer ...

  4. 2021年最有用的数据清洗 Python 库

    作者 | 周萝卜 来源 | 萝卜大杂烩 大多数调查表明,数据科学家和数据分析师需要花费 70-80% 的时间来清理和准备数据以进行分析. 对于许多数据工作者来说,数据的清理和准备也往往是他们工作中最不 ...

  5. 用于小型图形挖掘研究的瑞士军刀:空手道俱乐部的图表学习Python库

    作者 | Benedek Rozemberczki 译者 | 天道酬勤 责编 | Carol 出品 | AI科技大本营(ID:rgznai100) 空手道俱乐部(Karate Club)是Networ ...

  6. 用这个Python库,训练你的模型成为下一个街头霸王!

    作者 | MJ-Murray 译者 | 孤鸿 整理 | Jane 出品 | AI科技大本营 从世界瞩目的围棋游戏 AlphaGo,近年来,强化学习在游戏领域里不断取得十分引人注目的成绩.自此之后,棋牌 ...

  7. 2018:数据科学20个最好的Python库

     作者 | ActiveWizards 译者 | 婉清 编辑 | 阿司匹林 出品 | AI科技大本营(公众号ID:rgznai100) Python 在解决数据科学任务和挑战方面继续处于领先地位. ...

  8. 这个Python库可以偷懒,和import说再见!

    还记得入门Python数据分析时经常会import几个库,下面这几个可谓是入门学习时的四大护法,Python数据处理和可视化常会用的工具. 不知道大家有没有遇到过这样一个问题,每次重新开启一个建模流程 ...

  9. 1000+ 常用 Python 库一览

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源 | 法纳斯特 这次给大家总结整理了1000+常用Python库 ...

  10. 谁是 2020 年最强 Python 库?年度 Top10 出炉

    蕾师师 发自 凹非寺  量子位 报道 | 公众号 QbitAI 2020年已经过去了,国外的一家专门提供Python服务的网站Troy Labs,盘点出了2020年发布的Python库Top10. 上 ...

最新文章

  1. shutdown -s -t XXX
  2. DNS隧道工具使用 不过其网络传输速度限制较大
  3. 教你如果设置自己喜欢的QQ背景音乐
  4. Android --- no module 问题
  5. FOSCommentBundle功能包:改变样式
  6. String.getBytes()和new String()
  7. vc连接mysql 查询_vc连接数据库中查询代码如何写呀 急急急!!!!!!
  8. navicat 或者workbench 无法连接127.0.0.1(61)的解决方法
  9. 【概率论】1-2:计数方法(Counting Methods)
  10. 移动云TeaTalk:这是一场云数据库技术的深度对话!
  11. CSS如何实现”右部宽度固定,左部自适应“的布局
  12. js indexOf()
  13. 计算机与操作系统发展阶段 深谈:Linux操作系统
  14. 首尔2017年公共区域全覆盖免费WiFi
  15. java 类文件_Java类文件概述
  16. 1 操作系统安全加固
  17. html5 斗鱼 苹果,斗鱼ios端——手游直播开播指导
  18. Java根据成绩排名次_C语言按考试成绩排名次并存储到文件中
  19. mysql-bin.index_mysqlbin.index是什么文件
  20. smart 支持标签

热门文章

  1. 解决Flutter Android sdkmanager tool not found
  2. csgo人机指令_CSGO指令:命令BOT前往指定位置
  3. ogg文件怎么转换为mp3格式?
  4. Spring基础笔记
  5. 【量化笔记】配对交易
  6. 斯柯达支持Android auto吗,斯柯达在SUV的布局输了吗?看柯米克和柯珞克的现状就知道...
  7. Win11账号被锁定无法登录怎么办?Win11账号被锁定无法登录
  8. (转)iOS Wow体验 - 第四章 - 为应用的上下文环境而设计
  9. mysql创建联合索引_mysql如何创建多个联合索引
  10. 调试ASP程序时,遇到程序运行错误时怎么查看具体错误位置呢?