定义:由一系列字符组成的不可变序列容器,存储的是字符的编码值。
将若干个字符连接起来的序列就是一个字符串。
字符串的内容不能被修改(不能删除、增加、改变内容),但可以截取字符串一部分与其它字符串进行拼接。
编码
1. 字节byte:计算机最小存储单位,等于8位bit。
2. 字符:单个的数字、文字与符号。
3. 字符集(码表):存储字符与二进制序列的对应关系。
4. 编码:将字符转换为对应的二进制序列的过程。(字符--->二进制序列)
5. 解码:将二进制序列转换为对应的字符的过程。(二进制序列--->字符)
6. 编码方式:
ASCII编码:包含英文、数字等字符,每个字符1个字节,总共有128个码位,用7位表示。
GBK编码:兼容ASCII编码,包含21003个中文;英文1个字节,汉字2个字节。
Unicode字符集:国际统一编码,旧字符集每个字符2字节,新字符集4字节。
UTF-8编码:Unicode的存储与传输方式,英文1字节,中文3字节。
常用:ord(字符串):返回该字符串的Unicode码。 ord("F")
chr(整数):返回该整数对应的字符串。 chr(78)
字符串格式化:生成一定格式的字符串。
name="阿少"
age=18
print("我的名字是%s,年龄是%s" %(name, age))
类型码: %s 字符串 %d 整数 %f 浮点数 %.2f 保留小数点后两位
拼接字符串:
"+" 运算符可完成对多个字符串的拼接。【字符串不允许直接与其它类型的数据拼接】
name="阿少"
age=18
print("我是"+name+",很高兴认识你! ")
buf="我喜欢看《刺客伍六七》"
buf2="我也喜欢!"
print(buf+buf2)
str1="我的年龄是:"
age=18
print(str1+str(age))
#注意变量名,若命为 str ,会报错(str不能调用)
成员运算符
(1)数据 in 序列
(2)数据 not in 序列
作用:如果在指定(内容\位置)的序列中找到值,返回bool类型。
str2="hello"
print("ho" in str2) #false
索引 index :访问容器元素
正向索引(左往右):从 0 开始,最后一个为 len(s)-1。
反向索引(右往左):从 -1 开始,-1 代表最后一个,第一个是 -len(s)。
str3="hello"
print(len(str)) # 查看字符串长度
print(str3[-3]) #l
print(str3[0]) #h
print(str3[3]) #l
print(str3[5]) #报错
内建函数
len(x): 返回序列的长度
max(x): 返回序列的最大值元素
min(x) :返回序列的最小值元素
sum(x) :返回序列中所有元素的和(元素必须是数值类型)
str4="hello"
for i in range(len(str4)):
print(str4[i])
str5="2366234"
print(max(str5)) #6
print(min(str5)) #2
截取字符串
切片 slice:从容器中取出相应的元素重新组成一个容器。
语法:容器[(开始索引):(结束索引)(:(步长))]
string[start: end: step]
string:表示要截取的字符串(字符串容器)
start:表示要截取的第一个字符的索引(包括该字符),不指定,默认为0
end:表示要截取的最后一个字符的索引(不包括该字符),不指定,默认为字符串的长度
step:表示切片的步长,若省略,默认为1。当省略该步长时,最后一个冒号也可以省略
【结束索引不包含该位置元素】
【步长(可省略)是切片每次获取完当前元素后移动的偏移量】
str6="quanshao"
buf1=str6[4:7] #sha
buf2=str6[-5:] #nshao
buf=str6[-1:-6:-1][::-1] #步长的正负 控制方向 +:左往右 -:右往左
print(buf) #nshao
str7="quan"
print(id(str7))
str7+="shao"
print(id(str7))
#两个id不同 字符串是不可变序列容器 +"shao"会生成一个新的地址
基础知识有点零碎,但理解运用都很简单,明天更新 字符串的常用方法。
【若发现知识有误请及时联系进行更改】
_犬少加油,再接再厉!❤