Python中字符串的基本操作

news/2024/10/7 15:25:07/

文章目录

字符串python 中常用的数据类型,python中可以使用单引号或双引号来创建字符串python 中没有字符类型,字符在 python 中也是作为字符串使用。

1、字符串序号

字符串序号默认从0开始,python字符串包括两种序号体系:正向递增序号和反向递减序号。

python">s = "UserName=Jim&PassWord=123"
# 正向递增序号从0开始
print(s[0])
print(s[1])
# 反向递减序号从负1开始
print(s[-1])
print(s[-2])

数据结果为:
在这里插入图片描述
查找字符串序号的一些常用方法如下:
find:查找一个字符串在另一个字符串指定范围内(默认是整个字符串)中首次出现的位置,若不存在则返回-1。
rfind:查找一个字符串在另一个字符串指定范围内(默认是整个字符串)中最后一次出现的位置,若不存在则返回-1。
index:查找一个字符串在另一个字符串指定范围内(默认是整个字符串)中首次出现的位置,若不存在则抛出异常。
rindex:查找一个字符串在另一个字符串指定范围内(默认是整个字符串)中最后一次出现的位置,若不存在则抛出异常。
count:用来返回一个字符串在另一个字符串中出现的次数,若不存在则返回0。

python">s = "UserName=Jim&PassWord=123"
print(s.find("&"))
print(s.rfind("3"))
print(s.index('m'))
print(s.rindex("m"))
print(s.count("m"))

输出结果为:
在这里插入图片描述

2、字符串切片

字符串有序号,可以看作是一个特殊的list,可以进行切片操作。需要注意的是切片操作默认步长为1,且切片区间为左闭右开。

python">s = "UserName=Jim&PassWord=123"
print(s[0:4])
print(s[-3:-1])
print(s[13:])
# 反转字符串
print(s[::-1])

输出结果为:
在这里插入图片描述

3、字符串切割

字符串截取主要用到split函数,使用字符串中的某个字符串分割字符串

python">s = "a,b,e,123,hello"
s = s.split(",")  # 使用","分割字符串
print(s)  # 输出结果是['a', 'b', 'e', '123', 'hello']

运用字符串分割,可以将某些特殊的字符串转为字典。

python">params = 'a=1&b=3&e=78&123=a&hello=h'
s = params.split('&')
print(s)  # 得到链表['a=1', 'b=3', 'e=78', '123=a', 'hello=h']
dict_p = {}  # 定义一个空字典
for key_value in s:  # 通过键值对遍历key = key_value[0:key_value.find('=')]  # 截取等号以前的值作为键value = key_value[key_value.find('=') + 1:]  # 截取等号后面的值作为值dict_p[key] = value  # 把键值对添加到空字典
print(dict_p)  # 输出结果是{'a': '1', 'b': '3', 'e': '78', '123': 'a', 'hello': 'h'}

4、字符串替换

字符串替换主要用到replace函数,replace函数有3个参数,参数1为被替换字符串,参数2为替换字符串,参数3为被替换字符串的个数,默认为-1,表示替换全部。

python">s = 'Jim is a boy,Jim is 8'
s = s.replace('Jim', 'Tom')
print(s)  # 输出结果是Tom is a boy,Tom is 8
s = s.replace('Tom', 'Jim', 1)
print(s)  # 输出结果是Jim is a boy,Tom is 8

输出结果为:
在这里插入图片描述

5、字符串删除

字符串删除操作,主要用到strip函数,但strip函数只能对字符串两端进行删除操作。
strip:删除字符串两端空白字符或指定字符
lstrip:删除字符串左端空白字符或指定字符。
rstrip:删除字符串右端空白字符或指定字符。

python">s = "---UserName---PassWord---"
print(s.strip("-"))
print(s.lstrip("-"))
print(s.rstrip("-"))

输出结果为:
在这里插入图片描述

6、字符串判断

字符串判断操作常用的函数如下:
contains:判断是否包含某个字符串
startswith:判断是否以指定字符开始。
endswith:判断是否以指定字符结束。
isupper:判断是否全为大写。
islower:判断是否全为小写。
isdigit:判断是否全为数字。
isalnum:判断是否全为字母或汉字或数字。

