python字符串

在Python中,字符串可以使用单引号(‘ ‘)、双引号(” “)、三引号(“”” “””或者”’ ”’)包围,一般情况下”””或者”’用来进行多行注释,并且可以跨行,因此具体使用单引号还是双引号可根据自己喜好

三引号声明的字符串是可以跨行的,如图:

如果函数调用print()打印的字符串很长,可以在合适的位置换行,但是需要在每行行尾加上引号,同时除了第一行外的其他行的行首也要加上引号(除了最后一行外,其余行尾也可以加上逗号,不加也行),就可以实现换行,如图:

也可以通过续行符“\”来实现换行,如图:

一、拼接字符串

1、使用”+”运算符可以实现对字符串的拼接,将多个字符串拼接为一个字符串对象。

例如:将字符串var与字符串var1进行连接,如图:

字符串不可以与其他类型数据进行连接,只能与字符串类型进行连接,否则将会报错,如图:

打印结果如图所示:

要解决此问题,可以通过将整数转换为字符串进行拼接,如图:

打印结果如图所示:

注:上图演示的是两个变量,如果是一个变量可以直接使用 “+=” 即可

2、使用”f 字符串”来进行拼接(Python3.6版本引入),f 是format的简写,

例如:下面使用 f字符串拼接hello 和world,如图:

注:如果将上述{a}和{b}调换,将打印出world hello,如果是3.5以及以前版本,不能只用f,需要使用format(),如下:

二、计算字符串的长度:

在Python中,数字、英文、小数点、下划线、空格占用一个字节,一个汉字占2-4个字节,具体占用几个字节取决使用的编码,汉字在GBK/GBK2312中占2个字节,在UTF-8/unicode中一般占用3个字节或者4个字节。

在Python中,使用函数len()来计算字符串的长度,如图:

在实际开发中,有的时候需要获取字符串实际所占用的字节,此时可以通过encode()方法,进行编码后再获取。

例如:获取通过utf-8编码的字符串的长度,可以使用如下代码,如图:

获取通过gbk编码的字符串的长度,可以使用如下代码,如图:

三、截取字符串:

字符串属于序列,如果要截取字符串,可以通过切片的形式实现,语法格式如下:

string[start : end : step]

参数说明:

  1. string:表示要被截取的字符串。
  2. start:表示截取的第一个字符索引(包括该字符),不指定默认为0
  3. end:表示截取的最后一个字符索引(不包括该字符),不指定默认为字符串长度
  4. step:表示切片的步长,不指定默认为1,如果省略最后一个冒号也可以省略

例如:定义一个字符串,通过切片获取字符串长度,如图:

在截取字符串的时候,如果指定的索引不存在,将会抛出异常,此时可以通过try…except来捕获异常,如图:

注意:字符串的索引同序列的索引一样,也是从0开始

四、分割合并字符串:

在Python中,分割字符串是将字符串分割为列表,合并字符串是将列表合并为字符串,分割字符串和合并字符串可以看作互逆过程

1、分割字符串:

通过split()方法来实现分割字符串,按照指定的分隔符分割为字符串列表,在该列表的元素中不包括该分隔符,语法格式如下:

str.split(sep,maxsplit)

参数说明:

  1. str:表示要分割的字符串。
  2. sep:指定分隔符,可以包括多个字符,默认为None,即所有空字符(空格、换行\n,制表符\t)
  3. maxsplit:指定分割次数,如果不指定或者指定为-1,表示分割次数不限,否则返回结果列表的元素个数,最大为maxsplit+1
  4. 返回值:分割后的字符串列表。

注意:如果不指定sep,也不可以指定maxsplit

例如:定义字符串var,并通过分隔符进行分割,如图:

上图中最后一行表示分割两次,那么实际列表中的元素个数就是三个

注意:在使用split()时,如果不指定分隔符,默认采用空白符进行分割,那么无论有几个空格,几个空白符,都将作为分隔符进行分割。

2、合并字符串:

合并字符串与拼接字符串不同,合并字符串是将多个字符串采用固定的分隔符连接在一起,合并字符串可以使用字符串对象的join()方法实现,语法格式如下:

strnew = string.join(iterable)

参数说明:

  1. strnew:表示合并后新生成的字符串
  2. string:字符串类型,用于指定合并时的分隔符
  3. iterable:可迭代对象,其中的所有元素将被合并为一个新的字符串

例如:定义一个列表,并将列表中元素合并为字符串,如图:

五、检索字符串:

1、count()方法:

count()方法用于检索指定字符串在另一个字符串中出现的次数,如果检索的字符串不存在,返回0,如果存在返回出现的次数,语法格式如下:

str.count(sub[, start[, end]])

参数说明:

  1. str:表示原字符串
  2. sub:表示要检索的子字符串
  3. start:可选,表示检索的起始位置索引,如果不指定从头开始
  4. end:可选,表示检索位置的结束索引,如果不指定则检索到最后

例如:定义字符串var,并打印字符串中逗号出现的次数,如图:

2、find()方法:

用于检索是否包含指定的字符串,如果检索的字符串不存在返回-1,否则返回首次出现该子字符串时候的索引。语法格式如下:

str.find(sub[, start[, end]]) //参数说明跟count()一样

例如:定义字符串var,查找逗号首次出现的索引,如图:

注意:如果只是判断字符串是否存在,可以使用in关键字实现,例如上图中判断逗号是否在字符串str中,可以使用print(‘,’in str),如果存在返回true,否则返回false,也可以根据find()返回值是否大于-1来判断,python中还提供了rfind()方法,作用与find()方法相同,只是从右侧开始查找。

