【Python 字符串】
Python 中的字符串(str
)是用于处理文本数据的基础类型,具有不可变性、丰富的内置方法和灵活的操作方式。以下是 Python 字符串的核心知识点:
一、基础特性
-
定义方式:
s1 = '单引号字符串' s2 = "双引号字符串" s3 = '''三引号多行 字符串''' s4 = """三引号多行 字符串"""
-
不可变性:
s = "hello" s[0] = 'H' # 报错:字符串不可修改
-
转义字符:
path = 'C:\\Users\\Name\\Documents' # 反斜杠需转义 text = "他说:\"Python 很有趣!\"" # 双引号需转义
二、常用操作
1. 字符串拼接
name = "Alice"
greeting = "Hello, " + name + "!" # 拼接 → "Hello, Alice!"
2. 字符串重复
"Hi" * 3 # → "HiHiHi"
3. 成员检查
"a" in "apple" # → True
4. 索引与切片
s = "Python"
s[0] # → 'P'(正向索引,从0开始)
s[-1] # → 'n'(反向索引,从-1开始)
s[1:4] # → 'yth'(切片,左闭右开)
s[::-1] # → 'nohtyP'(逆序)
三、常用方法
1. 大小写转换
s = "hello World"
s.upper() # → "HELLO WORLD"
s.lower() # → "hello world"
s.title() # → "Hello World"
2. 搜索与统计
s = "apple banana apple"
s.find("apple") # → 0(首次出现位置)
s.count("apple") # → 2(出现次数)
s.startswith("ap") # → True
3. 替换与分割
s = "a,b,c,d"
s.replace(",", "-") # → "a-b-c-d"
s.split(",") # → ["a", "b", "c", "d"]
"-".join(["a", "b"]) # → "a-b"
4. 去除空白
s = " hello \n"
s.strip() # → "hello"(去除首尾空白)
s.lstrip() # → "hello \n"(仅左侧)
s.rstrip() # → " hello"(仅右侧)
四、字符串格式化
1. f-string(推荐)
name = "Alice"
age = 25
f"姓名:{name},年龄:{age}" # → "姓名:Alice,年龄:25"
2. str.format()
"{} is {} years old".format(name, age) # → "Alice is 25 years old"
3. 百分号格式化
"数值:%.2f" % 3.1415 # → "数值:3.14"
五、编码处理
1. 编码转换
s = "你好"
bytes_data = s.encode("utf-8") # → 字节串 b'\xe4\xbd\xa0\xe5\xa5\xbd'
original = bytes_data.decode("utf-8") # → "你好"
2. 处理常见错误
# 忽略无法解码的字符
s = b'\xe4\xbd\xa0\xff'.decode("utf-8", errors="ignore") # → "你"
六、高级技巧
1. 格式化对齐
s = "42"
s.rjust(5, '0') # → "00042"(右对齐,填充0)
s.center(7, '-') # → "--42---"
2. 模板字符串(安全场景)
from string import Template
tpl = Template("Hello, $name!")
tpl.substitute(name="Bob") # → "Hello, Bob!"
3. 路径操作(pathlib
模块)
from pathlib import Path
path = Path("/user/docs/file.txt")
path.stem # → "file"
path.suffix # → ".txt"
七、性能优化
-
避免频繁拼接:
# 低效方式 res = "" for c in "long string":res += c# 高效方式 parts = [] for c in "long string":parts.append(c) "".join(parts)
-
预编译正则表达式(如需频繁匹配):
import re pattern = re.compile(r"\d+") pattern.findall("a1b22c333") # → ['1', '22', '333']
八、常见陷阱
-
索引越界:
s = "abc" s[3] # 报错:IndexError
-
编码不一致:
# 错误示例:混合编码可能导致乱码 with open("file.txt", "w", encoding="gbk") as f:f.write("你好") # 需确保读写编码一致
通过掌握这些内容,可以高效处理文本数据,从简单的日志解析到复杂的自然语言处理任务。实际应用中需根据场景选择合适的方法,并注意编码和性能问题。
相关文章:
【Python 字符串】
Python 中的字符串(str)是用于处理文本数据的基础类型,具有不可变性、丰富的内置方法和灵活的操作方式。以下是 Python 字符串的核心知识点: 一、基础特性 定义方式: s1 单引号字符串 s2 "双引号字符串" s…...
最新CDGP单选题(第四章)补充
31、 [单选] 企业数据模型主题域的识别准则必须在整个企业模型中保持一致,以下哪项是常用的主题域识别准则: A:使用规范化规则,从系统组合中分离主题域...
Cursor降智找不到文件(Cursor降智)
文章目录 明明提供了上下文,却找不到文件! 明明提供了上下文,却找不到文件! 解决办法,删除codebase index,最好再把那个Index new folders by default给设置为Disabled。 这样设置貌似就不会出现找不到文件…...
Python基于Django和MySQL实现突发公共卫生事件舆情分析系统(有大屏功能)
说明:这是一个系统实战项目(附带代码文档安装讲解),如需代码文档安装讲解可以直接到文章最后关注获取。 系统演示如下: Python基于Django和MySQL实现突发公共卫生事件舆情分析系统(有大屏功能) 项目背景 随着互联网的…...
cat、more和less的区别
在 Linux 系统中,cat、more 和 less 都是用于查看文件内容的命令,但它们在功能和使用场景上有显著区别。以下是它们的详细对比: 1. cat 命令 功能: - 直接输出整个文件:一次性将文件内容全部显示在终端上ÿ…...
Python cv2特征检测与描述:从理论到实战
在计算机视觉领域,特征检测与描述是图像匹配、物体识别、SLAM等任务的核心技术。本文将结合OpenCV的cv2库,系统讲解特征检测与描述的原理,并通过Python代码演示主流算法的实现。 一、为什么需要特征检测与描述? 图像本质是像素矩…...
实践005-Gitlab CICD全项目整合
文章目录 环境准备环境准备集成Kubernetes Gitlab CICD项目整合项目整合整合设计 后端Java项目部署后端Java项目静态检查后端Java项目镜像构建创建Java项目部署文件创建完整流水线 前端webui项目部署前端webui项目镜像构建创建webui项目部署文件创建完整流水线 构建父子类型流水…...
为了摸鱼和吃瓜,我开发了一个网站
平时上班真的比较累,摸鱼和吃瓜还要跳转多个平台的话,就累上加累了。 所以做了一个聚合了全网主流平台热搜的网站。 目前市面上确实有很多这种网站了,所以目前最主要有两点和他们不同: 给热搜列表增加了配图,刷的时候…...
React -> AI组件 -> 调用Ollama模型, qwen3:1.7B非常聪明
使用 React 搭建一个现代化的聊天界面,支持与 Ollama 本地部署的大语言模型进行多轮对话。界面清爽、功能完整,支持 Markdown 渲染、代码高亮、<think> 隐藏思考标签、流式渐进反馈、暗黑模式适配等特性。 🧩 核心功能亮点 ✅ 模型选择…...
算法中的数学:约数
1.求一个整数的所有约数 对于一个整数x,他的其中一个约数若为i,那么x/i也是x的一个约数。而其中一个约数的大小一定小于等于根号x(完全平方数则两个约数都为根号x),所以我们只需要遍历到根号x,然后计算出另…...
性能远超SAM系模型,苏黎世大学等开发通用3D血管分割基础模型
如果把人的身体比作一座庞大的城市,那么血管无疑就是这座城市的「道路」,动脉、静脉以及毛细血管对应着高速公路、城市道路以及乡间小道,它们相互协作,通过血液将营养物质、氧气等输送到身体各处,从而维持着这座「城市…...
对 Kotlin 中的 data 关键字的理解,相比于普通类有哪些特点?
Kotlin 中的 data 关键字用于声明数据类(Data Class),它专门为简化数据模型的实现而设计的。 1 主构造函数必须至少有一个参数,且参数标记为 val 或 var 数据类的主构造函数必须至少有一个参数,并且这些参数必须使用…...
电厂参与全球能源效率排名的方法
在全球积极推动可持续能源发展的大背景下,电厂参与全球能源效率排名,对提升自身竞争力、推动行业进步意义重大。这不仅有助于电厂明确自身在全球能源领域的地位,还能促进其通过能效对标,学习先进经验,实现节能减排与高…...
〖 Linux 〗解决 VS Code 远程连接服务器的常见问题
文章目录 解决 VS Code 远程连接服务器的断开问题VS Code Remote-SSH一直弹出输入密码的问题VsCode C 语法检测失效不标红色波浪线 解决办法卸载扩展方式: 解决vscode C智能提示缓慢 解决 VS Code 远程连接服务器的断开问题 解决 vscode 卡顿,卡死&…...
谷歌 Gemma 大模型安装步骤
1.下载OllamaSetup安装包 下载地址:https://ollama.com/download 这里已Windows系统为例: 2.安装OllamaSetup客户端 3.部署大模型 在系统搜索栏里面,搜索cmd并打开 根据电脑实际配置情况选择对应的模型进行安装 【1】. 普通7B版 安装指…...
【Linux修炼手册】Linux开发工具的使用(一):yum与vim
文章目录 一、Linux 软件包管理器——yum安装与卸载的使用方法查看软件包 二、Linux编辑器——vimvim命名模式常用指令底行模式常用指令 一、Linux 软件包管理器——yum Linux安装软件的方式有3种: 源代码安装——成本极高rmp安装——具有安装依赖、安装源、安装版…...
JAVA房屋租售管理系统房屋出租出售平台房屋销售房屋租赁房屋交易信息管理源码
一、源码描述 这是一套房屋租售管理源码,基于SpringBootVue框架,后端采用JAVA开发,源码功能完善,涵盖了房屋租赁、房屋销售、房屋交易等业务。 二、源码截图...
XL32F001国产低成本单片机,24MHz主频,24KB Flash,3KB SRAM
XL32F001 是一颗基于ARM Cortex-M0内核的32 位微控制器,专为低成本、低功耗、小型化嵌入式系统设计,适合对资源需求中等但强调性价比和能效的场景。主频可达24M,内存方面有24KB Flash和3KB SRAM,适用于资源需求不大的应用场景。1.…...
k8s术语之job
Job类型 Kubernetes支持以下几种Job: 非并行Job:通常创建一个Pod直至其成功结束 固定结束次数的Job:设置.spec.completions,创建多个 Pod,直到 .spec.completions 个 Pod 成功结束 带有工作队列的并行Job:设置.spec.Parallelism 但…...
单片机-STM32部分:8、外部中断
飞书文档https://x509p6c8to.feishu.cn/wiki/ENFswNTSGiblehkIMtfc9dYinqh 创建工程 按工程创建章节步骤,把工程创建好,并配置外部时钟源,SWD调试模式,时钟72MHz。 设置引脚模式 找到需要配置的按键,例如PC2&#…...
电子电器架构 --- 电气/电子架构如何发展以满足其处理和传感器融合需求
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
WordPress插件:WPJAM Basic优化设置
WPJAM Basic 插件的「优化设置」是我爱水煮鱼博客多年使用 WordPress 的经验而整理的各类优化设置。 一、功能屏蔽 功能屏蔽就是屏蔽一些WordPress中用不上、难用的功能,目前的支持屏蔽以下功能: (1)屏蔽文章修订功能 文章修…...
数字电子技术基础(五十六)——JK触发器
目录 1 JK触发器 2 使用Digital软件来绘制JK触发器 1 JK触发器 对于D触发器来说,其功能是过于简单了,D触发器只有置0和置1的操作,而JK触发器相对于D触发器处理原来的保持、置位和复位的操作,还增加了翻转操作。JK触发器通过优化…...
python小说网站管理系统-小说阅读系统
目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核…...
Python程序,输入IP,扫描该IP哪些端口对外是开放的,输出端口列表
#!/usr/bin/env python # -*- coding: utf-8 -*-""" IP端口扫描程序 输入IP地址,扫描该IP哪些端口对外是开放的,输出端口列表 """import socket import sys import concurrent.futures import ipaddress from tabulate im…...
极狐GitLab 容器镜像仓库功能介绍
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 极狐GitLab 容器镜像库 (BASIC ALL) 您可以使用集成的容器镜像库,来存储每个极狐GitLab 项目的容器镜像。 要为您…...
【嵌入式开发-IIC】
嵌入式开发-IIC ■ IIC简介■ IIC ■ IIC简介 ■ IIC...
能见度测量仪:能适应各种恶劣天气状况
云境天合TH-BN10能见度测量仪是一种用于测量大气能见度的专业仪器,在气象观测、交通运输、航空航海等领域发挥着关键作用。 能见度即目标物的能见距离,指观测目标物时,能从背景上分辨出目标物轮廓的最大距离,是重要的气象观测要素…...
运维打铁:服务器分类及PHP入门
文章目录 C/S架构和B/S架构C/S架构B/S架构 服务器分类服务器类型服务器软件 使用 WampServer 搭建 HTTP服务集成环境的分类WampServer 的安装测试访问配置网站根目录 静态网站和动态网站PHP的常见语法第一段 php 代码注释变量数据类型运算符函数的定义类和对象内容输出循环语句…...
SpringBoot应急知识学习系统开发实现
概述 一个基于SpringBoot开发的应急知识学习系统,该系统提供了完整的用户注册、登录、知识学习与测评功能。对于开发者而言,这是一个值得参考的免费Java源码项目,可以帮助您快速构建类似的教育平台。 主要内容 5.2 注册模块的实现 系统采…...
系统思考助力富维东阳
刚刚完成了长春一家汽车零配件公司关于系统思考的项目! 在开班仪式上,公司总经理深刻阐述了项目的背后意义,强调了系统思考与公司战略的紧密联系。这不仅是一次培训,更是一次关于“如何全方位看待问题”的深度对话。 在这个过程中…...
《供应链网络攻击的风险与防范》
中国古语有云:“千里之堤,溃于蚁穴。”供应链攻击正是利用这种系统性弱点发起攻势。近年来,随着国内数字化转型加速,供应链安全问题频发。从某盟删库事件到某头部物流企业数据泄露,从某国产工业软件遭恶意代码植入到某…...
【MySQL】进阶知识详解
目录 引言一、约束:数据完整性的守护者1.1 约束的作用与分类1.2 约束的语法详解非空约束唯一约束主键约束外键约束1.3 约束实战案例二、数据库设计:表关系的艺术2.1 三种核心表关系一对多(部门-员工)多对多(学生-课程)一对一(用户-详情)三、多表查询:数据关联的桥梁3.…...
SpringBoot中使用MCP和通义千问来处理和分析数据-连接本地数据库并生成实体类
文章目录 前言一、正文1.1 项目结构1.2 项目环境1.3 完整代码1.3.1 spring-mcp-demo的pom文件1.3.2 generate-code-server的pom文件1.3.3 ChatClientConfig1.3.4 FileTemplateConfig1.3.5 ServiceProviderConfig1.3.6 GenerateCodeController1.3.7 Columns1.3.8 Tables1.3.9 Fi…...
算法每日一题 | 入门-分支结构-Apples Prologue/苹果和虫子
Apples Prologue/苹果和虫子 题目描述 小 B 喜欢吃苹果。她现在有 m m m(1 ≤ m ≤100)个苹果,吃完一个苹果需要花费 t t t(0 ≤ t≤ 100)分钟,吃完一个后立刻开始吃下一个。 现在时间过去了 s s s&a…...
浙大与哈佛联合开源图像编辑模型IC-Edit,实现高效、精准、快速的指令编辑~
项目背景 研究动机与目标 ICEdit(In-Context Edit)由浙江大学团队开发,旨在通过自然语言指令实现高效、精准的图像编辑,降低对大规模训练数据和计算资源的需求。传统图像编辑方法(如基于微调的扩散模型或无训练技术&…...
查看jdk是否安装并且配置成功?(Android studio安装前的准备)
WinR输入cmd打开命令提示窗口 输入命令 java -version 回车显示如下:...
Off-Policy策略演员评论家算法SAC详解:python从零实现
引言 软演员评论家(SAC)是一种最先进的Off-Policy策略演员评论家算法,专为连续动作空间设计。它在 DDPG、TD3 的基础上进行了显著改进,并引入了最大熵强化学习的原则。其目标是学习一种策略,不仅最大化预期累积奖励&a…...
基于大模型的计划性剖宫产全流程预测与方案优化研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型在计划性剖宫产中的应用原理 2.1 大模型介绍 2.2 数据收集与处理 2.3 模型训练与优化 三、术前预测与准备 3.1 风险因素评估 3.2 大模型术前预测 3.3 术前准备方案 四、术中预测与应对 4.1 术中…...
在Lua中使用轻量级userdata在C/C++之间传递数据和调用函数
在Lua中使用轻量级userdata在C/C之间传递数据和调用函数 轻量级userdata是Lua中一种高效的数据传递机制,它允许你在C/C和Lua之间传递指针而不创建完整的userdata对象。下面是如何使用轻量级userdata的详细说明: 基本概念 轻量级userdata:只…...
总线通信篇:I2C、SPI、CAN 的底层结构与多机通信设计
本文为嵌入式通信协议系列第三章,深入剖析 MCU 世界中的三大总线协议 —— I2C、SPI 和 CAN。 这些总线协议广泛应用于传感器数据采集、Flash 存储、外设扩展、汽车电子、工业设备控制等领域,是嵌入式开发不可或缺的通信骨架。 📜 一、总线通信的基本概念 1.1 什么是总线?…...
心跳策略(Heartbeat) 和 Ping/Echo 策略
一、心跳策略(Heartbeat) 原理:客户端定期向服务端发送心跳包,服务端监控客户端存活状态,超时未收到心跳则判定客户端离线 服务端代码 using System; using System.Net; using System.Net.Sockets; using System.Coll…...
探索网络设备安全:Shodan 的原理与合法应用
在数字化时代,网络摄像头因其便捷性和高效性被广泛应用于家庭、商业和工业领域。然而,这些设备的安全性问题也日益受到关注。Shodan,这个被称为“设备搜索引擎”的工具,能够帮助我们发现和分析网络摄像头的分布和安全性。本文将深…...
Java JWT 配置类 (JwtProperties) 学习笔记
1. 核心作用: 此类 (JwtProperties) 作为一个集中的“配置信息持有者”,专门用来存储项目中与 JWT(JSON Web Token,一种用于身份验证的令牌)相关的配置参数。 2. 关键注解说明: Component: 含义ÿ…...
沃伦森电容器支路阻抗特性监控系统 电容器组智能健康管理专家
行业现状与挑战 在现代电力系统中,电容器组作为无功补偿的核心设备,对保障电网稳定运行和提升电能质量至关重要。然而,长期运行中面临的谐波干扰、过电压/过电流冲击等问题,极易导致电容值衰减、介质老化甚至爆炸等严重故障&#…...
macOS Arduino IDE离线安装ESP8266支持包
其实吧,本来用platformio也是可以的,不过有时候用Arduino IDE可能更快一些,因为以前一直是Arduino.app和Arduino IDE.app共存了一段时间,后来下决心删掉Arduino.app并升级到最新的Arduino IDE.app。删除了旧的支持板级支持包之后就…...
在Fiddler中添加自定义HTTP方法列并高亮显示
在Fiddler中添加自定义HTTP方法列并高亮显示 Fiddler 是一款强大的 Web 调试代理工具,允许开发者检查和操作 HTTP 流量。一个常见需求是自定义 Web Sessions 列表,添加显示 HTTP 方法(GET、POST 等)的列,并通过颜色区…...
HTTP学习
HTTP知识 01. 经典五层模型 应用层 为应用软件提供了很多服务,构建于协议之上。 传输层 数据的传输都是在这层定义的,数据过大分包,分片。 网络层 为数据在节点之间传输创建逻辑链路 数据链路层 通讯实体间建立数据链路连接 物理层 主要作用…...
正态分布和幂律分布
1. 背景与引入 正态分布 历史来源:18世纪由高斯(Gauss)在研究测量误差时提出,后被广泛应用于自然现象和社会科学的数据建模。重要性:被称为“钟形曲线”,是统计学中最核心的分布之一,支撑中心极…...
网络安全赛题解析
扫描之后发现目标靶机 上开启了 ftp ssh http mysql等服务 第一题 第一题需要获取文件 首先尝试 ftp 匿名用户 从这里可以发现 hint.txt 文件的大小为 127b 或 127bytes 提交127b 第二题 通过hint.txt 文件可以发现目标主机 上有用户 Jay 密码为五位字符串 其中三位不知道 利…...