Python(四)—— 使用库

[复制链接]
发表于 2024-12-17 21:42:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Python 的官方文档传送门:https://docs.python.org/3.10/library/index.html
一,import

import和 C/C++ 的 #include 一样,都是使用库函数的必要步骤,下面给出了几个示例
   示例一:日期计算
  输入任意两个日期,计算两个日期之间格勒多少天


  • 使用 import 语句导入标准库的 datetime 模块
  • 使用 datetime.datetime 构造两个日期. 参数使用 年, 月, 日 如许的格式.
  • 两个日期对象相减, 即可得到日期的差值.
  1. import datetime
  2. date1 = datetime.datetime(2022, 12, 16)
  3. date2 = datetime.datetime(2024, 12, 16)
  4. print(date2 - date1)
复制代码

   示例二,字符串操纵
    ①翻转单词顺序
  输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和 平凡字母一样处置惩罚。比方输入字符串"I am a student. ",则输出"student. a am I"。


  • 使用 str 的 split 方法进行字符串切分, 指定"空格"为分隔符,返回结果是一个列表
  • 使用列表的 reverse 方法进行逆序
  • 再使用 str 的 join 方法进行字符串拼接,把列表中的内容进行合并
  1. def reverseWords(s):
  2.     tokens = s.split()
  3.     tokens.reverse()
  4.     return ' '.join(tokens)
  5. print(reverseWords('I am a student.'))
复制代码
 

   ②旋转字符串
   给定两个字符串, s 和 goal。假如在多少次旋转操纵之后,s 能酿成 goal ,那么返回 true 。 s 的 旋转操纵 就是将 s 最左边的字符移动到最右边。 比方, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。


  • 使用 len 求字符串的长度. 假如长度不相同, 则肯定不能旋转得到
  • 将 s 和 本身 进行拼接, 然后直接使用 in 方法来判断 goal 是否是 s + s 的子串.
  1. def rotateString(s, goal):
  2.     return len(s) == len(goal) and goal in s + s
  3. print(rotateString('abcde', 'cdeab'))
  4. print(rotateString('hello', 'world'))
复制代码
 

   ③统计给定字符串前缀的字符串数量 
  给你一个字符串数组 words 和一个字符串 s ,此中 words 和 s 只包罗 小写英笔墨母 。 请你返回 words 中是字符串 s 前缀 的 字符串数量 。 一个字符串的 前缀 是出如今字符串开头的子字符串。子字符串 是一个字符串中的连续一段字符序列。


  • 依次遍历 words 中的字符串
  • 直接使用字符串的 startswith 方法即可判断当前字符串是否是 s 的前缀.
  1. def countPrefixes(words, s):
  2.     res = 0   # 符合要求字符串个数
  3.     for word in words:
  4.         if s.startswith(word):
  5.             res += 1
  6.     return res
  7. print(countPrefixes(["a","b","c","ab","bc","abc"], "abc"))
复制代码
 

   示例三,文件查找工具 
  指定一个待搜刮路径, 同时指定一个待搜刮的关键字。在待搜刮路径中查找是否文件名中包罗这个关键字


  • 使用 os.walk 即可实现目次的递归遍历
  • os.walk 返回一个三元组, 分别是 当前路径 , 当前路径下包罗的目次名 (多个), 当前路径下包罗的文件 名 (多个)
  1. import os
  2. inputPath = input('请输入待搜索路径: ')
  3. pattern = input('请输入待搜索关键词: ')
  4. for dirpath, dirnames, filenames in os.walk(inputPath):
  5.     for f in filenames:
  6.         if pattern in f:
  7.             print(f'{dirpath}/{f}')
复制代码
二,第三方库

2.1 pip

pip 是 Python 内置的包管理器:


  • 所谓包管理器 就类似于我们平时使用的手机 app 应用市肆一样
  • 第三方库有许多, 是差别的人, 差别的构造实现的;为了方便大家整理, Python 官方提供了一个网站 PyPI https://pypi.org/, 来收集第三方库
  • 其他大佬写好的第三方库也会申请上传到 PyPI 上,这个时候就可以方便的使用 pip 工具来下载 PyPI 上的库了
  • pip 在我们安装 Python 的时候就已经内置了,无需额外安装. pip 是一个可执行步伐, 就在 Python 的安装目次中
打开cmd,直接输入pip,假如显示下面信息,阐明pip已经预备停当

假如提示说pip不是内部或外部下令,那就是还没有把 pip 加入到环境变量PATH中,可以手动添加
使用下面下令,则可以安装第三方库,安装乐成后, 即可使用 import 导入相干模块, 即可进利用用.
  1. pip install [库名]
复制代码
  注意: 假如使用 pip 安装完第三方库之后, 在 PyCharm 中仍旧提示找不到对应的模块, 则检查 Settings -> Project -> Python Interpreter , 看当前 Python 解释器设置的是否正确. (假如一个机器上安装了多个版 本的 Python, 容易出现这种环境).
   2.2 示例

  我们可以使用 qrcode 这个库来天生二维码
 然后就可以直接在控制台里安装了:
安装完成后就可以在代码中之间使用了:
  1. import qrcode
  2. img = qrcode.make("你好呀")
  3. img.save('qrcode.png
复制代码
执行后会在项目目次下天生一个图片文件 ,之后用微信或者别的扫码工具,就可以看到里面的内容了,我们日常扫描的二维码内部一样寻常是一个URL,扫码后会自动跳转到对应的网址,然后打开一个网页
   示例二,操纵 excel
   读取 excel 可以使用 xlrd 模块. 文档地址: https://xlrd.readthedocs.io/en/latest/
修改 excel 可以使用 xlwt 模块. 文档地址: https://xlwt.readthedocs.io/en/latest/
我们如今工作目次新建一个 test.xlsx并预先往里面添加一些数据:

 假设我们要求上面这些同学的均匀分,我们可以先用 pip 安装 xlrd:此处要指定版本号安装,假如不指定版本号就是默认安装的最新版,最新版删除了对 xlsx 格式文件的支持:

然后就是编写代码了,具体步骤为:


  • 使用 open_workbook 方法打开一个 excel 文件
  • 使用 xlsx.sheet_by_index(0) 获取到 0 号标签页
  • 使用 table.nrows 获取到表格的行数
  • 使用 table.cell_value(row, col) 获取到表格中 row, col 位置的元素值.
  1. import xlrd
  2. # 1. 打开 xlsx 文件
  3. xlsx = xlrd.open_workbook('test.xlsx')
  4. # 2. 获取 0 号标签页. (当前只有一个标签页)
  5. table = xlsx.sheet_by_index(0)
  6. # 3. 获取总行数
  7. nrows = table.nrows
  8. # 4. 遍历数据
  9. count = 0
  10. total = 0
  11. for i in range(1, nrows):
  12.     # 使用 cell_value(row, col) 获取到指定坐标单元格的值.
  13.     classId = table.cell_value(i, 1)
  14.     if classId == 100:
  15.         total += table.cell_value(i, 2)
  16.         count += 1
  17. print(f'平均分: {total / count}')
复制代码
 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表