Python(四)—— 使用库

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

一,import

import和 C/C++ 的 #include 一样,都是使用库函数的必要步骤,下面给出了几个示例

示例一:日期计算

输入任意两个日期,计算两个日期之间格勒多少天

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

示例二,字符串操作

①翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和 普通字母一样处理。例如输入字符串"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.'))

 

②旋转字符串

 给定两个字符串, 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 + sprint(rotateString('abcde', 'cdeab'))
print(rotateString('hello', 'world'))

 

③统计给定字符串前缀的字符串数目 

给你一个字符串数组 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 += 1return res
print(countPrefixes(["a","b","c","ab","bc","abc"], "abc"))

 

示例三,文件查找工具 

指定一个待搜索路径, 同时指定一个待搜索的关键字。在待搜索路径中查找是否文件名中包含这个关键字

  • 使用 os.walk 即可实现目录的递归遍历
  • os.walk 返回一个三元组, 分别是 当前路径 , 当前路径下包含的目录名 (多个), 当前路径下包含的文件 名 (多个)
import osinputPath = input('请输入待搜索路径: ')
pattern = input('请输入待搜索关键词: ')for dirpath, dirnames, filenames in os.walk(inputPath):for f in filenames:if pattern in f: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 导入相关模块, 即可进行使用.

pip install [库名]

注意: 如果使用 pip 安装完第三方库之后, 在 PyCharm 中仍然提示找不到对应的模块, 则检查 Settings -> Project -> Python Interpreter , 看当前 Python 解释器设置的是否正确. (如果一个机器上安装了多个版 本的 Python, 容易出现这种情况).

 2.2 示例

示例一,生成二维码

我们可以使用 qrcode 这个库来生成二维码

 然后就可以直接在控制台里安装了:

安装完成后就可以在代码中之间使用了:

import qrcodeimg = qrcode.make("你好呀")
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 位置的元素值.
import xlrd
# 1. 打开 xlsx 文件
xlsx = xlrd.open_workbook('test.xlsx')# 2. 获取 0 号标签页. (当前只有一个标签页)
table = xlsx.sheet_by_index(0)# 3. 获取总行数
nrows = table.nrows# 4. 遍历数据
count = 0
total = 0
for i in range(1, nrows):# 使用 cell_value(row, col) 获取到指定坐标单元格的值.classId = table.cell_value(i, 1)if classId == 100:total += table.cell_value(i, 2)count += 1
print(f'平均分: {total / count}')

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/490859.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机飞行服务技术详解

无人机飞行服务技术涵盖了多个方面,以下是对其关键技术的详细解析: 一、无人机类型与特点 无人机根据其设计和功能的不同,主要分为以下几种类型: 1. 多旋翼无人机:最常见的无人机类型,通过多个电机和螺旋…

【落羽的落羽 C语言篇】一些常见的字符函数、字符串函数、内存函数

文章目录 一、字符函数1. 字符分类函数2. 字符转换函数 二、字符串函数1. strlen的使用和模拟实现使用模拟实现 2. strcpy的使用和模拟实现使用模拟实现 3. strcat的使用和模拟实现使用模拟实现 4. strcmp的使用和模拟实现使用模拟实现 5. strncpy的使用6. strncat的使用7. str…

小程序-基于java+SSM+Vue的微信阅读小程序设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

Airborne使用教程

1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…

社区生活超市系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

零基础开始学习鸿蒙开发-基础页面的设计

目录 1.样例图 2.逐项分析 2.1 头顶布局分析:首先我们要把第一行的图标绘制出来,一个左一个右,很明显,需要放在一个Row容器中,具体代码如下: 2.2 和头像同一行的布局,需要注意的是&#xff0c…

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡

一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构,可方便地与其他FMC板卡实现高速互联,可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…

HTML综合案例

这是一个HTML CSS的综合练习案例&#xff0c;效果如图所示&#xff1a; HTML代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…

NPU是什么?电脑NPU和CPU、GPU区别介绍

随着人工智能技术的飞速发展&#xff0c;计算机硬件架构也在不断演进以适应日益复杂的AI应用场景。其中&#xff0c;NPU&#xff08;Neural Processing Unit&#xff0c;神经网络处理器&#xff09;作为一种专为深度学习和神经网络运算设计的新型处理器&#xff0c;正逐渐崭露头…

【多线程】synchronized使用以及原理详解

