• Python库的使用


    库的使用

    什么是库

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

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

    库的分类

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

    • 标准库: 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')
    
    • 1
    • 2
    • 3

    说明一下:

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

    查看模块

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

    import os
    
    names = dir(os)
    for name in names:
        print(name)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果如下:

    在这里插入图片描述

    说明一下:

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

    重命名模块

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

    import os as alias
    
    alias.remove('test.txt')
    
    • 1
    • 2
    • 3

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

    从模块导入

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

    from os import remove
    
    remove('test.txt')
    
    • 1
    • 2
    • 3

    注意: 在使用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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    关于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)  # 拼接字符串
    
    • 1
    • 2
    • 3
    • 4
    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)
    
    • 1
    • 2
    • 3
    • 4
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    第三方库

    认识第三方库

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

    包管理器pip

    pip介绍

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

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

    pip使用

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

    在这里插入图片描述

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

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

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

    pip install [库名]
    
    • 1

    注意:

    • 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]
    
    • 1

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

    4、编写代码

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

    import qrcode
    
    img = qrcode.make('越努力越幸运')
    img.save('qrcode.png')
    
    • 1
    • 2
    • 3
    • 4

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

    说明一下:二维码本质就是用黑白点阵来表示一个字符串,如果表示的字符串是一个URL,那么扫码后就会直接跳转到对应的地址,从而打开一个网页。
    
    • 1
  • 相关阅读:
    OpenJudge NOI题库 入门 116题 (二)
    哥德巴赫猜想
    Java泛型,这个范可真行
    多肽介导PEG磷脂——靶向功能材料之DSPE-PEG-RGD/TAT/NGR/APRPG
    【ubuntu】 Linux(ubuntu)创建python的虚拟环境
    团队Git规范文档(操作规范及提交规范)
    企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
    PostgreSQL 存储结构浅析
    内网穿透的应用-本地部署Stackedit Markdown编辑器公网远程访问
    华为云新开源低代码引擎 TinyEngine核心亮点
  • 原文地址:https://blog.csdn.net/chenlong_cxy/article/details/127583417