使用库 库 就是是别人已经写好了的代码, 可以让我们直接拿来用. 荀子曰: "君子性非异也,善假于物也" 一个编程语言能不能流行起来, 一方面取决于语法是否简单方便容易学习, 一方面取决于生态是否完备. 所谓的 "生态" 指的就是语言是否有足够丰富的库, 来应对各种各样的场景. 实际开发中, 也并非所有的代码都自己手写, 而是要充分利用现成的库, 简化开发过程. 按照库的来源, 可以大致分成两大类 标准库: 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 文件导入到当前 代码示例: 日期计算 输入任意的两个日期, 计算两个日期之间隔了多少天. 使用 import 语句导入标准库的 datetime 模块 使用 .py 文件中, 并执行其中的代码. datetime.datetime 构造两个日期. 参数使用 年, 月, 日 这样的格式. 两个日期对象相减, 即可得到日期的差值. import datetime date1 = datetime.datetime(2012, 2, 14) date2 = datetime.datetime(2022, 7, 12) print(date2 - date1) 快来看一下你和心爱的人已经认识了多少天了. 关于 datetime 的更多操作, 可以参考官方文档 https://docs.python.org/3/library/datetime.html 代码示例: 字符串操作 字符串是 Python 的内置类型, 字符串的很多方法不需要导入额外的模块, 即可直接使用. 1) 剑指offer 58, 翻转单词顺序 https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和 普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。 使用 str 的 split 方法进行字符串切分, 指定 空格 为分隔符. 返回结果是一个列表. 使用列表的 reverse 方法进行逆序. 使用 str 的 join 方法进行字符串拼接. 把列表中的内容进行合并. 比特就业课 def reverseWords(s): tokens = s.split() tokens.reverse() return ' '.join(tokens) print(reverseWords('I am a student.')) 2) leetcode 796, 旋转字符串 https://leetcode.cn/problems/rotate-string/ 给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。 s 的 旋转操作 就是将 s 最左边的字符移动到最右边。 例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。 使用 len 求字符串的长度. 如果长度不相同, 则一定不能旋转得到. 将 s 和 自己 进行拼接, 然后直接使用 in 方法来判定 goal 是否是 s + s 的子串. def rotateString(s, goal): return len(s) == len(goal) and goal in s + s print(rotateString('abcde', 'cdeab')) 3) leetcode 2255, 统计是给定字符串前缀的字符串数目 https://leetcode.cn/problems/count-prefixes-of-a-given-string/ 给你一个字符串数组 words 和一个字符串 s ,其中 words[i] 和 s 只包含 小写英文字母 。 请你返回 words 中是字符串 s 前缀 的 字符串数目 。 一个字符串的 前缀 是出现在字符串开头的子字符串。子字符串 是一个字符串中的连续一段字符序 列。 依次遍历 words 中的字符串 直接使用字符串的 startswith 方法即可判定当前字符串是否是 s 的前缀. def countPrefixes(words, s): res = 0 # 符合要求字符串个数 for word in words: if s.startswith(word): res += 1 return res print(countPrefixes(["a","b","c","ab","bc","abc"], "abc")) 关于字符串的更多操作, 参考官方文档 https://docs.python.org/3/library/stdtypes.html#str 比特就业课 代码示例: 文件查找工具 指定一个待搜索路径, 同时指定一个待搜索的关键字. 在待搜索路径中查找是否文件名中包含这个关键字. 使用 os.walk 即可实现目录的递归遍历. 名(多个) os.walk 返回一个三元组, 分别是 当前路径, 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 模块的更多操作, 参考官方文档别人已经写好了的代码, 可以让我们直接拿来用. 荀子曰: "君子性非异也,善假于物也" 一个编程语言能不能流行起来, 一方面取决于语法是否简单方便容易学习, 一方面取决于生态是否完备. 所谓的 "生态" 指的就是语言是否有足够丰富的库, 来应对各种各样的场景. 实际开发中, 也并非所有的代码都自己手写, 而是要充分利用现成的库, 简化开发过程. 按照库的来源, 可以大致分成两大类 标准库: 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 文件导入到当前 代码示例: 日期计算 输入任意的两个日期, 计算两个日期之间隔了多少天. 使用 import 语句导入标准库的 datetime 模块 使用 .py 文件中, 并执行其中的代码. datetime.datetime 构造两个日期. 参数使用 年, 月, 日 这样的格式. 两个日期对象相减, 即可得到日期的差值. import datetime date1 = datetime.datetime(2012, 2, 14) date2 = datetime.datetime(2022, 7, 12) print(date2 - date1) 快来看一下你和心爱的人已经认识了多少天了. 关于 datetime 的更多操作, 可以参考官方文档 https://docs.python.org/3/library/datetime.html 代码示例: 字符串操作 字符串是 Python 的内置类型, 字符串的很多方法不需要导入额外的模块, 即可直接使用. 1) 剑指offer 58, 翻转单词顺序 https://leetcode.cn/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和 普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。 使用 str 的 split 方法进行字符串切分, 指定 空格 为分隔符. 返回结果是一个列表. 使用列表的 reverse 方法进行逆序. 使用 str 的 join 方法进行字符串拼接. 把列表中的内容进行合并. 比特就业课 def reverseWords(s): tokens = s.split() tokens.reverse() return ' '.join(tokens) print(reverseWords('I am a student.')) 2) leetcode 796, 旋转字符串 https://leetcode.cn/problems/rotate-string/ 给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。 s 的 旋转操作 就是将 s 最左边的字符移动到最右边。 例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。 使用 len 求字符串的长度. 如果长度不相同, 则一定不能旋转得到. 将 s 和 自己 进行拼接, 然后直接使用 in 方法来判定 goal 是否是 s + s 的子串. def rotateString(s, goal): return len(s) == len(goal) and goal in s + s print(rotateString('abcde', 'cdeab')) 3) leetcode 2255, 统计是给定字符串前缀的字符串数目 https://leetcode.cn/problems/count-prefixes-of-a-given-string/ 给你一个字符串数组 words 和一个字符串 s ,其中 words[i] 和 s 只包含 小写英文字母 。 请你返回 words 中是字符串 s 前缀 的 字符串数目 。 一个字符串的 前缀 是出现在字符串开头的子字符串。子字符串 是一个字符串中的连续一段字符序 列。 依次遍历 words 中的字符串 直接使用字符串的 startswith 方法即可判定当前字符串是否是 s 的前缀. def countPrefixes(words, s): res = 0 # 符合要求字符串个数 for word in words: if s.startswith(word): res += 1 return res print(countPrefixes(["a","b","c","ab","bc","abc"], "abc")) 关于字符串的更多操作, 参考官方文档 https://docs.python.org/3/library/stdtypes.html#str 比特就业课 代码示例: 文件查找工具 指定一个待搜索路径, 同时指定一个待搜索的关键字. 在待搜索路径中查找是否文件名中包含这个关键字. 使用 os.walk 即可实现目录的递归遍历. 名(多个) os.walk 返回一个三元组, 分别是 当前路径, 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 模块的更多操作, 参考官方文档
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现