1.字符串
1.什么是字符串(str)
"""
1)字符串
字符串是容器型数据类型(序列);以单引号或者双引号作为容器的标志,引号中所有的内容都是字符串的元素
'abc' -> 元素分别是'a','b','c'
特点:不可变,有序(支持下标操作)
2)字符串中的元素
字符串中元素又叫字符(注意:python中有字符概念,但是没有字符类型;长度是1的字符串就可以看成字符)
a.普通字符:字母,数字,各国的文字和符号等(可以直接写到引号中的符号)
'abc','abc123'
b.转义字符:字符串中在一些特点的符号前加\来表示特殊的功能和意义
' - > '
" - > "
\n - > 换行
\ - >
\t - > 按了一个tab键 建议用这种方式表示前面的缩进
"""
c.编码字符: \u4位16进制数 - 将4位16进制数对应的编码值转换成字符
"""
1)字符编码
计算机只有直接存储数字的能力,不能直接存储字符;
当需要用计算机存储字符的时候,实质存的是字符对应的固定的数字,这个数字就是字符在计算机中的编码
每一个字符和数字的对应关系叫编码表
2)ASCII码表和Unicode编码表
ASCII码表是由美国国家标准制定的专门针对美国符号进行编码的,里面只包含一些特殊符号,字母和数字(不包含中文,日语等)
python采用的是Unicode编码表
中文范围 0x4E00-0x9FA5 0x4e00 - 0x9fa5
3)字符编码的相关方法
chr(编码值) - 将编码值转换成字符
ord(字符) - 获取字符对应的编码值
"""
str2 = 'abc \
\n123'
str2 = 'abc\\n123'
print(str2)
str3 = u'5e00'
print(str3)
# 97 - 122 65 - 90
# for i in range(0x2000,0x2111):
# print(chr(i),end=' ')
2.字符串的操作
1.获取字符
"""
1.获取字符
str1 = 'hello world!'
1)获取单个字符
print(str[0])
2)字符串切片
str1[:]
切不到的是空串
3)遍历
for char in 'abc':
print(char)
"""
str2 = 'How Are You! Im Fine, THANK YOU!'
num = 0
for char in str2:
if 97 <= ord(char) <= 122:
num+=1
print(num)
2.字符串操作
"""
- 和 *
字符串1+字符串2 -> 将字符串1和字符串2拼接在一起产生一个新的字符串
字符串 * N/N * 字符串 -> 字符串重复N次产生一个新的字符串
- 和 *
== , !=
3)> , < , >=, <=
只能两个字符串比较大小 - 从前往后找到第一组不相等的字符,比较它们编码值的大小,谁的编码值大那个字符串就大
'0' <= char <= '9' - 判断是否是数字字符
'a' <= char <= 'z' - 判断是否是小写字母
'A' <= char <= 'Z' - 判断是否是大写字母
'a' <= char <= 'z' or 'A' <= char <= 'Z' - 判断是否是字母in / not in
字符串1 in 字符串2 -> 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)
str3 = 'how are you'
print('how' in str3) #True
5)len,max,min,sorted,str # sorted按字符串的编码值大小排序
注意:转义字符串和编码字符的长度都是1
字符串转换:所有的数据都可以转换成字符串,转换的时候是将数据放在引号中
6)r语法
在字符串的最前面加r或R,可以阻止字符串中所有的转义字符转义
7)格式字符串
在字符串中用格式占位符表示字符串中不确定的部分
a.语法:包含格式占位符的字符 %(数据1,数据2,....) - ()中数据的个数和类型要和前面的格式占位符--对应
b.格式占位符
%s - 字符串
%d - 整数
%.Nf - 浮点数,N控制小数点后小数的位数
%c - 字符 还可以传编码值 程序会将编码值转化成字符
注意:所有的数据都可以使用%s来做个数占位符,所有的数据都可以使用%s来接收
"""
str1 = r'\thow\nare\'you!\u4e00'
print(len(str1))
print('%cbc'%97)
3.字符串的相关方法
1.对齐方式
"""
字符串.center(宽度,填充字符) - 居中
字符串.ljust(宽度,填充字符) - 左对齐
字符串.rjust(宽度,填充字符) - 右对齐
字符串.zfill(宽度) == 字符串.rjust(宽度,0) - 一般用于产生学号等id
"""
str1 = 'abc'
print(str1.center(10,'+'))
print(str1.ljust(10,'+'))
print(str1.rjust(10,'+'))
2.统计子串的个数
"""
字符串1.count(字符串2,[start,end)(默认整个字符串)) - 统计字符串1中从start开始到end结束字符串2出现的次数
字符串1.find()和字符串1.index()的区别,前者没有找到返回-1不会报错,获取子串下标
4.join方法
字符串.join(序列) - 将序列中的元素用字符串连接。产生一个新的字符串,要求序列中的元素都是字符串
字典也可以,只不过是将key值相连
5.替换
字符串1.replace(字符串2,字符串3) - 将字符串1中所有的字符串2都替换成字符串3
字符串1.replace(字符串2,字符串3,N) - 将字符串1中前N个字符串2都替换成字符串3
6.字符串切割
字符串1.split(字符串2) - 将字符串2作为切割点切割字符串1,返回一个列表
str1 = 'how are you ! Im fine,thank you ! and you?'
"""
list1 = ['a','b','c']
print(''.join(list1))
str1 = 'how are you ! Im fine,thank you ! and you?'
print(str1.split('!'))