Python使用库(一)

Python使用库

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

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

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

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

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

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

  • 标准库: Python 自带的库. 只要安装了 Python 就可以直接使用.

  • 第三方库: 其他人实现的库. 要想使用, 需要额外安装.

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

标准库

认识标准库

Python 自身内置了非常丰富的库.
在 Python 官方文档上可以看到这些库的内容。

https://docs.python.org/3.10/library/index.html

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

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

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

使用 import 导入模块

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

import [模块名]

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

日期计算器

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

  • 使用 import 语句导入标准库的 datetime 模块
  • 使用 datetime.datetime 构造两个日期. 参数使用 年, 月, 日 这样的格式.
  • 两个日期对象相减, 即可得到日期的差值.
#代码1
import datetime
#先构造 datetime 变量

date1 = datetime.datetime(year=2021,month=1,day=9)
date2 = datetime.datetime(year=2022,month=10,day=9)
print(date2 - date1)

#代码2
from datetime import datetime
#先构造 datetime 变量

date1 = datetime(year=2021,month=1,day=9)
date2 = datetime(year=2022,month=10,day=9)
print(date2 - date1)

#代码3
import datetime as dt
#先构造 datetime 变量

date1 = dt.datetime(year=2021,month=1,day=9)
date2 = dt.datetime(year=2022,month=10,day=9)
print(date2 - date1)

关于 datetime 的更多操作,可以参考官方文档

https://docs.python.org/3/library/datetime.html

翻转字符串顺序

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

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

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

image-20221230210848050

def reverseWords(s: str):
    tokens = s.split(' ')
    tokens.reverse()
    return ' '.join(tokens)

print(reverseWords("I am a student."))

旋转字符串

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

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


print(rotateSting("abcde", "cdeab"))
print(rotateSting("abcde", "edcba"))

image-20221230212109652

统计字符串前缀的字符串数目

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

  • 依次遍历 words 中的字符串
  • 直接使用字符串的 startswith 方法即可判定当前字符串是否是 s 的前缀
def countPrefixes(words: list, s: str):
    count = 0
    for word in words:
        if s.startswith(word):
            # s 是以 word 开头
            count += 1
    return count


print(countPrefixes(['a', 'b', 'c', 'ab', 'bc', 'abc'], 'abc'))
print(countPrefixes(['a', 'a'], 'aa'))

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

文件查找工具

# 实现文件查找工具
# 输入要查找的路径, 输入要搜索的文件名(一部分)
# 自动的在指定的路径中进行查找~
import os

inputPath = input('请输入要搜索的路径:')
pattern = input('请输入要搜索的关键词:')

for dirpath, _, filenames in os.walk(inputPath):
    for f in filenames:
        if pattern in f:
            print(f'{dirpath}/{f}')

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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值