3、index()方法:

index()方法与find()方法相似,检索指定字符串首次出现的索引,只是通过index()检索字符串的时候,如果不存在将抛出异常,语法格式如下:

str.index(sub[, start[, end]]) //参数说明与上文相同

例如:定义字符串var,通过index()检索逗号首次出现的索引,如图:

Python中还提供了rindex()方法,用于从右侧开始查找

4、startswith()方法:

用于检索字符串是否以指定的子字符串开头,如果是返回True,否则返回false,语法格式如下;

str.startswith(prefix[, start[, end]])

参数说明:prefix表示检索的子字符串,其余参数与上文相同

例如:定义字符串,检索是否以指定字符串开头,如图:

5、endswith()方法:

用于检索字符串是否以指定的子字符串为结尾,如果是返回True,如果不是返回false,语法格式如下:

str.endswith(suffix[,start[,end]])

参数说明:

  1. str:表示原字符串
  2. suffix:表示要检索的字符串
  3. start:可选参数,表示检索范围起始位置的索引,如果不指定则从头开始
  4. end:可选参数,表示检索范围结束位置的索引,如果不指定则检索到结尾

例如:判断字符串str是否以jie结尾,如果是返回true,如图:

返回结果为True,如图:

六、字母大小写转换:

Python中提供了lower()和upper()方法进行字母大小写转换

1、lower()方法:

此方法用于将字符串中的所有大写字母转换为小写字母,字符串长度不变

例如:将字符串str中的大写字母转换为小写,如图:

2、upper()方法:

此方法用于将字符串中的所有小写字母转换为大写字母,如图:

七、去除字符串左右两边空格以及特殊字符:

在Python中通过strip()方法可以去除字符串左右两边空格和特殊字符,也可以通过lstrip()方法去除字符串左侧的空格以及特殊字符,通过rstrip()方法去除字符串右侧的字符串以及特殊字符。

注意:这里的特殊字符是只制表符\t,回车符\r,换行符\n

1、strip()方法:

用于去除字符串左右两侧的空格以及特殊字符,语法格式如下:

str.strip([chars])

说明参数:

  1. str:表示要去除空格以及特殊字符的字符串
  2. chars:可选参数,如果设置为@. ,那么将去除字符串左右两侧的@和. 如果不指定,那么将去除左右两侧的空格、制表符、回车符、换行符等

例如:将str字符串左右的@和. 执行命令如下:

lstrip()和rstip()方法的使用方法和strip()方法使用一样

八、格式化字符串:

格式化字符串是指先制定一个模板,在这个模板中预留几个空位,在根据需要填上相应的内容,这些空位需要通过指定的符号进行标记(也称为占位符),而这些符号不会显示出来,在python中,格式化字符串有以下两种方法:

1、使用”%”操作符(已过时):

语法格式如下:

‘%[-][+][0][m][.n]格式化字符串’%exp

参数说明:

  1. -:可选参数,用于指定左对齐,正数前方无符号,负数前方加负号
  2. +:可选参数,用于指定右对齐,正数前方加正号,负数前方加负号

注意:使用操作符”%”是 较早期的做法,在python2.6之后已经变成format()方式来进行格式化,因此建议学习format()方式

2、使用format()方法(建议使用在python3.5以及以下):

str.format() 是一种非常强大且灵活的字符串格式化方法。它使用 {} 作为占位符,并通过 .format() 方法替换内容。以下是 str.format() 的详细用法和一些高级特性:

简单的占位符替换,如图:

指定数字参数顺序,通过0,1这种数字指定,下面就将arg2放在前面了,如图:

指定字符串关键字参数顺序,如图:

格式化数字,小数点精度,保留2位小数,如图:

注:为什么”.2f”前面要加冒号:,在格式化字符串时,{} 占位符内部的内容可以分为两部分:

  • 字段名(可选):用于指定传递给 .format() 方法的参数的索引或关键字,比如上面的0或者name
  • 格式化选项:用于控制值的显示格式(如小数点精度、宽度、对齐方式等)

因此,冒号 : 的作用是将这两部分分隔开。如果没有冒号,Python 会将后续内容视为字段名的一部分,而不是格式化指令

格式化千位分隔符,如图:

格式化百分比,保留2位,如图:

格式化后左对齐,book占用4个字符,加6个空格一定10个字符,如图:

格式化后右对齐,10个字符,book占用4个,因此左侧是6个空格,如图:

格式化后居中对齐,book前后各有3个空格,一共10个字符,如图:

自定义字符填充,book占用4个字符,其余6个使用*填充,如图:

格式化时间,如图:

格式化字典,如图:

3、使用f-string格式化(python3.6开始引入的)

f-string(格式化字符串字面量)是一种非常强大且简洁的字符串格式化方法。它通过在字符串前加上字母 fF,并在字符串中直接嵌入变量或表达式,从而实现高效的字符串格式化,语法:

f"字符串内容 {变量或表达式}" 或者 F"字符串内容 {变量或表达式}"  #f大小写都行

嵌入变量,如图:

嵌入表达式,如图:

格式化数字,小数点精度为2,如图:

格式化千位分隔符,如图:

格式化百分比,如图:

左对齐,如图:

右对齐,如图:

居中对齐,如图:

自定义填充字符,如图:

格式化日期时间,如图:

多行字符串,如图:

标签