当前位置: 首页 > news >正文

python基础语法(十二)

目录

  • 标准库
    • 认识标准库
    • 使用 import 导入模块
    • 代码示例: 字符串操作
      • 剑指offer 58, 翻转单词顺序
        • 题目
        • 题目做法
        • 代码
      • leetcode 796, 旋转字符串
        • 题目
        • 题目做法
      • leetcode 2255, 统计是给定字符串前缀的字符串数目
        • 题目
        • 题目做法
    • 代码示例: 文件查找工具

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒个人主页
🥸🥸🥸C语言
🐿️🐿️🐿️C语言例题
🐣🐓🏀python

标准库

认识标准库

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

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

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

使用 import 导入模块

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

import [模块名]

所谓 “模块” , 其实就是一个单独的 .py 文件.

使用 import 语句可以把这个外部的 .py 文件导入到当前 .py 文件中, 并执行其中的代码

代码示例: 日期计算

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

使用 import 语句导入标准库的 datetime 模块

使用 datetime.datetime 构造两个日期. 参数使用 年, 月, 日 这样的格式.

两个日期对象相减, 即可得到日期的差值

import datetime
date1 = datetime.datetime(2012, 2, 14)
date2 = datetime.datetime(2022, 7, 12)
print(date2 - date1)

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

代码示例: 字符串操作

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

剑指offer 58, 翻转单词顺序

字符串中的单词反转

题目

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

leetcode 796, 旋转字符串

旋转字符串

题目

给定两个字符串, 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'))

leetcode 2255, 统计是给定字符串前缀的字符串数目

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

题目

给你一个字符串数组 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 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基础语法(十二)

目录 标准库认识标准库使用 import 导入模块代码示例: 字符串操作剑指offer 58, 翻转单词顺序题目题目做法代码 leetcode 796, 旋转字符串题目题目做法 leetcode 2255, 统计是给定字符串前缀的字符串数目题目题目做法 代码示例: 文件查找工具 感谢各位大佬对我的支持,如果我的文…...

【开源】基于SpringBoot的农村物流配送系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…...

【2024秋招】2023-9-16 贝壳后端开发一面

1 秒杀系统 1.1 如何抗住高并发 1.2 数据一致性你是怎么处理,根据场景来说明你的设计思路 1.3 你们当时系统的架构是怎么样的 秒杀表做节点隔离, 1.4 为了保证数据一致性,引入了redission的锁,你是为了抗住高并发而去为了引入…...

BI是什么?想要了解BI需要从哪些方面入手?

企业为了执行数字化战略,实行数字化转型,实现数据价值,除了需要相关数字化技术及理念、人才等,还需要借助数字化相关应用,例如商业世界中广受企业欢迎的ERP、OA、CRM等业务信息系统,以及上升势头非常迅猛的…...

软件测试---等价类划分(功能测试)

能对穷举场景设计测试点-----等价类划分 等价类划分 说明:在所有测试数据中,具有某种共同特征的数据集合进行划分分类: 1)有效等价类 2)无效等价类步骤:1)明确需求 2)确定有效和无…...

javascript原生态xhr上传多个图片,可预览和修改上传图片为固定尺寸比例,防恶意代码,加后端php处理图片

//前端上传文件 <!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml" lang"UTF-8"></html> <html><head><meta http-equiv"Content-Type" content"text/html;charsetUTF-8;"/><title…...

【Java】Map集合中常用方法

Map集合的常用方法 方法名称作用V put(Key k,V value)添加元素V remove(K key, V value)根据键值删除对应的值void clear()清除所有键值元素boolean containsKey(Object key)判断集合中是否包含指定的键boolean containsValue(Object value)判断集合中是否包含指定的值boolean …...

方太描画未来厨房的模样

作者 | 辰纹 来源 | 洞见新研社 不知不觉中&#xff0c;iPhone已经更新到15代了&#xff0c;家里的电视变成了越来越轻薄的液晶屏&#xff0c;过去被称为“老三样”的富康&#xff0c;捷达、桑塔纳&#xff0c;如今也被以特斯拉为代表的新能源智能汽车们所取代…… 类似以上的…...

