python从0到1--5.字符串
1.字符串到拼接
前面已经说过了,这也是python中一大特色就是可以直接“+”进行。
例如
a = 'I am chinese'
b = '我是中国人'
print(a+b)
只需注意拼接只能是字符串拼接,如果有其他类型的数据,要用到强制转换成字符串就可以了。
2.计算字符串长度
通过len()函数实现。例如:
str = "人生苦短,我用python!"
length = len(str)
print(length)
思考:输出结果是多少?
在python中,数字,英文,小数点,下划线和空格占一个字节;汉字可能会占到2-4个字节。占几个字节取决采用的编码。汉字在GBK/GB2312编码中占2个字符,在UTF-8/Unicode中占3个字节(或者4个字节)。python默认的UTF-8,即一个汉字是3个字节。
但是为什么上面输出结果是“14”呢?这是因为在默认情况下len函数计算字符串长度是,不区分英文,数字,和汉字,所有字符都是一个字节。
str = "人生苦短,我用python!"
length = len(str.encode()) #计算UTF-8编码的字符串长度
print(length)
如果是GBK编码
str = "人生苦短,我用python!"
length = len(str.encode('GBK')) #计算GBK编码的字符串长度
print(length)
3截取字符串
其实字符串也属于序列,所以也可用切片的方式实现;语法格式如下:
string[start:end:step]
参数说明如下:
start:表示要截取的第一个字符的索引,如不指定默认0
end:表示要截取的最后一个字符的索引,如不指定默认字符串的长度
step:表示步长,如果省略,默认为1
例如:
str = "人生苦短,我用python!"
sua = str[1]
sub = str[5:]
suc = str[:5]
sud = str[2:5]
sue = str[1:10:2]
sua---sue输出结果应该是?
4. 分割字符串
在python中,字符串对象提供了分割字符串的方法,分割字符串是吧字符串分割为列表;
通过split()方法可以实现字符串分割,语法如下:
str.split(sep,maxsplit)
参数说明:
str:表示要进行分割的字符串
sep:用于指定分割符,可以包涵多个字段,默认None,即所有空字符(包括空格/换行/制表符等)
maxsplit:可选参数,用于指定分割的次数,如果不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数最多为maxsplit+1.
说明:split方法中,如果不指定sep参数,那么也不能指定maxsplit参数。
下面开始说人话,上菜
1 str = "我 要 学 习 语 言 >>> www.woyaoxuexi.com"
2 print("原字符串:",str)
3 list1 = str.split() #采用默认分割符进行分割
4 print("用默认分割符进行分割",list1)
5 list2 = str.split(">>>") #采用多个字符串(>>>)进行分割
6 print("采用多个字符串'>>>'进行分割",list2)
7 list3 = str.split(".") #采用"."进行分割
8 print("采用'.'进行分割",list3)
9 list4 = str.split(" ",4) #采用空格进行分割,并且只分割前4个
10 print("采用空格进行分割,并且只分割前4个",list4)
11 list5 = str.split(">") #采用">"进行分割
12 print("采用'>'进行分割",list5)
运行结果:
原字符串: 我 要 学 习 语 言 >>> www.woyaoxuexi.com
用默认分割符进行分割 ['我', '要', '学', '习', '语', '言', '>>>', 'www.woyaoxuexi.com']
采用多个字符串'>>>'进行分割 ['我 要 学 习 语 言 ', ' www.woyaoxuexi.com']
采用'.'进行分割 ['我 要 学 习 语 言 >>> www', 'woyaoxuexi', 'com']
采用空格进行分割,并且只分割前4个 ['我', '要', '学', '习', '语 言 >>> www.woyaoxuexi.com']
采用'>'进行分割 ['我 要 学 习 语 言 ', '', '', ' www.woyaoxuexi.com']
说明:split方式,不指定参数,默认采用空白符进行分割,无论有几个空格都作为一个。如上第3行;如果指定了空格进行分割,每个空格分割一次。如上11行。
5.检索字符串
在python中,字符串对象提供了很多应用于字符串查找的方法:
5.1 count()方法
通俗来说,就是计数,计算出现字符出现的次数。语法如下:
str.count(sub,start[,end])
参数说明:
str:表示原字符串
sub:要检索的子字符串
start:可选参数,表示检索范围,起始索引。如果不指定,从头开始
end:可选参数,表示检索范围,结束位置的索引。如果不指定,一直检索到结尾。
例如:
str1 = "@扎克伯格@罗永浩@雷军" print(str1.count("@"))
5.2find()方法
查找目标字符是否存在,存在返回首次出现的索引,不存在返回-1。语法如下:
str.find(sub,start[,end])
参数说明:
str:表示原字符串
sub:要检索的子字符串
start:可选参数,表示检索范围,起始索引。如果不指定,从头开始
end:可选参数,表示检索范围,结束位置的索引。如果不指定,一直检索到结尾。
例如:
str1 = "@扎克伯格@罗永浩@雷军" print(str1.find("@"))
如果只是想判断指定字符串是否存在,可以使用in关键字实现。存在返回ture,不存在返回false。例如:
str1 = "@扎克伯格@罗永浩@雷军" print('@'in str1)
5.3index()方法
用法跟find方法类似。只是如果使用index(),当指定当字符串不存在是会抛出异常。
例如:
str1 = "@扎克伯格@罗永浩@雷军" print(str1.index('#'))
运行结果:

5.4startswith()方法
该方法用于检索字符串是否以指定字符串开头。如果是则返回ture,否则返回false。语法如下:
str.staratswith(prefix[,start[,end]])
参数说明:
str:表示原字符串
prefix:要检索的子字符串
start:可选参数,表示检索范围,起始索引。如果不指定,从头开始
end:可选参数,表示检索范围,结束位置的索引。如果不指定,一直检索到结尾。
str1 = "@扎克伯格@罗永浩@雷军" print(str1.startswith("@",0,5))
5.5endswith()方法
该方法用于检索字符串是否以指定字符串结尾。用法同stratswith方法。
6.字母大小写转换
6.1lower()方法
用于将字符串中大写字母转换为小写字母。语法格式:
str.lower()
例如:
str1 = "WWW.WOYAOXUEXI.COM" print(str1.lower())
运行结果:
www.woyaoxuexi.com
6.2upper()方法
用于将字符串小写字母转换为大写字母。语法格式:
str.upper()
例如:
str1 = "www.woyaoxuexi.com" print(str1.upper())
运行结果:
WWW.WOYAOXUEXI.COM

浙公网安备 33010602011771号