什么是字符串对象?
答:在python中最常用的就是字符串,字符串的本质就是字符的序列,我认为一切代码总的来说都是字符串。Python 的字符串是不可变的,我们无法对原字符串做任何修改。但可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。
为什么要用字符串对象?
答:字符串对象可以存放各种类型的符号,包括包含字母和数字的元素,使用更加的广泛。
字符串的使用
首先是字符串的创建,字符串的创建很简单,如下:
Python中可以使用一对单引号’'或者双引号""生成字符串。
s = "字符串的使用"
s
‘字符串的使用’
#你也可以用单引号
s = '字符串的使用'
s
‘字符串的使用’
下面介绍一下字符串的简单操,比如加法,乘法,长度:
加法
s = 'hello ' + 'world'
s
'hello world'
乘法
s = 'hello'*3
'hellohellohello'
长度
s = len(s)
6
字符串的方法
Python中的字符串方法有很多,可以通过help(str)查看,
先定义一个字符串:
s = “hello python”
调用 'capitalize’方法可以使字符串的首字母大写
>>> ss = "hello python"
>>> ss.capitalize()
'Hello python'
>>> 这种方法不会改变ss的值
调用center()方法可以让字符串居中,这里面有两个参数,一个是次数,第二个是填充的符号,要注意的是第一个参数必须大于字符串的长度
>>> ss.center(20,"_")
'____hello python____'
下划线的数量 == 20 - 字符数
>>> ss
'hello python' 这种方法不会改变ss的值
>>>
调用count()方法,可以统计字符串中出现的字符或者字符串的数量
>>> ss.count('h')
2 ‘h’字符出现的数量是2
>>> ss
'hello python'
>>>
调用encode()方法可以将字符串转换为字节,就是将计算机不认识的字符转换为计算机能认识的字符,比如要将汉字转换成编码,下面进行演示:
>>> sss.encode("utf-8")
b'\xe8\x8b\xb9\xe6\x9e\x9c apple'
>>> sss
'苹果 apple' ‘苹果’呗转换为了\xe8\x8b\xb9\xe6\x9e\x9c这段代码
>>>
调用endswith()可以判断字符是否以某个字符串结尾:
>>> sss.endswith('apple')
True
>>> sss
'苹果 apple'
>>>
调用startswith()方法可以判断字符串是否以xx开头:
>>> sss
'苹果 apple'
>>> sss.startswith('苹果')
True
>>>
调用find()方法,可以查找字符串中某个字符或者字符串的第一次出现的位置,
>>> ss
'hello python'
>>> ss
'hello python'
>>> ss.find('h') 返回出现的第一个字符的下标值
0
>>> ss.find('a') 如果没有这个字符则返回-1
-1
>>> ss.rfind('h') 使用rfind方法可以找到最后一个字符对应的下标值
9
>>>
调用index()方法,可以查找字符串中某个字符或者字符串的第一次出现的下标值:
>>> ss.index('h')
0 ‘h’字符第一次出现的下标值是0
>>> ss
'hello python'
>>> ss.index('a') 如果字符不存在则会报错
Traceback (most recent call last):
File "<pyshell#43>", line 1, in <module>
ss.index('a')
ValueError: substring not found
>>> ss.rindex('h') 使用rindex方法可以返回最后一个字符的下标值
9
>>>
**
重点format()方法,这是一种可以格式化字符串的方式
**
具体用法如下,字符串中花括号 {} 的部分会被format传入的参数替代,传入的值可以是字符串,也可以是数字或者别的对象。
'{} {} {}'.format('a', 'b', 'c')
'a b c'
可以用数字指定传入参数的相对位置:
'{2} {1} {0}'.format('a', 'b', 'c')
'c b a'
还可以指定传入参数的名称:
'{x} {y} {z}'.format(x=1, y=2, z=‘apple’)
'1 2 apple'
调用join()方法,可以拼接字符串,对象必须是可以迭代的,可以将其转换为字符串:
>>> ss
'hello python'
>>> s1 = "-".join(ss) 将‘-’拼接到字符串中
>>> s1
'h-e-l-l-o- -p-y-t-h-o-n'
>>>
>>> s2 = ''.join(ss) 将‘’拼接到字符串中,相当于不变
>>> s2
'hello python'
>>>
>>> s3 = ' '.join(ss) 将‘ ’拼接到字符串中
>>> s3
'h e l l o p y t h o n'
>>>
下面介绍一种和join方法刚好相反的spilt(分割)方法
>>> ss
'hello python'
>>> ss.split() 分割字符串
['hello', 'python']
>>> ss.split('h') 以‘h’字符分割字符串
['', 'ello pyt', 'on']
>>>
还有各种对字符串做大小写转换和清除,替换的方法:
lower # 转小写
upper # 转大写
title # 转换字符串为一个符合标题的规则
strip # 清除字符串两边的空格
rstrip # 清除右边的空格
lstrip # 清除左边空格
replace # 替换字符串
还有很多的判断方法,如下表
istitle # 判断字符串是不是标题
isspace # 判断是不是空白字符
islower # 判断是不是小写字母
isupper # 判断是不是大字母
isalnum # 判断是不是有字母和数字组成
isalpha # 判断是不是有字母组成
isdigit # 判断是不是数字组成