ELASTICO-A Secure Sharding Protocol For Open Blockchains

INTRO 在中本聪共识中&#xff0c;通过POW机制来公平的选举leader&#xff0c;不仅非常消耗power&#xff0c;并且拓展性也不好。现在比特币中是7 TPS&#xff0c;和其他的支付系统相比效率相差甚远。 当前的许多拜占庭共识协议&#xff0c;并不支持在一个开放的环境中使用&a…...

【数据结构】Map和Set

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈数据结构 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; Map、Set 1. 搜索树1.1 概念1.2 性能…...

Python Flask

Python Flask是一个轻量级的web开发框架&#xff0c;用于快速地构建web应用程序。以下是Python Flask的基本使用步骤&#xff1a; 安装Flask&#xff1a;使用pip安装Flask包。在命令行中输入以下命令&#xff1a; pip install flask创建Flask对象&#xff1a;在Python文件中&am…...

时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测

时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测 目录 时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Python实现ARIM…...

Redis快速上手篇八(redission完善分布式锁)

Redisson Redisson是一个在Redis的基础上实现的Java驻内存数据网格&#xff08;In-Memory Data Grid&#xff09;。它不仅提供了一系列的分布式的Java常用对象&#xff0c;还提供了许多分布式服务&#xff0c;其中就包含了各种分布式锁的实现。简单说就是redis在分布式系统上工…...

Dataset文件下载以及使用,以nuswide为例

文章目录 文件夹结构如何使用继承torch.utils.data.Dataset构建新的class构建新的Dataloader 数据集要求以文章 multi-label learning from single positive label为例&#xff1b; 文件夹结构 我是这么放置的&#xff0c;其中含有obs的文件是通过运行文件夹preproc下的genera…...

ZYNQ连载02-开发环境

ZYNQ连载02-开发环境 1. 官方文档 ZYNQ开发使用的软件为Vivado/Vitis/PetaLinux,软件体积比较大&#xff0c;硬盘保留100G以上的空间&#xff0c;赛灵思提供详细的文档&#xff0c;链接如下&#xff1a; ZYNQ文档 2. Vivido和Vitis安装 赛灵思统一安装程序 3. PetaLinux安装…...

前端 :用HTML和css制作一个小米官网的静态页面

1.HTML&#xff1a; <body><div id "content"><div id "box"><div id "top"><div id "top-left"><span id "logo">MI</span><span id "text-logo">小米账…...

modelsim仿真报错:vlog-2388 ‘scl‘ already declared in this scope

问题背景&#xff1a; 1、使用vivado直接仿真的时候没有报错。 2、在vivado中调用modelsim的时候报错。 报错的代码&#xff1a; module iic_write(input clk,input rst,output scl,input en,inout sda);reg scl&#xff1b;……报错的意思是scl已经声明过了&#xff0c;mode…...

C#中通过BeginInvoke()和EndInvoke()来实现异步

.NET Framework允许异步调用任何方法。定义与需要调用的方法具有相同签名的委托&#xff1b;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。以下介绍C#中&#xff0c;通过BeginInvoke()和EndInvoke()来实现异步。 1、异步编程 调用BeginInv…...

github中.gitignore不起作用啦

文章目录 前言两种方法解决清除本地缓存设置不需要 额外注意 前言 提示&#xff1a;人不是靠讲话来生活。每个人都应该靠行动。而行动&#xff0c;是需要时间来证明的。 --《自在独行》 两种方法解决 清除本地缓存 (.gitignore中已经表标明忽略的文件目录下的文件了&#xf…...

同步网盘推荐及挑选指南:便捷、安全、适用的选择

同步网盘是最近热门的文件协同工具之一&#xff0c;因其使用的便捷性受到了诸多用户的青睐。如今网盘市场产品众多&#xff0c;有什么好用的同步网盘&#xff1f;如何挑选同步网盘&#xff1f;是许多需求者关心的问题。 如何挑选同步网盘&#xff1f;在同步网盘挑选过程中要从…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...