字符串需要掌握的操作

一、定义:在单引号、双引号、三引号内包含一串字符
'''
name = '姓名'
name = "姓名"
name = """姓名"""
'''
二、类型转换
    # 列表转换为str类型
name = [1,2,3]
print(type(str(name)))  # 把列表转换为str类型,并打印出类型
   
  # 字典转换为str类型
name = {'姓名':'张三','性别':'男'}
print(type(str(name)))  # dict转换为str类型

    # 元组转换为str类型
res = (1,2,3)
print(type(str(res)))   # tuple转换为str

    # 集合转换为str类型
res = {1,2,3,4}
print(type(str(res)))   # set转换为str

三、内置方法
    # 按索引取值
str1 = "hello python"
print(str1[6])  # 正向取值,按照下标为6的索引取值(第一个为0,依次向后数)
print(str1[-2]) # 反向取值,按照下标为-2的索引取值(最后一个为-1,依次向前数)
# 注意:str只能按照索引取值,但是不能按照索引修改值

    # 切片(顾头不顾尾),[:]不写下标表示从头到尾全部取
str1 = "hello python"
print(str1[1:8])    # 取出下标为1到8的值
print(str1[0:8:2])  # 取出下标为0到8的值,按照步长为2取值
print(str1[-8:-1])  # 取出下标为-8到-1的值(最后一个值的小标为-1)
print(str1[::-1])   # 倒着取值,从右到左取值,按照步长为1取值

    # len():获取字符串的长度
str1 = "hello python"
print(len(str1))

    # 成员运算:in 和 not in
str1 = "hello python"
print('hello' in str1)  # 'hello' 是在str1中
print('hello' not in str1)  # 'hello' 不在str1中

    # split:切分,切分后以列表形式存
str1 = "hello python"
res = str1.split()  # 默认以空格为切分
print(res)  # 切分后是存为list类型
print(type(res))
str2 = "hello,python"
res2 = str2.split(',')  # 括号内指定分隔字符,则按照括号内指定的分隔字符为切分
print(res2)
str3 = 'a,b,c,d,e'
res3 = str3.split(',',1)    # 从左到右以逗号为分隔符,分隔1次
print(res3)
str4 = 'a,b,c,d,e'
res4 = str3.rsplit(',',1)   # 从右到左以逗号为分隔符,分隔1次
print(res4)

    # for循环str
str1 = "你好吗"
for i in str1:  # 循环字符串:for循环字符串是循环字符串中的每个值
    print(i)

    # 移除指定字符
str1 = "     name    "
print(str1.strip())     # 默认移除字符串左右两边空格
str2 = "***name****"
print(str2.strip("*"))  # 移除字符串左右两边指定字符
print(str2.lstrip('*')) # 移除字符串左边指定字符
print(str2.rstrip("*")) # 移除字符串右边指定字符

    # 修改英文字符串中的大小写
str1 = 'My nAme is tonY!'
print(str1.lower())  # 全部修改为小写
print(str1.upper())  # 全部修改为大写
print(str1.capitalize()) # 首字母大写
print(str1.title())  # 每个英文单词的首字母大写

    # 判断字符串中以什么开头和以什么结尾
str1 = 'my name is tony!'
res = str1.startswith('my')     # 判断字符串中的内容是否以my为开头
print(res)
res1 = str1.endswith('y!')      # 判断字符串中的内容是否以y!为结尾
print(res1)

    # format():传值方式
str = "my name is {name},my age is {age}".format(name = '张三',age = '18')    # 指定参数名传值
print(str)
str1 = "my name is {},my age is {},my ad is {}".format('张三','19','sdfff')     # 传值按照{}对应传值
print(str1)
str2 = "my name is {1},my age is {0}".format('张三','19')    #把format传入的多个值当作一个列表,然后用{索引}取值
print(str2)

    # join:从可迭代对象中取出字符串,然后按照指定分隔符进行拼接,拼接的结果也为字符串
