1.什么是字符串(str)
字符串是容器数据类型(序列); 以单引号或者双引号作为容器的标志,引号中所有的内容都属于字符串的元素
'abc' -> 元素分别是'a', 'b', 'c'
特点:不可变,有序(支持下标操作)
2)字符串的元素
字符串中的元素又叫字符(注意:python中有字符的概念,但是没有字符类型;长度是1的字符串就可以看成是字符)
a.普通字符:字母、数字、各国的文字和符号等(可以直接写在引号中的符号)
'abc', 'abc123', '-+%中文'
b.转义字符:在字符串中在一些特定的符号前加\来表示特殊的功能和意义
' - '
" - "
\n - 换行
\ -
\t - tab键(制表符)
"""
c.编码字符:\u 4位16进制数 - 将4位16进制数对应的编码值转换成字符
"""
1)字符编码
计算机只有直接存储数字的能力,不能存储字符;
当需要用计算机存储字符的是,实质存的是字符对应的数字,这个数字就是字符在计算机中的编码
每一个字符和数字对应的关系叫编码表
2)ASCII码表和Unicode编码表
ASCII码表是由美国国家标准制定的专门针对美国富豪进行编码的,里面只包含一些特殊富豪、字母和数字,不包括中文
python采用的是Unicode编码表:Unicode编码表是对ASCII表的扩展,包含了世界上所有国家所有语言的符号(又叫万国码)
中文范围:0x4E00 ~0x9FA5
3)字符编码相关方法
chr(编码值) - 将编码值转换成字符
ord(字符) - 获取字符对应的编码值
1.获取字符
str1 = 'hello world!'
1)获取单个字符
print(str1[0])
2)字符串切片
print(str1[2:6:2]) #lo
3)遍历
for char in 'abc':
print(char)
4)in /not in
字符串1 in 字符串2 -> 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的字串)
5)len,max,min,sorted,str
6)语法
在字符串的最前面加r或R,可以阻止字符串中所有的转义字符转义
7)格式字符串
在字符串中用格式占位符表示字符串中不确定的部分
a·语法:包含格式占位符的字符 % (数据1,数据2,。。。) - ()中数据的个数和类型要和前面格式占位符一一对应
b·格式占位符
%s - 字符串
%d - 整数
%.Nf - 浮点数,N控制小数点后小数的位数
%c - 字符 (可以将数字转换成字符)
注意:1.所有的数据都可以用%s来做个数占位符 2.所有的数据都可以使用%s来接收
1.对齐方式
字符串.center(宽度, 填充字符=' ') - 居中
字符串.ljust(宽度, 填充字符= ' ') - 左对齐
字符串.rjust(宽度, 填充字符= ' ')
字符串.zfill(宽度) == 字符串.rjust(宽度, 0)
2.统计子串的个数
字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数
str1 = 'How Are you! Im Fine, THANK you'
print(str1.count('you'))
print(str1.count('you', 0, 12))#在下标是[0,12)范围内统计you的个数
3获取子串下标
print(str1.find('you'))
print(str1.index('you'))
4.join方法
字符串.join(序列) - 将序列中的元素用字符串连接产生一个新的字符串
要求序列中的元素必须是字符串,如果是字典key是字符串
new_str1 = '+'.join('123')
print(new_str1)
5.替换
字符串1.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2都替换成字符串3
字符串1.replace(字符串2, 字符串3,N) - 将字符串1中前N个字符串2替换成字符串3
str1 = 'How Are you! Im Fine, THANK you'
new_str1 = str1.replace('you', 'YOU')
print(new_str1)
6.字符串切割
字符串1.split(字符串2) - 将字符串2作为切割点切割字符串1,返回一个列表
str1 = 'how are you! Im Fine, thank you! and you'
str_list = str1.split(' ')
print(str_list)