python">s = "---UserName---PassWord---"
print(s.__contains__("U"))
print(s.startswith('-'))
print(s.endswith('-'))
print(s.isupper())
print(s.isalnum())
print(s.isalpha())

输出结果为:
在这里插入图片描述

7、字符串拼接

常用的拼接方法主要使用逗号、加号拼接,也可以使用join方法拼接。

python">s1 = "UserName&PassWord"
s2 = '--'
# 使用逗号拼接,中间会有空格
print("UserName&PassWord", '--')
# 使用空格拼接
s3 = "UserName&PassWord" "--"
print(s3)
# 使用加号拼接
s4 = "UserName&PassWord" + "--"
print(s4)
# 使用join方法拼接
print(s2.join(s1))
# 在字符串中插入新的元素形成新的字符串,引号内为插入的新元素。
print("-".join(s1))

运行结果为:
在这里插入图片描述

8、其他操作

常见的其他操作方法:
len:返回字符串长度。
lower:将字符串转换为小写字符串
uppper:将字符串转换为大写字符串
capitalize:将字符串首字母变为大写。
title:将字符串中每个单词的首字母都变为大写。
swapcase:将字符串中的字符大小写互换。

python">s1 = "UserName&PassWord"
s2 = '--'
print(len(s1))
print(s1.lower())
print(s1.upper())
print(s1.swapcase())

输出结果为:
在这里插入图片描述


http://www.ppmy.cn/news/1535754.html

相关文章

复现文章:R语言复现文章画图

文章目录 介绍数据和代码图1图2图6附图2附图3附图4附图5附图6 介绍 文章提供画图代码和数据,本文记录 数据和代码 数据可从以下链接下载(画图所需要的所有数据): 百度云盘链接: https://pan.baidu.com/s/1peU1f8_TG2kUKXftkpYq…

C for Graphic:DNF手游残影效果

dnf手游在作死的道路上越行越远,困难罗特斯完全打不动,提前在抖音上细看攻略,基本能躲过机制不死,但是伤害不够,全时打满也还剩3000管血,组团半天炸团半天完全浪费一天。 个人觉得策划完全没必要这么逼…

qsort函数及其使用的方法分解讲解

qsort函数 默认排序升序 void qsort(void* base,//指向待排序数组的第一个元素的地址 size_t num,//base指向数组中元素的个数 size_t size,//base指向的数组中一个元素的大小,单位是字节 int (*compar)(const void*,const void*…

vue3打包疯狂报错

打包的时候报错很多Cannot find name ‘xxx‘ 。 但是npm run dev 是运行正常的。 解决方法:package.json中的vue-tsc --noEmit 删掉就可以了。 例如: 这是原来的 {"scripts": {"dev": "vite","build": &quo…

Allen Institute for Artificial Intelligence (Ai2) 发布开源多模态语言模型 Molmo

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

C++常用数据结构

1: vector使用示例 #include <iostream> #include <vector> #include <algorithm> using namespace std;int main() {// 初始化vector<int> a;vector<int> b(5); // 会初始化每个元素的值为0vector<int> c(6, 2);vector<int> d {1…

yolov11 部署瑞芯微rk3588、RKNN部署工程难度小、模型推理速度快

yolov8还没玩溜&#xff0c;yolov11又来了&#xff0c;那么部署也又来了。 特别说明&#xff1a;如有侵权告知删除&#xff0c;谢谢。 完整代码&#xff1a;包括onnx转rknn和测试代码、rknn板端部署C代码 【onnx转rknn和测试代码】 【rknn板端部署C代码】 1 模型训练 yolov1…

Acwing 数位统计DP

Acwing 338.计数问题 输入样例&#xff1a; 1 10 44 497 346 542 1199 1748 1496 1403 1004 503 1714 190 1317 854 1976 494 1001 1960 0 0 输出样例&#xff1a; 1 2 1 1 1 1 1 1 1 1 85 185 185 185 190 96 96 96 95 93 40 40 40 93 136 82 40 40 40 40 115 666 215 215 214…