Python:【字符串】 字符串常用基本操作(持续更新...)

字符串常用基本操作

1.去除字符串左右特定字符

① 方法:

str.lstrip(char)、str.rstrip(char)、str.strip(char)【同时删除左右两边指定字符】
删除两端一个至多个连续字符char

② 参数:

char为字符,而不是字符串。默认为空格。

③ 返回值:

返回值为去除掉字符的新字符串,而原来的字符串没有改变

>>>s="--zhangdanshen---"
>>>s1=s.lstrip("-")
>>>s2=s.rstrip("-")
>>>s3=s.strip("-")
>>>print(s)
>>>print(s1)
>>>print(s2)
>>>print(s3)

--zhangdanshen---
zhangdanshen---
--zhangdanshen
zhangdanshen

2.查找字符串

① 方法:

str.index(chars)、str.find(chars)和in/not in

② 区别:

str.index(char)返回值为 chars在str中(首字母)第一次出现的位置,如果没有则程序无法正常运行。
str.find(char)返回值为 chars在str中(首字母)第一次出现的位置,如果没有则返回-1,程序正常运行
因此通常使用find!=-1或者find>-1来作为判断条件。
除函数之外
in 为成员运算符,如果字符串中包含给定的字符返回 True,否则返回 False

>>>s=" zhangdanshen "
>>>print(s.index("a"))
>>>print(s.find("a"))
>>>print(s.find("p"))
>>>print("zhang" in s)

2
2
-1
True

3.字符串连接

① 方法:

"+" 和 str.join()

② "+" :

简单的字符串连接

>>>a='hello '
>>>b='world'
>>>print(a+b)

hello world

③ str.join(seq)

参数:str,分隔符,可以为空。seq,要连接的元素序列、字符串、元组、字典。
【以str作为分隔符,将seq所有的元素合并成一个新的字符串】
返回值:返回一个以分隔符str连接各个元素后生成的字符串

>>>#字符串
>>>str1="-"
>>>str2=""
>>>seq1=["a","b","c"]
>>>seq2="zhang"
>>>print(str1.join(seq1))
>>>print(str2.join(seq1))
>>>print(str1.join(seq2))

a-b-c
abc
z-h-a-n-g

【注意】:str.join(seq)相当于一个迭代的过程,是对seq中的每一个元素(除最后一个)进行与str的连接

4.字符串长度

len(str)

>>>s="zhang"
>>>print(len(s))

5

5.字符串统计

str.count(char)

>>>s="zhangdanshen"
>>>print(s.count("n"))

3

6.字符串替换

将原字符串中的字符全部替换

str.replace(s1,s2)
将字符串str中的s1字符(串)全部替换成s2字符(串)

>>>s="we are family"
>>>print(s.replace(" ","%0%"))

we%0%are%0%family

#若使用默认s1:"",则表示在原字符串str中每个字符左右添加s2
>>>s="we are family"
>>>print(s.replace("","%0%"))

%0%w%0%e%0% %0%a%0%r%0%e%0% %0%f%0%a%0%m%0%i%0%l%0%y%0%

7.字符串获取(切片)

完全遵循python “切片”操作

>>>str = "0123456789"

>>>#截取第一位到【第三位】的字符
>>>print str[0:3] 
012

>>>#截取字符串的全部字符
>>>print str[:] 
0123456789

>>>#截取【第六个】字符到结尾
>>>print str[6:] 

>>>#截取从头开始到倒数第三个字符之前
>>>print str[:-3] 
0123456

>>>#截取第三个字符
>>>print str[2] 
2

>>>#截取倒数第一个字符
>>>print str[-1]
9

>>>#创造一个与原字符串顺序相反的字符串
>>>print str[::-1]
987543210

>>>#截取倒数第三位与倒数第一位【之前】的字符
>>>print str[-3:-1] 
78

>>>#截取倒数第三位到结尾
>>>print str[-3:] 
789

>>>#逆序截取,截取倒数第五位数与倒数第三位数【之前】的字符
>>>print str[-5:-3]
56

8.字符串常用判断函数

>>>s1="123"
>>>s2="ABC"
>>>s3="123ABC"

①判断是否全是字母和数字(混合),并至少有一个字符
str.isalnum()

>>>s1.isalnum()
>>>s2.isalnum()
>>>s3.isalnum()

False
False
True

②判断是否全是字母,并至少有一个字符
str.isalpha()

>>>s1.isalpha()
>>>s2.isalpha()
>>>s3.isalpha()

False
True
False

③判断是否全是数字,并至少有一个字符
str.isdigit()

>>>s1.isdigit()
>>>s2.isdigit()
>>>s3.isdigit()

True
False
False

④判断大小写问题
str.islower() 判断str的字母是否全为小写
str.isupper() 判断str的字母是否全为大写
str.istitle() 判断str的字母是否首字母大写

9.字符转换

int(x [,base ]) :将一个base进制的x转换为十进制整数,base默认为10进制。【x为字符数字,不可为字母】
ord(x ) :将一个字符转换为它的整数值【ASCII码,x为字符不是字符串,即x的长度为1】
str(x ) :将对象 x 转换为字符串【x为数字】
chr(x ) :将一个整数转换为一个字符【x为数字,且是ASCII码之间的转换】

①int()

>>>int("123")
123

>>>int("123",10)
123

>>>int("123",2)
执行错误,123不是2进制数

>>>int("01010101",2)
85

#将01010101看作十进制数,则自动去掉前导零
>>>int("01010101")
1010101

>>>int("box")
执行错误,box不是10进制的数

②ord()

>>>ord("A")
65

>>>ord("a")
97

>>>ord("Aa")
执行错误,参数只可为字符

#字符1的ASCII码
>>>ord("1")
49

>>>ord("11")
执行错误,"11"为字符串

③str()

>>>str(123)
"123"

>>>str("123")
"123"

④chr()

#"{"的ASCII码为123
>>>chr(123)
"{"

>>>chr(65)
A

10.字符串修改

目的:修改字符串中的字符元素

方法1

先将字符串转换为列表,通过列表修改元素,之后再将列表转换为字符串

>>>s="abcdb"
>>>r=list(s)
>>>print(r)
['a','b','c','d','b']

>>>r[-1]='e'
>>>s=''.join(r)
>>>print(s)
"abcde"

方法2

通过字符串序列切片进行修改

>>>s="abcdb"
>>>s=s[:4]+'e'
>>>print(s)
"abcde"

但是不能够通过列表的切片方法直接进行修改: "s[idx]=[c]" 该方式在字符串中无法使用

方法3

通过字符串的replace函数,但该方法没有针对性,是将所有指定的元素都进行修改

>>>s="abcdb"
>>>s=s.replace('b','e')
>>>print(s)
"aecde"

#可通过捆绑修改突出特殊性
>>>s=s.replace('db','de')
>>>print(s)
"abcde"

11.字符串分割

split() : 通过指定分隔符对字符串进行切片

① 语法

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

② 参数

  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。默认为 -1, 即分隔所有。若不为默认值,则将原字符串分割为num+1个子串

③ 返回值

返回分割后的字符串列表。

④ 实例

>>>s="zhang dan shen love cheng nuo!"
>>>l1=s.split()
>>>l2=s.split(' ',1)
>>>l3=s.split("ng ")
>>>l1
>>>l2
>>>l3

['zhang', 'dan', 'shen', 'love', 'cheng', 'nuo!']
['zhang', 'dan shen love cheng nuo!']
['zha', 'dan shen love che', 'nuo!']
posted @ 2021-10-18 16:30  ZghzzZyu  阅读(287)  评论(0)    收藏  举报