str1 = "hello"
print('%'.join(str1))   # 从字符串中取出‘hello’,然后以%号进行分隔符进行拼接
str2 = ['姓名','性别','年龄']
print('|'.join(str2))   # 从列表中取出字符串,然后以|号作为分隔符进行拼接

    # replace:修改字符串中的值
str1 = "my name is 张三,my age is 18"
res = str1.replace('张三','李四')   # 用新的字符替换字符串中旧的字符,replace('旧值','新值')
print(res)
res1 = str1.replace('my','王五',1)    # 替换字符串中的值,可以指定修改个数(从第一个开始算)
print(res1)

    # isdigit:判断字符串是否是纯数字组成
str1 = '1230'
res = str1.isdigit()
print(res)

    # find 和 index :查找字符串中值的索引
str1 = ['姓名','性别','年龄','身高']
print(str1.index('年龄'))     # 获取列表中某个值的索引,index()可针对字符串、列表、元组
str2 = "你现在过的好吗"
print(str2.find('过'))   # 获取字符串中某个值的索引,find()只能针对字符串

    # center:字符串居中显示,center(宽度,'指定字符串左右两边符号')
str1 = 'name'
print(str1.center(20,'*'))  # 显示宽度为20个字符,字符串居中显示,左右两边以*号显示
print(str1.ljust(20,'*'))   # 显示宽度为20个字符,字符串居左显示,字符串右边以*号显示
print(str1.rjust(20,'*'))   # 显示宽度为20个字符,字符串居右显示,字符串左边以*号显示

 

python的字符串内建函数

方法 描述

string.capitalize()

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

string.center(width)

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

string.count(str, beg=0, end=len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

string.decode(encoding='UTF-8', errors='strict')

以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 'ignore' 或 者'replace'

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

以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

string.endswith(obj, beg=0, end=len(string))

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

string.expandtabs(tabsize=8)

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。

string.find(str, beg=0, end=len(string))

检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

string.format()

格式化字符串

string.index(str, beg=0, end=len(string))

跟find()方法一样,只不过如果str不在 string中会报一个异常.

string.isalnum()

如果 string 至少有一个字符并且所有字符都是字母或数字则返

回 True,否则返回 False

string.isalpha()

如果 string 至少有一个字符并且所有字符都是字母则返回 True,

否则返回 False

string.isdecimal()

如果 string 只包含十进制数字则返回 True 否则返回 False.

string.isdigit()

如果 string 只包含数字则返回 True 否则返回 False.

string.islower()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

string.isnumeric()

如果 string 中只包含数字字符,则返回 True,否则返回 False

string.isspace()

如果 string 中只包含空格,则返回 True,否则返回 False.

string.istitle()

如果 string 是标题化的(见 title())则返回 True,否则返回 False

string.isupper()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

string.join(seq)

以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

string.ljust(width)

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

string.lower()

转换 string 中所有大写字符为小写.

string.lstrip()

截掉 string 左边的空格

string.maketrans(intab, outtab])

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

max(str)

返回字符串 str 中最大的字母。

min(str)

返回字符串 str 中最小的字母。

string.partition(str)

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.

string.replace(str1, str2,  num=string.count(str1))

把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.

string.rfind(str, beg=0,end=len(string) )

类似于 find() 函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。

string.rindex( str, beg=0,end=len(string))

类似于 index(),不过是返回最后一个匹配到的子字符串的索引号。

string.rjust(width)

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

string.rpartition(str)

类似于 partition()函数,不过是从右边开始查找

string.rstrip()

删除 string 字符串末尾的空格.

string.split(str="", num=string.count(str))

以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+1 个子字符串

string.splitlines([keepends])

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

string.startswith(obj, beg=0,end=len(string))

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.

string.strip([obj])

在 string 上执行 lstrip()和 rstrip()

string.swapcase()

翻转 string 中的大小写

string.title()

返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

string.translate(str, del="")

根据 str 给出的表(包含 256 个字符)转换 string 的字符,

要过滤掉的字符放到 del 参数中

string.upper()

转换 string 中的小写字母为大写

string.zfill(width)

返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0

posted @ 2020-11-27 00:17  A熙  阅读(174)  评论(0)    收藏  举报