Python对字符串提供的方法很多,我们并不需要刻意记忆,在需要用到时知道有这个功能就可以,同时我们也不必要害怕,因为Python对字符串提供的方法越多,我们在开发时才会使用的越为灵活。

1、示例变量定义

test_string = "hello,world!"

2、对字符串类型的判断方法

  • test_string.isspace()

如果字符串只包含空格,则返回True,否则返回False.

  • test_string.isalnum()

如果字符串是纯字符串或纯字母,则返回True,否则返回False.

  • test_string.isalpha()

如果字符串是纯字母,则返沪True,否则返回False.

  • test_string.isdecimal()

如果字符串是纯数字,则返回True,否则返回False.

  • test_string.isdigit()

如果字符串是纯数字,或者unicode数字(比如(1),或者平方符号(\u00b2)),则返回True,否则返回False.

  • test_string.isnumeric()

如果字符串是纯数字,或者unicode数字(比如(1),或者平方符号(\u00b2)),或者汉字数字(比如一二三四等),则返回True,否则返回False.

  • test_string.istitle()

如果字符串首个字母大写,则返回True,否则返回False.

  • test_string.islower()

如果字符串全部是小写,则返回True,否则返回False.

  • test_string.isupper()

如果字符串全部是大写,则返回True,否则返回False.

3、对字符串的查找和替换

  • test_string.startswith(str)

检查字符串是否以 str 开头,如果是则返回True,否则返回False.

  • test_string.endswith(str)

检查字符串是否以 str 结尾,如果是则返回True,否则返回False.

  • test_string.find(str, start=0, end=len(test_string))

在test_string中start 到end 包含的范围内,检查是否包含str,如果是则返回索引值,如果没有,则返回-1.

  • test_string.rfind(str, start=0, end=len(test_string))

类似于上述find函数,区别在于从右侧开始查询.

  • test_string.index(str,start=0,end=len(test_string))

类似于上述find函数,区别在于如果不包含str,则会报错.

  • test_string.rindex(str,start=0,end=len(test_string))

类似于上述index(),却别在于从右侧开始查找.

  • test_string.count("str", 0, len(test))

在test_string中查找str出现的次数.起点是0,终点是len(test),起点,终点可以不设置,默认为整个字符串.

4、字符串的大小写转换

  • test_string.capitalize()

把字符串的第一个字母大写.

  • test_string.title()

把字符串中的每个单词第一个字母大写.

  • test_string.lower()

把字符串全部转换为小写字母.

  • test_string.upper()

把字符串全部转化为大写字母.

  • test_string.swapcase()

将字符串中的字母大小写反转.

5、去除字符串中的空白字符

  • test_string.strip()

去除字符串左右两侧的空白字符.

  • test_string.lstrip()

去除字符串左两侧的空白字符.

  • test_string.rstrip()

去除字符串右两侧的空白字符.

6、字符串的拆分和连接

  • test_string.partition(str)

把test_string字符串分为三个部分,出现第一个str的前面部分,str部分,以及出现第一个str的后面部分.如果不包含str则,则返回完整字符串以及两个空字符串.返回的内容为包含3个元素的元组.

  • test_string.rpartition(str)

类似于partition函数,区别在于str从右侧开始查找执行. 返回的内容为包含3个元素的元组.

  • test_string.split(str,num)

以str 为切割符将字符串test_string进行分割,如果num有指定,则最多切割成num个子字符串,从左侧向右逐个切割.返回的值为列表.

  • test_string.splitlines()

将test_string按照行号进行分割,返回的为包含各行元素的列表.

  • test_string.join(seq)

以test_string为分隔符,将seq中的每个字母间都插入一个test_string,返回值为一个新的字符串.

7、字符串的对齐

  • test_string.encode(encoding='UTF-8',errors='strict')

Encoding为要使用的编码,errors可设置不同错误的处理方案. 默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。返回值为编码后的字符串.

  • test_string.center(num,"str")

如果test_string的元素个数大于num,则直接返回原字符串,如果小于num,则返回的字符串字符个数为num,将原test_string居中,其余位置使用str补充.默认为采用空格补充.

8、其他方法

test_string[0]

获取字符串中的第一个元素.返回t.

  • test_string[-2]

获取字符串中的倒数第二个元素.返回n.

  • test_string[-2:]

获取字符串中的倒数第二个至最后的元素.返回ng.

  • test_string[::3]

获取字符串中每隔步长为3的元素,返回tttn.

  • test_string.format(*args, **kwargs)

将字符串进行格式化.

print("{}.{}".format("hello", "world"))

输出:helloworld

print("{1}.{0}".format("hello", "world"))

输出:worldhello

print("收件人为{name},电话为{phone}".format(name= "张三", phone= "10086"))

输出为: 收件人为张三,电话为10086

info_dic= {"name": "张三", "phone": "10086"}
print("收件人为{name},电话为{phone}".format(**info))

输出为: 收件人为张三,电话为10086

info_list= ["张三", "10086"]
print("收件人为{0[0]},电话为{0[1]}".format(info_list))

输出为: 收件人为张三,电话为10086

test= 3.1415
print("num{:0.2f}".format(test))

输出为:3.14

test= 3.1415
print("num{:+0.2f}".format(test))

输出为:+3.14

test= 3.1415
print("{:>10}".format(test))

输出为:____3.1415;数字右对齐

test= 3.1415
print("{:<10}".format(test))

输出为:3.1415 ____;数字左对齐

test= 3.1415
print("{:^10}".format(test))

输出为:__3.1415 __;数字中间对齐

test= 3.1415
print("{:x^10}".format(test))

输出为:xx3.1415xx;可以将x用其他任意字符代替,

test= 3.1415
print("{:.1%}".format(test))

输出为:314.1%

print("{:#x}".format(11))

输出为:oxb

总结:格式化输出其实就是一个占位符。{:b}可以直接将后面的数值转化为二进制,{:o}可以直接将后面的数值转化为八进制, {:d}可以直接将后面的数值转化为十进制, {:x}可以直接将后面的数值转化为十六进制,{:#x}是带0x标记的数值,{:#X}是带0X标记的数值