Python库的使用

news2024/11/27 6:39:31

文章目录

  • 库的使用
    • 标准库
      • 认识标准库
      • 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 os

os.remove('test.txt')

说明一下:

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

查看模块

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

import os

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

运行结果如下:

在这里插入图片描述

说明一下:

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

重命名模块

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

import os as alias

alias.remove('test.txt')

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

从模块导入

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

from os import remove

remove('test.txt')

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

使用示例:日期差计算

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

解题步骤:

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

代码如下:

import datetime

date1 = 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 False
    return goal in (s + s)

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

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

解题步骤:

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

代码如下:

def countPrefixes(words: list, s: str):
    count = 0
    for word in words:
        if s.startswith(word):
            count += 1
    return 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 qrcode

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

运行程序后,在当前目录下就会生成一个名为qrcode.png的二维码图片。如下:
在这里插入图片描述
这时使用微信或者其他工具扫码,即可看到二维码当中的内容。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QFile(文件)

QFile QFile提供一个用于读/写的接口,是一个可以用来读/写二进制文件的Qt资源的I/O设备,QFile可以单独使用,一般配合QTextStream或QDataStream 输入文件路径时最好使用"/"作为分隔符 构造函数: 常用的函数:…

前端甘特图组件开发(二)

自定义时间轴功能 由于常见的甘特图时间轴只支持按照天/周/月/年或者固定的时间单位进行划分,但实际使用场景下有时候会需要按照特定且不规则的时间段对进度数据进行直观划分。因此本组件在原时间轴的基础上添加新的自定义时间轴,可通过数据配置自定义时…

Spring Bean的作用域

1.写在前面 前面的博客我们已经介绍完Spring的依赖的查找来源,依赖注入的来源等等相关知识,今天我们继续来介绍Spring的Bean的作用域。 2.Spring Bean作用域 作用域 3.“singleton” Bean作用域 配置 4.“prototype” Bean作用域 配置 注意事项 Sp…

[Redis]-持久化方式

[Redis]-持久化方式 森格 | 2022年11月 本文是在学习Redis中,对Redis持久化的个人总结。 一、 持久化与Redis 1.1 什么是持久化 持久化是一种将程序数据在瞬时状态和持久状态间的转换机制,也就是把数据保存到可永久保存的存储设备中去。 1.2 Redis的持…

【Hack The Box】linux练习-- Writer

HTB 学习笔记 【Hack The Box】linux练习-- Writer 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月27日🌴 &#x1f3…

《web课程设计》使用HTML+CSS制作大学生校园二手交易网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

阿里P8现身说法,解密“架构”原理与实战笔记:从分布式到微服务

分布式架构与微服务平台是当今IT界的关键技术,也是资深软件工程师和系统架构师必须掌握的核心技术。 微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解…

十万部冷知识:足球踢进了观众席,观众能把球拿走吗?

在看足球比赛的时候,我们经常会看到球员一脚射门踢偏了,球被打飞的情况,这时候球可就奔着观众席去了。就是因为考虑到有这种情况的发生,在比赛之前,比赛组织者,都会提前准备很多的备用球,当球被…

R11.8-11.8-11.8-11.8-BABSL

R11.8-11.8-11.8-11.8-BABSL R11.8-11.8-11.8-11.8-BABSL哈威柱塞泵宁波秉圣,主要特点是高自吸转速,工作效率高,结构紧凑,工作压力高等。广泛用于压力机器具,测试和实验室设施,润滑装置等设备,在…

Home Assistant添加ESPHome设备(IO控制继电器)

文章目录1.在加载项商店中安装ESPHome2.添加设备2.1 编译并下载.bin到电脑2.2 下载固件到ESP82662.3 在Home Assistant添加并配置设备2.4 在设备与服务中配置3.再添加一个设备1.在加载项商店中安装ESPHome 点击配置-加载项 点击加载项商店 搜索ESPHome 2.添加设备 这里…

为什么我在公司里访问不了家里的电脑?

本文为掘金社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究! 上篇文章「为什么我们家里的IP都是192.168开头的?」提到,因为IPv4地址有限,最大42亿个。为了更好的利用这有限的…

前端学习一、准备工作

一、电脑 首先想学习前端肯定是需要一台电脑,配置方面目前市面上3千左右的电脑就差不多了,如果有能力的话肯定是越高越好,如何挑选笔记本可自行搜索,我在这方面不专业就不讲了。 二、安装软件 谷歌浏览器 如果无法访问谷歌浏览…

你知道MySQL是如何解决幻读的吗?

前言 SQL标准中定义了4种隔离级别,分别是读未提交、读已提交、可重复读以及序列化。不同的隔离级别下,可以解决不同的并发问题,如下图所示。当然MySQL也基本遵循了这个标准,但是在实现上稍有不同。 本文重点探讨下MySQL是如何解…

MySQL线程池

概述 池化技术,包括线程池、连接池、内存池、对象池等。作用就是提前保存大量的资源,或将用过的资源保存起来,等下一次需要使用该资源时再取出来重复使用。 线程池:通过预先创建一定数量的线程,当有请求达到时&#…

黑苹果之技嘉(GIGABYTE)主板BIOS设置篇

很多童鞋安装黑苹果的时候会卡住,大部分原因是cfg lock 没有关闭,以及USB端口或SATA模式设置错误。 为了避免这些安装阶段报错的情况发生,今天给大家分享一下超详细的BIOS防踩坑设置指南--技嘉(GIGABYTE)主板BIOS篇&am…

OpenGL官方文档中的入门教程源代码:在3维空间中自由移动

OpenGL官方文档中的入门教程源代码:在3维空间中自由移动项目总览:一、开发前的准备工作1.将以上链接中的三个文件分别放到自己硬盘的一个文件夹中:例如D盘/OpenGL/...2.打开VS2022创建一个项目,右击窗体选择属性3.配置这3个文件的…

SQL Server全套教程(基于SQL语句----预览版)

SQL Server全套教程全程干货1. 数据库的基础操作1.1.0 创建数据库1.1.1 查看及修改数据库1.1.3 分离、附加和删除数据库1.1.4 数据库的备份和还原2.数据库表的相关操作2.1.0 常用数据类型2.1.1 表结构的创建2.1.2 表结构的查看及修改2.1.3 表约束的创建2.1.4 表约束的修改2.1.5…

2013款别克凯越危险警告灯不亮故障诊断方案设计

目 录 一、预约与准备工作 1 (一)工作描述 1 (二)预约 1 (三)准备工作 1 1、分析故障可能原因 1 2、工具、量具准备 1 3、辅料准备 2 二、接车、问诊与制单 2 (一)接车、问诊 2 &am…

mysql笔记

幻读 概念 一个事务中的两次同样的查询不一致。 解决幻读: RR:使用select ... for update加排他锁 for update的引入是为了幂等性问题,如果不加for update可能出现并发问题。 【参考:MySQL幻读详解及解决方法_学而不思则忘的博…

Word处理控件Aspose.Words功能演示:从 Java 中的 Word 文档中提取图像

图像通常用于表示 Word 文档中的重要信息。在文本旁边包含图像使内容更具吸引力。在某些情况下,您可能需要以编程方式提取嵌入在 Word 文档中的图像。为此,本文介绍了如何使用 Java 从 Word 文档中提取图像。 Aspose.Words for . java 最新下载&#xf…