python字符串处理基本操作题8(第29讲字符串上)
python字符串处理基本操作题8(第29讲字符串上)字符串是什么?拼接字符串截取字符串分割字符串合并字符串
小朋友们好,大朋友们好!
我们今天学习字符串,内容如下:
拼接字符串
计算字符串的长度
截取字符串
分割字符串
合并字符串
拼接字符串
字符串是什么?
我们之前学过的,一种用括号括起来的数据类型。
拼接字符串是指将两个字符串合并在一起,用符号 实现,需要注意的是两边必须是字符串类型。
如果不是会报错,可以使用str()函数将其他类型转换为字符串类型。
字符串如果和数字相乘,符号*,表示多个字符串。
猫妹的测试代码29.1py:
print('字符串拼接使用符号 ')
str1='欢迎关注公众号:'
str2='和猫妹学Python'
str3=str1 str2
print(str3)
print('\n使用字符串拼接时,两边必须是字符串类型')
str4='和猫妹学Python的粉丝有'
fensi=20
str5='人'
str6=str4 str(fensi) str5
print(str6)
print('\n字符串和数字相乘,表示重复n遍')
str7='我爱学Pyhon'
print(str7*5)
计算字符串的长度
由于不同字符所占字节数不同,所以要计算字符串的长度,需要先了解下字符所在的字节数。
这部分先有个概念,后续学习了编码格式后会理解。
Python中,数字、英文、小数点、下划线、空格等占一个字节,汉字可能占2~4字节(和编码格式有关,GBK/GB2312占2个字节,UTF8/unicode占3或4个字节)。
len()函数可以计算字符的长度,它不关心存储长度,不区分英文汉字等,每个字符都按一个字符长度计算。
实际开发时,有时需要获取字符串实际所占字节数,即使用UTF-8编码,汉字占3个字节,使用GBK或GB2312,汉字占2个字节。
可以使用encode()方法进行编码后再进行获取。
猫妹的测试代码29.2.py:
#4(汉字) 1(逗号) 2(汉字) 5(字母)
str1='人生苦短,我用Python'
print(len(str1))
#(6 1)*3 6=27
str1='人生苦短,我用Python'
print('UTF-8编码:' len(str1.encode()))
#(6 1)*2 6=20
str1='人生苦短,我用Python'
print('GBK编码:' len(str1.encode('gbk')))
截取字符串
字符串也是序列中的一种,所以可以使用切片方式方式进行,格式如下:
stringname[start:end:step]
- string:字符串名称
- start:要截取的第一个字符的索引(包含该字符),默认值0
- end:要截取的最后一个字符的索引(不包含该字符),默认值是字符串的长度
- step:切片步长,默认值是1,步长省略时最后一个冒号可以省略
猫妹的测试代码29.3.py:
goose='''作者:骆宾王
鹅鹅鹅,
曲项向天歌。
白毛浮绿水,
红掌拨清波。'''
print('----str1------')
str1=goose[:]
print(str1)
print('----str2------')
str2=goose[0:len(goose)]
print(str2)
print('----str3------')
str3=goose[0:6]
print(str3)
print('----str4------')
str4=goose[3:6]
print(str4)
print('----str5------')
str5=goose[-6:-1]
print(str5)
print('----str6------')
str6=goose[-6:]
print(str6)
分割字符串
分割字符串是把字符串分割为列表,合并字符串是把列表合并为字符串。
分割字符串和合并字符串是互逆操作。
字符串对象的split()方法可以实现字符串分割,就是把一个字符串按照指定的分隔符切分为字符串列表。
语法如下:
strname.split(sep maxsplit)
- strname:要被分割的字符串
- sep:指定分隔符,可以包含多个字符,默认为None,即所有空字符(空格,换行\n,制表符\t)
- maxsplit:可选参数,分割次数,如不指定或-1表示分割次数没有限制,否则返回结果列表的元素个数,个数最多为maxsplit 1
- 返回值:分割后的字符串列表
猫妹的测试代码29.4.py:
print('分割方法split 默认以空格、换行、制表符来分割 返回值是列表')
print('-----------------1---------------')
print('str1中无空格、无换行、无制表符 故原始形式输出')
str1="和猫妹学Python"
a=str1.split()
print(a)
print('-----------------2---------------')
print('str2中有空格、有换行、有制表符 故被三者分割后输出')
str2='''和 猫妹
学 Python'''
b=str2.split()
print(b)
print('-----------------3---------------')
print('str3中指定了分隔符@ 则只按照@进行分割输出')
str3='''和 猫@妹
学 Python'''
c=str3.split('@')
print(c)
print('-----------------4---------------')
print('str4中指定了分隔符@@ 则只按照@@进行分割输出')
str4="和@@猫妹@学Python"
d=str4.split('@@')
print(d)
print('-----------------5---------------')
print('str5中指定了分隔符空格和分割次数,只取前2个空格来分割')
str5="和 猫妹 学 Python 吧 "
e=str5.split(' ' 2)
print(e)
合并字符串
合并字符串和拼接字符串不同,它将多个字符串采用固定的分隔符连在一起。
格式如下:
strnew=strname.join(interable)
- strnew:合并后的字符串
- strname:指定合并时的分隔符
- interable:可迭代对象,该迭代对象的所有元素(字符串表示)将被合并为一个新的字符串,interable作为边界点分割出来
猫妹的测试代码29.5.py:
monk=['唐僧' '孙悟空' '猪八戒' '沙和尚']
print('-----------------1---------------')
print('使用join方法,将可迭代对象合并:')
monk_new1=' 取经人:'.join(monk)
print(type(monk_new1))
print(monk_new1)
print('-----------------2---------------')
print('由于使用join方法时,第一个元素前不加分割符,所以这里拼接下:')
monk_new2=' 取经人:' monk_new1
print(type(monk_new2))
print(monk_new2)
好了,今天的学习就到这里!
我们下次见!