第5章 变量类型-5.6 字符串

📅 发布时间:2026/7/17 2:07:05 👁️ 浏览次数:
第5章 变量类型-5.6 字符串
5.6.1 创建字符串在Python中可以通过使用单引号或双引号包裹字符来创建字符串。示例代码如下# 资源包\Code\chapter5\5.6\0508.py str1 hello Python print(str1) str2 你好Python print(str2) # type()函数用于返回数据类型字符串的输出结果为class str print(type(str2))如果想让字符串中的所有字符如反斜线、元字符和换行符等具有特殊含义的字符都直接按照其字面的意思来使用有2种方式一是创建原始字符串即在字符串的第一个引号之前加上字母r二是在具有特殊含义的字符前添加反斜线。建议读者使用第1种方式。示例代码如下# 资源包\Code\chapter5\5.6\0509.py # 原始字符串 str1 rhello \n world # 输出结果为hello \n world print(str1) # 在具有特殊含义的字符之前添加反斜线 str2 hello \\n world # 输出结果为hello \n world print(str2)此外如果书写的字符串非常长即需要跨多行时则需要使用一对三个单引号或双引号但建议读者使用单引号代替一对单引号或双引号来创建字符串。注意此种方式可以在一对三个单引号之间同时使用单引号或双引号而不需要使用反斜线进行转义。示例代码如下# 资源包\Code\chapter5\5.6\0510.py str name-来自远方的老作者 age-35 teach-Ptyhon print(str)5.6.2 访问字符串中的字符1.索引访问字符串是字符的有序集合可以通过其位置来获得具体的字符。在Python中字符串中的字符是通过索引来提取的索引从0开始第1个字符的索引为0第2个字符的索引为1也可以取负值表示从末尾提取最后1个字符的索引为-1倒数第2个字符的索引为-2。索引访问分为指定索引访问和切片索引访问。其中切片索引获取的字符串包括开始索引的字符但不包括结束索引的字符。示例代码如下# 资源包\Code\chapter5\5.6\0511.py str ifree.blog.csdn.net # 通过指定索引访问获取字符串中的第5个字符即e print(str[4]) # 通过指定索引访问获取字符串中的最后1个字符即t print(str[-1]) # 通过切片索引访问获取从索引1开始到索引3的字符即fre print(str[1:4]) # 通过切片索引访问获取从索引5开始一直到最后的字符即e.blog.csdn.net print(str[4:]) # 通过切片索引访问获取从索引0开始索引6的字符即ifree.b print(str[:7]) # 通过切片索引访问获取全部字符串即ifree.blog.csdn.net print(str[:])2.循环遍历可以通过使用for循环获取字符串中的每一个字符。示例代码如下# 资源包\Code\chapter5\5.6\0512.py str ifree.blog.csdn.net for s in str: print(s)3.拆包访问在Python中拆包是指将一个结构中的数据拆分为多个单独的变量之中。拆包的方式有2种一是用单独的变量接收二是用*号接收该种方式返回的是一个列表。示例代码如下# 资源包\Code\chapter5\5.6\0513.py str ifree.blog.csdn.net a, b, c, *s str # 输出的结果为i f r [e, e, ., b, l, o, g, ., c, s, d, n, ., n, e, t] print(a, b, c, s)5.6.3 字符串的相关操作1.连接通过使用号将多个字符串连接。示例代码如下# 资源包\Code\chapter5\5.6\0514.py str1 来自远方的老作者 str2 teach str3 Python print(str1 str2 str3)2.拼接通过使用join()方法可以将字符串中的字符以指定的分隔符拼接成一个新的字符串并返回。注意该方法不修改原字符串。其语法格式如下join(str)其中参数str表示需要拼接的字符串。示例代码如下# 资源包\Code\chapter5\5.6\0515.py str ifree.blog.csdn.net # seq表示分隔符 seq - # 输出结果为i-f-r-e-e-.-b-l-o-g-.-c-s-d-n-.-n-e-t print(seq.join(str)) # 不修改原字符串 print(str)3.计数通过使用count()方法可以统计字符串中指定字符出现的次数并返回。其语法格式如下count(sub[, start, end])其中参数sub表示需要统计的子字符串参数start为可选参数表示搜索的开始索引如果省略该参数则默认值为0参数end 为可选参数表示搜索的结束索引如果省略该参数则默认值为需要统计的子字符串的长度注意统计范围不包括结束索引对应的值。示例代码如下# 资源包\Code\chapter5\5.6\0516.py str1 ifree.blog.csdn.net # 输出结果为3 print(str1.count(e)) str2 ifree.blog.csdn.net # 输出结果为2 print(str2.count(e, 0, 9))4.去除空格通过使用strip()方法可以移除字符串开头和结尾指定的字符并返回且该方法只能删除开头或结尾的指定字符不能删除中间部分的字符。注意该方法不修改原字符串。其语法格式如下strip([chars])其中参数chars为可选参数表示需要移除的字符如果省略该参数则默认值为空格或换行符。示例代码如下# 资源包\Code\chapter5\5.6\0517.py str1 来自远方的老作者 # 移除默认值空格 print(str1.strip()) # 不修改原字符串 print(str1) str2 123Python123 # 移除指定字符123 print(str2.strip(123)) # 不修改原字符串 print(str2)5.替换通过使用replace()方法可以把字符串中的子字符串替换成指定的字符串并返回。注意该方法不修改原字符串。其语法格式如下replace(old, new[, max])其中参数old表示需要被替换的子字符串参数new表示用于替换的子字符串参数max为可选参数表示替换的最多次数如果省略该参数则默认为全部替换。示例代码如下# 资源包\Code\chapter5\5.6\0518.py str 来自远方的老作者 teach Python print(str.replace(Python, Linux)) # 不修改原字符串 print(str) str this is Python this is PHP this is Java # 指定第三个参数替换2次 print(str.replace(this, that, 2))6.查找通过使用find()方法可以查找字符串中是否包含指定的字符或子字符串如果包含则返回该字符对应的索引或该子字符串的开始索引否则返回-1。注意该方法不修改原字符串。其语法格式如下find(str[, start, end])其中参数str表示需要查找的字符或子字符串参数start为可选参数表示开始索引如果省略该参数则默认值为0参数end为可选参数表示结束索引如果省略该参数则默认值为需要查找的字符或子字符串的长度注意查找范围不包括结束索引对应的值。示例代码如下# 资源包\Code\chapter5\5.6\0519.py str this is Python this is PHP this is Java # 查找字符对应的索引为1 print(str.find(h)) # 查找字符串开始的索引为2 print(str.find(is)) # 没有查找到返回-1 print(str.find(Linux)) # 不修改原字符串 print(str) str this is Python this is PHP this is Java # 没有查找到因为查找范围不包括结束索引3对应的值 print(str.find(this, 0, 3)) # 查找字符串开始的索引为0 print(str.find(this, 0, 4))7.分割通过使用split()方法可以将字符串按照指定分隔符进行分割并返回分割后的子字符串列表。注意该方法不修改原字符串。其语法格式如下split(str[, num])其中参数str表示分隔符参数num为可选参数表示分割的次数如果省略该参数则默认为全部分割。示例代码如下# 资源包\Code\chapter5\5.6\0520.py str ifree.blog.csdn.net print(str.split(.)) # 分割1次 print(str.split(., 1))5.6.4 字符串格式化在Python中有3种方式可以对字符串中的全部或部分字符串进行格式化分别是%格式符、format()函数和f-string。此外在进行格式化时字符串中的待格式化字符串需要使用占位符进行代替并且需要在占位符中使用字符串格式化符号如表5-1所示用于以指定格式输出。表5-1 字符串格式化符号格式化符号描述c以字符格式输出。s以字符串格式输出。d以整数格式输出。u以无符号整数格式输出。o以无符号八进制数格式输出。x以无符号十六进制数格式输出。f以浮点数格式输出且可指定小数点后的精度。e以科学计数法格式输出。gf和e的简写。%输出%。1.%格式符使用%格式符进行格式化输出时其占位符为%其字符串格式化符号需放在占位符之后且%格式符右侧的待格式化字符串必须与占位符一一对应。示例代码如下# 资源包\Code\chapter5\5.6\0521.py name 来自远方的老作者 age 35 # %s表示格式化字符串%o表示格式化无符号八进制数 print(name:%s age:%o % (name, age)) salary 12366.7893 # 指定小数精度保留小数点后两位 print(月薪为:%.2f % (salary))2.format()函数使用format()函数进行格式化输出时其占位符为{}且有2种方式表示待格式化字符串即位置映射和关键字映射。此外占位符中的字符串格式化符号需要在位置映射和关键字映射之后且两者之间需要使用冒号进行分隔。示例代码如下# 资源包\Code\chapter5\5.6\0522.py name 来自远方的老作者 age 35 # 位置映射 print(name:{1} age:{0}.format(age, name)) # 关键字映射 print(name:{name} age:{age}.format(name来自远方的老作者, age35)) salary 12366.7893 # 指定小数精度保留小数点后两位 print(月薪为:{0:.2f}.format(salary))3.f-stringf-string是Python 3.6版本新引入的一种字符串格式化方式主要目的是使格式化字符串的操作更加简便。f-string在形式上是以f或F修饰符开头的字符串其占位符同样为{}。需要注意的是f-string的占位符表示待格式化字符串的方式不同于format()函数后者使用映射的方式表示待格式化字符串而f-string的占位符可以直接为整数、浮点数、字符串或函数甚至可以是对象中的属性或方法。此外f-string占位符中的字符串格式化符号同样需要在待格式化的字符串之后且其中间需要使用冒号进行分隔。综上所述f-string在功能方面不逊于传统的%格式符和format()函数同时性能又优于二者且使用起来也更加简洁明了因此对于Python 3.6及以后的版本推荐读者使用f-string进行字符串格式化。示例代码如下# 资源包\Code\chapter5\5.6\0523.py name 来自远方的老作者 age 35 salary 10329.788 str f名字{name}年龄{age}岁薪水{salary:.2f}元 print(str)