6 字符串、元组和字典
一、字符串
字符串就是由若干个不同的unicode字符组成的不可变序列
1 .字符串创建
#单引号字符串
str1 = '天要下雨,娘要嫁人,由他去吧'
str2 = str() #空串
str3 = str([10,20,30])
#双引号字符串
str2 = "天要下雨,娘要嫁人,由他去吧"
#三引号字符串 多行字符串
str3 = '''
好雨知时节
当春乃发生
'''
str4 = """
随风潜入夜
润物细无声
""
2.获取字符
因为是不可变序列,所以不能修改单个字符;凡是修改字符串的操作都产生新串
str1 = '天要下雨,娘要嫁人,由他去吧'
print(str1[0],str1[-1]) #天 吧
3.字符串转义
-
常见转义字符
转移字符 说明 转移字符 说明 \'
单引号 \"
双引号 \n 换行 \r 回车 \t tab \\ \ -
原生字符
如果在字符串中不把\当做转移字符,可以使用
str1 = r'c:\wh1803\course\1' print(str1) #c:\wh1803\course\1
4.序列通用操作
#1 字符串拼接
#对于字符串字面值,只要相邻两个字符串中间没有其他字符就会自动拼接为一个字符串
str1 = '中美达成共识'
'不打贸易战'
print(str1) #中美达成共识不打贸易战
#其他情况使用+运算符拼接字符串
str1 = '你好'
str2 = ' 树先生'
print(str1 + '世界')
print(str1 + str2)
#2.字符串重复
str1 = '汪' * 3
print(str1) #汪汪汪
#3.成员操作
str1 = '天要下雨,娘要嫁人,由他去吧'
if '天' in str1:
print('是成员')
else:
print('不是成员')
#4.字符串截取(切片)
str1 = '123456'
print(str1[0:2]) #'12'
print(str1[1:]) #'23456'
print(str1[::2]) #'135'
print(str1[:]) #'123456'
print(str1[::-1]) #'654321'
#5.字符串长度
print(len(str1))
4 字符串常用函数
4.1 字符串查找和替换
str1 = ‘a fox jumped over the fence’
方法名 | 说明 | 示例 |
---|---|---|
str.count(sub,start=0,end=len(string)) | 查找子串sub出现的次数;start从指定下标开始查,end结束下标 | str1.count(‘f’) |
str.find(str, beg=0, end=len(string)) | 从左向右检测字符串中是否包含子字符串 str,如果包含返回下标,否则返回-1。beg和end是可选参数,指定查找范围 | str1.find(‘fox’) |
str.rfind(sub[, start[, end]]) | 从右向左检测字符串中是否包含sub子串,包含返回子串的下标,否则返回-1 | str1.rfind(‘fox’) |
str.index(sub[, start[, end]]) | 作用类似find,但子串sub不存在会报错ValueError | str1.index(‘fox’) |
str.rindex(sub[, start[, end]]) | 从右向左检测,类似rfind,会报ValueError | str1.rindex(‘fox’) |
str.replace(old, new[, count]) | 返回一个新字符串,原串中的old被替换为new,可选参数count指定替换次数。 | str1.replace(‘a’,‘many’) |
4.2 字符串分隔和组合
方法名 | 说明 | 示例 |
---|---|---|
str.split([sep[, num=count(sep)]]) | 将字符串拆分为以sep为分隔符的列表,如果指定num,则最多拆分num次 | str1.split(’ ') |
str.rsplit([sep[, num=count(sep)]]) | 从右向左拆 |