Python字符串常用操作
Python字符串常用操作
一、字符串的切片
1.1、通过下标及下标范围取值
my_str = 'myNameIsTaichi'
value1 = my_str[2] # 正向 N
value2 = my_str[-5] # 反向 从 -1 开始 a
字符串分割,语法:string[end: step]
- start:头下标,以0开始
- end:尾下表,以-1开始
- step 步长
str = "abc-123-如果我是DJ你会爱我吗.mp4"
print(str[0:7]) #默认步长是1,可以不写
# 结果:abc-123print(str[0:-9]) #负数是从右往左截取
# 结果:abc-123-如果我是DJprint(str[8:]) #不写右边就是一直到结尾
# 结果:如果我是DJ你会爱我吗.mp4
1.2、index方法:查找特定字符串的下标索引值
my_str = "%pokes$@163&.com*"
value3 = my_str.index("pokes")
print(value3) #1#运行结果是“1”
注意:1是"pokes"起始下标,即p所在的下标位置
1.3、replace方法:字符串替换
语法:string.replace(“被替换的内容”,“替换后的内容”[,次数])
str2= "ithahahaaa and ithehehehe"
new_str2 = str2.replace("it","pokes") #将it替换成pokes
print(new_str2) #运行结果:pokeshahahaaa and pokeshehehehestr1 = "212、Python用replace()函数删除制定 符号"
str2 = str1.replace('、', '') #可以这样理解,把顿号替换为空
print(str2)
1.4、split方法:分割字符串
语法:string.split(‘分隔符’,次数)
str = "abc-123-如果我是DJ你会爱我吗.mp4"
str = str.split('-') #次数不写,则默认为最大次数
print(str)
结果:['abc', '123', '如果我是DJ你会爱我吗.mp4']
1.5、strip方法:去除字符串两端的空格和回车符
strip
两头 ,lstrip
头(left), rstrip
尾(right)。
去掉两头的空格,注意不包含中间的空格
str5= " heihei hehe haha "
new_str5=str5.strip() #不传参数,默认去除两端的空格和回车符
print(new_str5)# 连续的过滤字符
s = " %pokes$@163&.com* "
# 去除两边空格, 去除左边$ 去除右边 *
ss = s.strip().strip("%").lstrip('$').rstrip().rstrip('*')
print(ss)s = ' <0.01% '
ss = s.strip().lstrip('<').rstrip('%')
print(ss) # 0.01
1.6、count方法,统计字符串中某字符出现的次数
str6= "heihei hehe haha"
cishu = str6.count("he")
print(cishu)#运行结果:4
1.7、len统计字符串的长度
str6= "heihei hehe haha"
num=len(str6)
print(num)
1.8、find字符串查找
语法:string.find('要查找的字', [开始位置, 结束位置])
str = "abc-123-如果我是DJ你会爱我吗.mp4"
str = str.find('DJ')
print(str)
结果:12 #返回的是需要查找的字符串的下标,不包含则返回-1
1.9、join() 列表转字符串
二、字符串判断
2.1、判断字符串是否出现过
查询字母k是否出现,如果出现结果返回索引,没出现则返回-1
print("pokes".find("k")) # 2
print("pooes".find("k")) # -1print("k" in "pooes") # False
print("k" in "pokes") # True
2.2 、判断是否以xxx开头
判断是否以xxx开头,返回布尔值
# 判断是否以k开头,返回布尔值
print("pokes".startswith("k")) # False
print("kpokes".startswith("k")) # True
2.3、判断是否以xxx结尾
# 判断是否以k结尾,返回布尔值
print("pokes".endswith("k")) # False
print("kpokesk".endswith("k")) # True
2.4、判断字符串是否只包含数字
str_1 = "123"
str_2 = "Abc"
str_3 = "123Abc"print(str_1.isdigit()) # True
print(str_2.isdigit()) # False
print(str_3.isdigit()) # False
2.5、判断字符串中包含特殊符号
input_psd = input("请输入字符串")
# 判断是否有特殊字符string = "~!@#$%^&*()_+-*/<>,.[]\/"
for i in string:if i in input_psd:print("您的输入包含特殊字符")
或者导入 python 内置模块 re
import re
input_psd = input("请输入字符串")
test_str = re.search(r"\W",input_psd)
if test_str==None:print("没有没有真没有特殊字符")
else:print("该文本包含特殊字符")
2.6、连续判断过滤字符串
有时候我们需要连续的判断
if "download_zh.png" not in str:if "actjpgs" not in str:pass
他不能写成:
if "download_zh.png" and "actjpgs" not in str:pass
可以写成这样
if "download_zh.png" not in str and "actjpgs" not in str:pass
但是如果过滤的字符串有N多个,这样就很痛苦。那么你可以:
将需要过滤掉的字符串写进一个list
filter_strings = ["download_zh.png", "actjpgs"]if not any(s in item for s in filter_strings):# 如果item不包含列表中的任何一个字符串,则执行这里的代码print("过滤条件满足")
2.7字符串字母大小写转换和判断
- capitalize,将字符串得第一个字符转换成大写
- title,每个单词得首字母大写
- istitle, 判断每个单词得首字母是否大写
- upper 全部转换成大写
- lower 全部转换成小写
message = 'zhaorui is a beautiful girl!'# capitalizemsg = message.capitalize() #将字符串得第一个字符转换成大写
print(msg)# title
msg = message.title() #每个单词得首字母大写
print(msg)# istitle
cmd = msg.istitle() #判断每个单词得首字母是否大写
print(cmd)spokes = message.istitle() #判断每个单词得首字母是否大写
print(spokes)# upper 全部转换成大写msg = message.upper()
print(msg)# lower 全部转换成小写
msg = message.lower()
print(msg)
print(len(msg)) #计算字符串长度
三、字符串比较
s1='abc'
s2="abc"
#
# # 内容比较
print(s1 == s2)
print(s1 is s2)pokes1 = input('请输入:')
pokes2 = input('请输入:')
#
print(pokes1 == pokes2)
四、过滤掉某个字符
过滤掉单个字符
str1 = "212、Python用replace()函数删除制定 符号"
str2 = str1.replace('、','') #过滤掉顿号
print(str2)
过滤掉多个符号
def zifu(str, x, y, z):strin = str.replace(x, '') .replace(y, '').replace(z, '')print(strin)zifu("pokes,@163.com,kkkkk", ",", ",", "163")
```·
# 五、字母大小转换```python
print("POKES".lower()) #pokes,转换成小写
print("pokes".upper()) #POKES,转换成小写
判断字符串
isalpha()
判断是否为 字母str.encode().isalpha()
str.isdigit()
判断是否为数字
str = "runoob"
print(str.isalpha()) # Truestr = "runoob菜鸟教程"
print(str.isalpha()) # Falsestr = "this is string example....wow!!!"
print(str.isalpha()) # Falses = "中国"
print s.encode( 'UTF-8' ).isalpha() # False
# 统计字符串中字母、数字、其他字符的数量
s = '中abCD123$%文'
zm,sz,qt = 0,0,0
for i in s:if 'a' <= i <= 'z' or 'A' <= i <= 'Z':zm += 1elif '0' <= i <= '9':sz += 1else:qt += 1
print('字母:%d,数字:%d,其他:%d' % (zm,sz,qt))
# 统计字符串中字母、数字、其他字符的数量
s = '中abCD123$%文'
zm,sz,qt = 0,0,0
for i in s:if i.encode().isalpha():zm += 1elif i.isdigit():sz += 1else:qt += 1
print(zm,sz,qt)
案例
- 性别:
male => 男
female => 女
- 午餐种类改为大写
#coding=utf-8class Solution:def fn(self, path: str, newpath):with open(path,'r') as f: # r 读取rows = f.read().split('\n')with open(newpath, 'w') as w: # w 覆盖w.write(rows[0])for i in rows[1:]:# 通过, 分解成列表cols = i.split(',')if cols[1] == 'male':cols[1] = '男'else:cols[1] = '女'cols[3] = cols[3].upper()print(cols) # 处理完成with open('newText.txt', 'a') as n: # a 不覆盖n.write('\n')n.write(','.join(cols))solu = Solution()
solu.fn('oldText.txt', 'newText.txt')
- oldText
姓名,性别,年龄,午餐种类
小龙,male,25,c
小虎,male,27,a
阿红,female,25,a
阿岚,female,23,c
阿月,female,25,a
- newText
姓名,性别,年龄,午餐种类
小龙,男,25,C
小虎,男,27,A
阿红,女,25,A
阿岚,女,23,C
阿月,女,25,A
去除前后空格 strip
相关文章:
Python字符串常用操作
Python字符串常用操作 一、字符串的切片 1.1、通过下标及下标范围取值 my_str myNameIsTaichi value1 my_str[2] # 正向 N value2 my_str[-5] # 反向 从 -1 开始 a字符串分割,语法:string[end: step] start:头下标,以0开…...
Redis 生产问题(重要)
缓存穿透 什么是缓存穿透? 缓存穿透说简单点就是大量请求的 key 是不合理的,根本不存在于缓存中,也不存在于数据库中 。这就导致这些请求直接到了数据库上,根本没有经过缓存这一层,对数据库造成了巨大的压力…...
前端 —— Git
Git安装 下载安装包 【免费】前端前置-Git安装包资源-CSDN文库 安装 ‘git‘不是内部或外部命令及Git 的保姆级安装教程(保姆级教程)_git不是内部或外部命令-CSDN博客 vscode添加gitbash终端 setting.json "terminal.integrated.profiles.win…...
【GL006】Linux 之 shell
目录 一、shell 指令 1.1 体验shell指令 1.2 命令格式 1.3 shell中的通配符 1.4 输入输出重定向 1.5 命令置换 1.6 基本系统维护命令 1.7 Linux的进程管理命令 1.8 文件系统相关命令 1.9 Linux网络配置管理 二、shell 编程 2.1 shell 脚本的基础知识 2.2 shell 变…...
JS听到了强运的回响
正则表达式 介绍 正则表达式是用于匹配字符串中字符组合的模式,在JS中,正则表达式也是对象 通常用来查找,替换那些符合正则表达式的文本 就是筛选出符合条件的一类人 比如说 有人喜欢玩艾斯爱慕,那他喜欢的就是这一类人&…...
Linux下MySQL的简单使用
Linux下MySQL的简单使用 导语MySQL安装与配置 MySQL安装密码设置 MySQL管理 命令 myisamchkmysql其他 常见操作 C语言访问MYSQL 连接例程错误处理使用SQL 总结参考文献 导语 这一章是MySQL的使用,一些常用的MySQL语句属于本科阶段内容,然后是C语言和M…...
.net core使用AutoMapper
AutoMapper 是一个用于 .NET 平台的对象映射工具,它简化了不同对象类型之间的转换过程。在软件开发中,尤其是在分层架构的应用程序里,常常需要在不同的对象模型之间进行数据传递,例如从数据库实体到视图模型、DTO(数据…...
nmap详解
Nmap(Network Mapper)是一个开放源代码的网络探测和安全审核的工具。由于它的功能强大,被广泛应用于网络安全领域。以下是Nmap的一些主要功能及其在实战中的应用举例。 Nmap的主要功能: 端口扫描:检测目标主机上开放…...
CentOS7环境安装php
直接安装 yum -y install php CentOS7默认安装是php5,现在php已有8.3版本 先查看php -v 版本 如果是低版本,可以删除 yum remove php yum remove php-fpm yum remove php-common 一、添加REMI存储库 yum install epel-release yum install -y …...
基于深度学习的猫狗识别系统【深度学习课设】
🏆 作者简介:席万里 ⚡ 个人网站:https://dahua.bloggo.chat/ ✍️ 一名后端开发小趴菜,同时略懂Vue与React前端技术,也了解一点微信小程序开发。 🍻 对计算机充满兴趣,愿意并且希望学习更多的技…...
字体子集化实践探索
最近项目rust生成PDF组件printpdf需要内嵌完整字体导致生成的PDF很大,需要做压缩,但是rust的类库allsorts::subset::subset不支持windows,所以做了一些windows下字体子集化的尝试 方案一:node.js做子集化 fontmin 缺点是也需要集…...
A1017 基于Java+JSP+SQL Server+servlet的二手购物平台的设计与实现
二手购物平台 1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取 1.摘要 摘 要 计算机以及网络技术的飞速发展,网络的应用在全国乃至全球日益普及,随着人们的思想水平和生活水平的提高,网络已经是人们必不可少的一部分。人们的…...
Simdroid-EC:液冷仿真新星,助力新能源汽车电机控制器高效散热
近年来,新能源电动车的销量呈现出快速增长的态势。据统计,2024 年1-10月中国新能源汽车销量达728万辆,同比增长37.8%。 电机控制器在新能源汽车中对于保障动力和安全性能扮演着至关重要的角色,其核心部件IGBT(绝缘栅双…...
C语言——实现并求出两个数的最大公约数
问题描述:求出两个数的最大公约数 //求两个数的最大公约数 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include<time.h>int main() {int a,b;printf("请您输入两个数 a 和 b\n");scanf…...
今天你学C++了吗?——C++中的类与对象(日期类的实现)——实践与知识的碰撞❤
♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...
享元模式的理解和实践
在软件开发中,性能优化是一个永恒的话题。在追求高性能的过程中,减少内存的使用是一项重要的任务。享元模式(Flyweight Pattern)就是一种用于减少内存使用量的设计模式,它特别适用于存在大量重复对象的场景。本文将详细…...
Unreal Engine 中的UI界面开发
推荐的使用方式 轻量级 HUD:使用 Canvas 绘制简单的文本、调试信息或基础 UI(如准星、血量条等)。 复杂 UI:使用 UMG(Unreal Motion Graphics)和 Slate 进行布局和交互,避免手动管理 Canvas 绘制。 避免遮挡场景:仅绘制必要的内容,并利用透明度(如 FLinearColor(1, 1…...
Docker在Ubuntu和CentOS系统下的安装
目录 1. 各版本平台支持情况2. 在Ubuntu系统下安装docker3. 常见报错4. Docker的镜像源修改5. Docker目录修改6. 在CentOS系统下安装docker 1. 各版本平台支持情况 (1)平台支持情况如下: Server 版本 桌面版本 2. 在Ubuntu系统下安装docker…...
EXCEL 关于plot 折线图--频度折线图的一些细节
目录 0 折线图有很多 1 频度折线图 1.1 直接用原始数据做的频度折线图 2 将原始数据生成数据透视表 3 这样可以做出了,频度plot 4 做按某字段汇总,成为累计plot分布 5 修改上面显示效果,做成百分比累计plot频度分布 0 折线图有很多 这…...
Hive操作案例
目录 idea/dg远程连接导入数据建表数据导入 idea/dg远程连接 hive的详细安装不多展示,自行搜索即可。 依次启动zookeeper,hadoop 在zookeeper的节点上启动如下指令(我的是1个主节点和2个备用节点) 启动Hive的metastore࿰…...
C++ 内存管理和模板与STL
此篇目是之后各种C库的基础 目录 内存管理 内存分布 内存管理方式 new和delete operator new 与 operator delete函数 实现原理 定位new表达式(placement-new) 模板基础 泛型编程 模板 函数模板 类模板 STL 组成部分 内存管理 内存分布 int globalVar 1; //全局变量 静…...
JDK8新特性:Stream
JDK8最大的改变: 1. lambda表达式 2. Stream 1. Steam流的入门 什么是Stream? 也叫Stream流,是jdk8开始的一套API,用于操作集合或者数组中的数据 优点: Stream流大量结合了Lambda的语法风格来创建,提…...
前端传入Grule,后端保存到 .grl 文件中
前端传入Grule,后端保存到 .grl 文件中 通过简单的输入框,将Grule的部分拆解成 规则名称 规则描述 规则优先级 规则条件 规则逻辑Grule关键字 when Then 模拟了 if 判断的条件和逻辑部分 类似于 shell 和 ruby 之类的脚本语言,有 then 关键字…...
探索《Crypto Rumble》 游戏:经济模型篇
《Crypto Rumble》是一款基于 Zypher Network 游戏引擎打造的卡牌 RPG三消品类的 Web3 游戏,通过引人入胜的游戏设计以及轻量化的游戏玩法,《Crypto Rumble》不仅能够为玩家带来引人入胜的沉浸式游戏体验,同时基于 AI Bot 的游戏编辑器&#…...
【CSS in Depth 2 精译_072】第 12 章 CSS 排版与间距概述 + 12.1 间距设置(上):究竟该用 em 还是 px
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 12 章 CSS 排版与间距】 ✔️ 12.1 间距设置 ✔️ 12.1.1 使用 em 还是 px ✔️12.1.2 对行高的深入思考12.1.3 行内元素的间距设置 文章目录 第 12 章 排版与间距…...
Elasticsearch对象映射
Spring Data Elasticsearch对象映射是将Java对象(域实体)映射到存储在Elasticsearchs中的JSON表示形式并返回的过程。内部用于此映射的类是MappingElasticsearchConverter。 元模型对象映射 基于元模型的方法使用域类型信息对Elasticsearch进行读写操作…...
Oracle 19c rac 补丁升级,从19.7 to19.22-集群
1. 补丁包概述 数据库环境 角色 数据库 IP地址 数据库版本 主机名 数据库名称 源端 RAC 172.30.21.166/167 19.7 hfcwdb66/hfcwdb67 hfdb 将以下补丁包上传到/soft下 上传到两个节点的soft目录下:p6880880_190000_Linux-x86-64.zip (更新o…...
机器学习--Kaggle的使用
机器学习–Kaggle的使用 打开Kaggle: Your Machine Learning and Data Science Community并点击Sign In登录账号 kaggle中自带了很多的数据集 在点击Datasets之后,单点Notebook,如果有适用的数据集可以单击Copy and Edit复制其Notebook,之后…...
客户服务新突破,天润融通助力电动车企业实现数智化转型
近年来,两轮电动车成为年轻人喜爱的出行新方式,借着这种潮流,许多新兴品牌迅速发展,并跻身行业头部。 但问题也随之而来,由于业务快速发展,各类服务问题也开始增多。 比如天润融通服务的一家头部两轮电动…...
力扣题目 - 2931.购买物品的最大开销
题目 还需要你前往力扣官网查看详细的题目要求 地址 思路 这边需要你去力扣官网详细查看题目看了题目提供的示例 已经有了解法, 先把values转成1维数组,排序之后进行累加即可 代码 var maxSpending function (values) {let list values.flat();list.sort((a, b) > a - …...
网页源代码翻译/佛山seo技术
来源:AI早餐汇 授权 产业智能官 转载 Chloe撰文 Linda编辑12月8日,中国知名的大数据分析和可视化领域领导者,海云数据在北京发布图易6和AI能力服务平台新品,介绍了包括公安系统在内的多个行业AI落地实践。(注:海云数据目前有60%的…...
连接国外网站做端口映射/百度的人工客服
Biotin-PEG-NH2 生物素-聚乙二醇-氨基 英文名称:Biotin-PEG-Amine 中文名称:生物素-聚乙二醇-氨基 外观: 白色/灰白色液体、半固体或固体,取决于分子量。 溶剂:水,氯仿,DMSO,二氯甲烷等常规…...
免费做图片的网站有哪些/企业官网定制设计
我同意坏孩子的的提法,不管男或女,除了风度也而要讲气质。风度这东西,就像我咱们国产的名牌西装"风度",只要你有钱,你也可以买一件穿上。可是,你穿上後是否潇洒呢?这就看你有没有气质…...
国家企业信用信息官网/完善的seo网站
导语提起病毒来,很多网友可能都会想到熊猫烧香,木马等等。它们的破坏力惊人,很多人因此也会谈“毒”色变。而程序员作为一群靠电脑吃饭的人,看过的病毒恐怕不比看过的片少,今天小编带大家盘点一下那些令程序员哭笑不得…...
西安网站改版的公司/在线seo工具
left join on 和where条件的放置 对于left join,不管on后面跟什么条件,左表的数据全部查出来,因此要想过滤需把条件放到where后面 123select * from test2 left join test1 on test2.id test1.id where test2.id <>6 and test1.id<…...
博敏 网站开发/常见搜索引擎有哪些
前言 mysql肯定不是只有简简单单的CURD,当然CURD才是数据库的核心功能 但是在基础的功能之上,我们能做的就是如何去优化他,而索引就是优化查询的一个重要知识点 下面这一句索引无关 我觉得下面的图让我很快的理解的jion的使用以及定义 7种j…...