库 就是是别人已经写好了的代码, 可以让我们直接拿来用.
荀子曰: “君子性非异也,善假于物也”
一个编程语言能不能流行起来, 一方面取决于语法是否简单方便容易学习, 一方面取决于生态是否完备.
所谓的 “生态” 指的就是语言是否有足够丰富的库, 来应对各种各样的场景.
实际开发中, 也并非所有的代码都自己手写, 而是要充分利用现成的库, 简化开发过程.
按照库的来源, 可以大致分成两大类
标准库: Python 自带的库. 只要安装了 Python 就可以直接使用.
第三方库: 其他人实现的库. 要想使用, 需要额外安装.
咱们自己也可以实现 “第三方库” 发布出去, 交给别人来使用
Python 自身内置了非常丰富的库.
在 Python 官方文档上可以看到这些库的内容。
https://docs.python.org/3.10/library/index.html
简单来说, 主要是这些部分:
我们不需要把这些库的内容都背下来, 只要大概知道里面有啥, 需要用的时候能够找到即可.
使用 import 可以导入标准库的一个 模块
import [模块名]
所谓 “模块” , 其实就是一个单独的 .py 文件.
使用 import 语句可以把这个外部的 .py 文件导入到当前 .py 文件中, 并执行其中的代码
输入任意的两个日期, 计算两个日期之间隔了多少天.
#代码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”。
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’ 。
def rotateSting(s, goal):
if len(s) != len(goal):
return False
return goal in (s + s)
print(rotateSting("abcde", "cdeab"))
print(rotateSting("abcde", "edcba"))
给你一个字符串数组 words 和一个字符串 s ,其中 words[i] 和 s 只包含 小写英文字母 。
请你返回 words 中是字符串 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