Python教程(7)——一文弄懂Python字符串操作(上)|字符串查找|字符串分割|字符串拼接|字符串替换
- 字符串简介
- 字符串查找
- 使用 in 关键字
- 使用 find() 方法
- 使用 index() 方法
- 使用正则表达式
- 字符串替换
- 使用 replace() 方法
- 使用正则表达式
- 使用字符串模板
- 字符串分割
- 字符串拼接
- 使用加号 (+) 运算符
- 使用字符串的格式化方法
- 使用 f-string(格式化字符串)
- 使用字符串的 join() 方法
字符串简介
在计算机编程中,字符串是由字符组成的字节序列。在Python中,字符串是表示文本数据的数据类型,由一系列 Unicode 字符组成。字符串可以包含字母、数字、标点符号、空格以及其他特殊字符。实际工作当中,接触最多的可能就是字符串了。
字符串也是Python中最基本的类型,Python中的字符串类型可以使用引号括起来。可以使用单引号、双引号或三引号来定义字符串。
(相关资料图)
str1 = "Hello"str2 = "World"str3 = """Python"""可以使用索引运算符([])来访问字符串中的单个字符。字符串的第一个字符索引为0,最后一个字符索引为-1,可以使用负数进行倒序访问。例如:
str = "Hello, World!"print(str[0]) # 输出 "H"print(str[-1]) # 输出 "!"字符串还可以通过加号(+)进行拼接,例如:
str1 = "Hello"str2 = "World"str3 = str1 + " " + str2print(str3) # 输出 "Hello World"Python提供了丰富的字符串方法,用于处理字符串的操作,例如转换大小写、查找、替换等。还有格式化字符串的方法,用来替换占位符以生成特定格式的字符串。字符串类型说简单很简单,因为就单纯的字符串变化,说复杂也很复杂,结合其他相关类型,真的可以变化莫测。
字符串查找
在 Python 中,字符串查找是非常基础的功能,有几种常用的方法可以用来查找字符串中的子串或特定字符:
使用 in 关键字
使用 in关键字。可以判断一个字符串是否包含另一个子串,这种方式简单方便,在编程当中经常会被用到。
str = "Hello, World!"if "Hello" in str: print("包含 "Hello"")else: print("不包含 "Hello"")使用 find() 方法
使用 find()方法。可以返回子串在字符串中第一次出现的索引值。如果找不到子串,返回 -1。
str = "Hello, World!"index = str.find("World")if index != -1: print("子串 "World" 的索引值为", index)else: print("未找到子串 "World"")使用 index() 方法
index()方法与find()方法类似,但是如果找不到子串,会抛出ValueError异常。
str = "Hello, World!"try: index = str.index("World") print("子串 "World" 的索引值为", index)except ValueError: print("未找到子串 "World"")使用正则表达式
Python 提供了re模块,可以使用正则表达式来进行复杂的字符串匹配与查找操作,需要说明的是正则表达式的用法千变万化,需要根据实际情况来使用。
import restr = "Hello, World!"pattern = r"World"match = re.search(pattern, str)if match: print("找到子串 "World"") start_index = match.start() end_index = match.end() print("子串的起始索引为", start_index) print("子串的结束索引为", end_index)else: print("未找到子串 "World"")上面就是一些常用的字符串查找的方法,可以根据需求选择合适的方法。需要注意的是,这些方法都是区分大小写的。如果想要进行大小写不敏感的查找,可以通过将字符串转换为统一的大小写来实现。
字符串替换
在一些编程当中,字符串替换是非常常见的操作,在Python中,可以使用不同的方法来替换字符串中的特定子串或字符,下面是一些常用的方法。
使用 replace() 方法
replace()方法可以替换字符串中的所有匹配子串为新的子串。
str = "Hello, World!"new_str = str.replace("World", "Python")print(new_str) # 输出 "Hello, Python!"replace()方法还可以指定替换的次数,只替换前几个匹配项。
str = "Hello, World!"new_str = str.replace("l", "L", 2)print(new_str) # 输出 "HeLLo, World!"使用正则表达式
可以利用 re模块的 sub()函数来使用正则表达式替换匹配的子串。使用正则表达式可以更灵活地进行替换操作,例如根据匹配结果动态替换内容。
import restr = "Hello, World!"new_str = re.sub(r"World", "Python", str)print(new_str) # 输出 "Hello, Python!"使用字符串模板
使用字符串模板可以更加直观地进行替换,将需要替换的部分使用占位符表示。可以在字符串模板中定义多个占位符,并通过 format()方法传入对应的值进行替换。
template = "Hello, {name}!"new_str = template.format(name="Python")print(new_str) # 输出 "Hello, Python!"字符串分割
字符串分割是指将一个字符串按照特定标记或规则将其拆分成多个子字符串的过程。将一个字符串分割成多个部分可以方便地处理和操作字符串的不同部分。在字符串分割过程中,需要指定一个分隔符或分割规则来确定拆分的位置。分隔符可以是一个字符,也可以是一个字符串。
假设有一个字符串"Hello,World!",想将其分割为两部分,可以使用逗号作为分隔符,分割"Hello"和"World!"两个子字符串。
在Python中,你可以使用字符串的split()方法来分割字符串。这个方法会根据指定的分隔符将字符串分割成多个子字符串,并返回一个包含这些子字符串的列表。在split()方法中,你可以传入一个分隔符作为参数,如果不指定分隔符,默认以空格作为分隔符。
# 分割以空为分隔符的字符串str1 = "Hello World"split = str1.split()print(split_result) # Output: ["Hello", "World"] 分割以逗号为分隔符的字符串str = "Apple, Banana, Orange"split_result = str2.split(", ")print(split_result) # Output: ["Apple", "Banana", "Orange"]# 分割以换行符为分隔符的字符串str3 = "Line 1\nLine 2\nLine 3"split_result = str3.split("\n")print(split_result) # Output: ["Line 1", "Line 2", "Line 3"]字符串拼接
字符串拼接看起来好像很简单,但是如果需要按照某种规则来拼接的话,可能也是需要一些方法的。在Python中,你可以使用多种方式进行字符串的拼接。
使用加号 (+) 运算符
使用加号 (+) 运算符,这是最简单的字符串拼接方法,直接通过(+)运算符将两个字符串拼接起来。
str1 = "Hello"str2 = "World!"result = str1 + "," + str2print(result) # 输出: Hello,World!使用字符串的格式化方法
字符串的格式化方法通过占位符 {}插入变量或表达式的值,并使用 format()方法传递要换的内容。format()方法可以接受多个参数,按照传入的顺序替换占位符。
str1 = "Hello"str2 = "World!"result = "{},{}".format(str1, str2)print(result) # 输出: Hello,World!使用 f-string(格式化字符串)
f-string 是python新引入的一种字符串格式化的简便方法,它在字符串前加上 f前缀。在 f-string 中,可以直接在花括号 {}中引用变量、表达式或函数调用,并将其值插入到字符串中。
str1 = "Hello"str2 = "World!"result = f"{str1},{str2}"print(result) # 输出: Hello,World!使用字符串的 join() 方法
join() 方法可以将一个可迭代对象中的元素连接成一个新的字符串。它的工作原理是在指定的分隔符上使用调用该方法的字符串作为粘合剂,将可迭代对象中的每个元素连接起来。在示例中," ".join([str1, str2])使用空格作为分隔符将列表 [str1, str2]中的元素连接起来。
str1 = "Hello"str2 = "World!"result = ",".join([str1, str2])print(result) # 输出: Hello,World!需要注意的是,使用加号 (+)和join 进行字符串拼接时,需要保证所有操作数都是字符串类型。如果有其他类型的对象,需要先将其转换为字符串再进行拼接。而使用字符串的格式化方法和 f-string 则可以直接将其他类型的对象插入到字符串中。
更多精彩内容,请关注同名公众:一点sir(alittle-sir)
关键词:
为您推荐
-
3月15日,中来股份发布公告称,公司与太原市人民政府、古交市人民政府签署了《战略合作与投资协议》,公司拟在山西省古交市投资年产20万吨
22-03-18
-
中新网8月28日电 据健康北京微信公众号消息,北京中康时代康复医院、北京四惠中医医院等多家医疗机构,存在工作人员未严格落实定期进
21-08-30
-
中新网兰州8月28日电 (记者 殷春永 冯志军)“刚开始说待三年,但三年之后又三年……”14年前受上级“委派”,在大漠戈壁深处的峡谷
21-08-30
-
中新网上海8月28日电 (张践)阿依古丽来自新疆阿勒泰地区,2009年来到上海创业。十余年来,阿依古丽身边的小伙伴们都亲切地称呼她为“
21-08-30
-
新华社郑州8月28日电(记者翟濯)记者从河南省政府新闻办28日举办的“河南省加快灾后重建”周口专场新闻发布会上获悉,本次洪涝灾害共造
21-08-30
-
中新网防城港8月28日电(陈思华 罗婕 李尚珍)8月28日上午,广西防城港火车站增加4条到发线工程正式开工。该工程系广西“十四五”规划
21-08-30
-
河南第一产粮大市近800万亩未受灾秋粮长势喜人 有望以丰补歉 中新网郑州8月28日电 (记者 李贵刚)记者28日从“河南省加快灾后重建
21-08-30
-
今天(8月28日)下午,河南省郑州市召开疫情防控新闻发布会,介绍疫情防控最新情况。 记者从发布会上获悉,郑州市居民小区继续落实查
21-08-30
-
新华社南京8月28日电(记者杨丁淼)江苏省南通市27日发布《关于进一步减轻义务教育阶段学生作业负担和校外培训负担的实施意见》,作为“
21-08-30
