首页 > 编程语言 >【Python】标准库的使用

【Python】标准库的使用

时间:2024-09-01 12:23:06浏览次数:6  
标签:date2 https Python datetime 标准 words 使用 字符串

Python 通过模块来体现“库”

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

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

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

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

所谓的 “生态” 指的就是语言是否有足够丰富的库, 来应对各种各样的场景

实际开发中,也并非所有的代码都自己手写,而是要充分利用现成的库,简化开发过程

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

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

标准库

Python 自身内置了非常丰富的库.,在 Python 官方文档上可以看到这些库的内容
https://docs.python.org/3.10/library/index.html

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

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

日期计算

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

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

"""
运行结果
7496 days, 0:00:00
"""

或者这样行写

from datetime import datetime  
  
date1 = datetime(2004,2,23)  
date2 = datetime(2024,9,1)  
print(date2 - date1)

"""
运行结果
7496 days, 0:00:00
"""

或者这样写,将模块名重命名一下

import datetime as dt  
  
date1 = dt.datetime(2004,2,23)  
date2 = dt.datetime(2024,9,1)  
print(date2 - date1)

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

字符串操作

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

剑指offer 58,翻转单词顺序

https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/description/

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

思路

  1. 针对上述字符串,使用空格进行切分。split 方法,可以指定分隔符,把字符串分成多个部分,放到一个 list 里面
  2. 针对方才的切分结果列表,进行逆序==> reverse
  3. 将逆序后的列表,组合起来==> join
def reverseWords(s: str):  
    tokens = s.split(' ')  
    tokens.reverse()  
    return ' '.join(tokens)
  • s: str 是声明 s 是一个字符串变量

leetcode 796,旋转字符串

https://leetcode.cn/problems/rotate-string/

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

思路

  • 使用 len 求字符串的长度,如果长度不相同,则一定不能旋转得到
  • s 和自己进行拼接,然后直接使用 in 方法来判定 goal 是否是 s + s 的子串.
def rotateSstring(s, goal):  
    if len(s) != len(goal):  
        return False  
    return goal in (s+s)

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

https://leetcode.cn/problems/count-prefixes-of-a-given-string/

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

思路

  • 遍历 words,取出每个字符串
  • 判定当前这个字符串是否是 s 的前缀(s 是否是以这个字符串开头的)==>startwith
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

文件查找工具

  • 搜索的关键就是对目录结构进行遍历
    • 递归查找,遇到子目录,就进到目录里面进行查找
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.walk 是一个遍历操作系统目录非常好用的一个办法
    • 只需要使用简单的循环就能完成递归遍历目录的操作,不必手写递归代码
    • os 传入的参数就是要从哪个目录开始进行遍历
  • dirpath 表示遍历到当前位置,对应的路径是什么
  • dirnames 表示当前目录下都有哪些目录,是一个列表,可以包含多个目录
  • dirnames 表示当前目录下都有哪些文件名,是一个列表,可以包含多个文件名
  • os.walk 每次调用,都能自动的去针对子目录进行递归的操作,只需要使用上述循环,就可以把所有的路径都获取出来

标签:date2,https,Python,datetime,标准,words,使用,字符串
From: https://blog.csdn.net/Yeeear/article/details/141781872

相关文章

  • Luma AI,让你的视频像电影一样精彩!附带使用教程
    Luma视频生成API对接说明随着AI的应用变广,各类AI程序已逐渐普及。AI已逐渐深入到人们的工作生活方方面面。而AI涉及的行业也越来越多,从最初的写作,到医疗教育,再到现在的视频。Luma是一个专业高质量的视频生成平台,用户只需上传素材,即可根据不同风格和效果自动生......
  • 20240901_113224 python 环境依赖的备份与导入
    20240830_173845python当前环境依赖包导出到文件中_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/1187710920240830_183845python从依赖包记录文件中批量安装包_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/11877185......
  • 在宝塔下使用apidoc
    1.先安装ndoe版本管理器安装node的v14版本如果回到系统命令行下输入node命令无法使用,则需要选择命令行版本 2.在命令行下安装apidoc:npminstallapidoc-g安装完后如果发现apidoc命令无法使用,则需要建立软连接:ln-s/www/server/nodejs/v14.17.6/bin/apidoc/usr/b......
  • 使用 nuxi clean 命令清理 Nuxt 项目
    title:使用nuxiclean命令清理Nuxt项目date:2024/9/1updated:2024/9/1author:cmdragonexcerpt:nuxiclean命令是管理和维护Nuxt项目的重要工具,它帮助你快速清理生成的文件和缓存,确保开发环境的干净。通过定期使用这个命令,你可以避免由于缓存或生成文件导致的构......
  • Python 潮流周刊#67:uv 的重磅更新(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了12篇文章,12个开源项目,全文2000字。以下是本期摘要:......
  • WPF Material Design中资源的查找和使用
    MaterialDesign中,一共分为两大块。一个是颜色资源,一个是控件资源。下面来说下,如何使用控件资源:在VS中,通过Nuget添加完MaterialDesign后,还需要在App.xaml中引用这些资源,引用的方法如下图所示:在1处,引入materialdesign的引用。在2处,可以修改项目的主题色,这个比较重要。以前......
  • 240722 knn 使用皮尔逊找到相似用户
    importjsonimportnumpyasnp#计算皮尔逊系数defpearson_score(dataset,user1,user2):ifuser1notindataset:raiseTypeError('User'+user1+'notpresentinthedataset')ifuser2notindataset:raiseType......
  • 基于python+flask框架的衣洗净管理系统的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代生活节奏的加快,人们对便捷、高效的生活服务需求日益增长。在日常生活中,洗衣作为家庭日常活动之一,占据了人们不少的时间和精力。传......
  • 基于python+flask框架的健康管理系统(在线轻问诊)(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在健康意识日益增强的今天,人们对于便捷、高效的医疗服务需求日益增长。然而,传统医疗体系面临资源分配不均、就医流程繁琐等问题,使得部分患......
  • 基于python+flask框架的小麦服装管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着服装行业的快速发展与市场竞争的日益激烈,传统的小麦服装企业面临着库存管理复杂、销售渠道单一、顾客需求多变等挑战。为了提升企业的......