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


字符串常用基本操作

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

① 方法:

str.lstrip(char)、str.rstrip(char)、str.strip(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.字符串获取(切片)

完全遵循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

7.字符串常用判断函数

>>>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的字母是否首字母大写

8.字符转换

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