1. synchronized关键字的使用 synchronized关键字是对Java中的对象加锁&#xff0c;主要有3种使用形式 修饰实例&#xff08;普通&#xff09;方法 &#xff0c;锁的是当前的实例对象&#xff1b;修饰静态方法&#xff0c;锁的是当前类的Class对象&#xff0c;即使是不同的示…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(二)

文章目录 一、登录功能实现1、前端实现1.1 创建登录组件1.2 安装和配置Element Plus1.3 安装axios和调用后端接口2、后端实现2.1 创建数据表和准备数据2.2 配置MYSQL配置信息2.3 登录功能实现2.3.1 创建实体类2.3.2 创建登录服务接口及实现2.3.3 创建Mapper2.3.4 实现登录接口A…

ESP32-S3-devKitC-1 点亮板上的WS2812 RGB LED

ESP32-S3-devKitC-1 板上自带了一个RGB LED&#xff0c;型号为 WS2812。 RGB LED 在板上的位置如下图所示。 为了点亮这个WS2812&#xff0c;需要确定这颗RGB LED连接到哪个GPIO上了。 下面是确定GPIO管脚的过程&#xff1a; 1、根据原理图 2、根据PCB布局图&#xff1a; 程…

汽车电子元件的可靠性保障:AEC-Q102认证

AEC-Q102标准的起源与价值 随着汽车电子系统的日益复杂&#xff0c;电子器件必须能够在极端的温度、湿度、振动和电磁干扰等恶劣条件下保持性能。AEC-Q102标准由汽车电子委员会&#xff08;AEC&#xff09;制定&#xff0c;专门针对LED、激光二极管和光电二极管等光电器件&…

SQL中的联结表

本文介绍什么是联结&#xff0c;为什么使用联结&#xff0c;以及如何编写使用联结的SELECT语句。 1. 联结 SQL最强大的功能之一就是能在数据查询的执行中联结&#xff08;join&#xff09;表。联结是SQL的SELECT能执行的最重要的操作&#xff0c;理解联结及其语法是学习SQL的…

每天40分玩转Django:实操 Todo List应用

实操 Todo List应用 一、今日学习内容概述 学习模块重要程度预计学时主要内容项目初始化⭐⭐⭐⭐0.5小时创建项目、配置环境模型设计⭐⭐⭐⭐⭐1小时Todo模型设计与实现CRUD视图⭐⭐⭐⭐⭐2小时实现增删改查功能模板开发⭐⭐⭐⭐1.5小时页面布局与交互设计功能测试⭐⭐⭐1小时…

Freertos任务切换

一、操作系统进行任务切换的时机&#xff1a; 采用信号量实现任务的互斥&#xff1a; 二、FreeRTOS 任务切换场合 PendSV 中断的时候提到了上下文(任务)切换被触发的场合&#xff1a; ● 可以执行一个系统调用 ● 系统滴答定时器(SysTick)中断。 1、执行系统调用 执行系统…

【Linux】自定义项目-进度条

更多精彩内容..... &#x1f389;❤️播主の主页✨&#x1f618; Stark、-CSDN博客 准备工作&#xff1a;"\r"与"\n"字符 ①&#xff1a;基本含义 在C语言和Linux环境中&#xff0c;\r是回车符&#xff0c;\n是换行符&#xff0c;用于控制文本格式和输出…

【ubuntu24.04】PDFMathTranslate 本地PDF翻译GPU部署

https://huggingface.co/spaces/reycn/PDFMathTranslate-Docker排不上号官方都是要安装包,感觉可以本地试着源码部署一下, http://localhost:7860/官方是这个端口,但是我本地启动是:5000IDEA 里本地 backend启动效果 GUI 是监听7860的

基于卷积神经网络的垃圾分类系统实现(GUI应用)

1.摘要 本文主要实现了一个卷积神经网络模型进行垃圾图像分类&#xff0c;为了提高垃圾分类模型的准确率&#xff0c;使用使用Batch Normalization层、使用早期停止策略来防止过拟合等方法来优化模型&#xff0c;实验结果显示最终优化后的模型准确率较高90%左右。最终&#xf…

Vulnstack红日安全内网域渗透靶场2实战攻略

一&#xff1a;环境搭建 新增的网卡VMnet2&#xff0c;ip调成10段。 PC配置如下&#xff1a; DC在该环境中充当是域控。DC配置如下 &#xff1a; WEB配置&#xff1a;需要两块网卡&#xff0c;相当于网关服务器。 作者把外网网段都写成了192.168.111.1/24&#xff0c;我们可以…