当前位置: 首页 > 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 模块的更多操作, 参考官方文档

http://www.lryc.cn/news/210734.html

相关文章:

  • 【开源】基于SpringBoot的农村物流配送系统的设计和实现
  • 【2024秋招】2023-9-16 贝壳后端开发一面
  • BI是什么?想要了解BI需要从哪些方面入手?
  • 软件测试---等价类划分(功能测试)
  • javascript原生态xhr上传多个图片,可预览和修改上传图片为固定尺寸比例,防恶意代码,加后端php处理图片
  • 【Java】Map集合中常用方法
  • 方太描画未来厨房的模样
  • ELASTICO-A Secure Sharding Protocol For Open Blockchains
  • 【数据结构】Map和Set
  • Python Flask
  • 时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测
  • Redis快速上手篇八(redission完善分布式锁)
  • Dataset文件下载以及使用,以nuswide为例
  • ZYNQ连载02-开发环境
  • 前端 :用HTML和css制作一个小米官网的静态页面
  • modelsim仿真报错:vlog-2388 ‘scl‘ already declared in this scope
  • C#中通过BeginInvoke()和EndInvoke()来实现异步
  • github中.gitignore不起作用啦
  • 同步网盘推荐及挑选指南:便捷、安全、适用的选择
  • Java中的QName
  • 汇编语言-div指令溢出问题
  • koa搭建服务器(一)
  • qt-C++笔记之在两个标签页中按行读取两个不同的文件并且滚动条自适应滚动范围高度
  • github搜索技巧探索
  • [ACTF2020 新生赛]Include
  • Go 实现插入排序算法及优化
  • LuatOS-SOC接口文档(air780E)--max30102 - 心率模块
  • 设计模式(2)-创建型模式
  • elasticsearch一些重要的配置参数
  • raft和zab算法的区别