内容概要
前面我们了解了数据类型中的数值类型,接下来让我们继续来了解python中的其他数据类型。
本节字符串的内容比较多,故我们分两节来进行讲述。
一、字符串的发展?
由于计算机内部只识别二进制,但是用户在使用计算机的时候却可以看到各式各样的语言字符,因此就产生了字符编码:内部记录了人类字符与数字对应关系的数据
阶段一:ASCLL表,是由美国进行制作的,考虑到了计算机要能识别英文字符,以及一些其他通用的符号。规定计算机的计量单位,8个bit作为一个字节,特点是字母和数字是一一对应的关系。
阶段二:其他国家考虑到不同国家之间的差异,不方便每个国家都是用一个编码原则,因此各个国家产生了自己独特的编码方式。比如中国式gb2312、韩国是Ecu-kr等。
阶段三:实行一段时间之后,各个国家认识到了五花八门的编码方式不利于各国之间的交流,各种语言进行编码还容易造成乱码,产生一系列的问题,因此由万国构成的Unicode联盟就创建了一个统一的编码标准,称为Unicode标准,又译作万国码、统一字元码、统一字符编码,自此世界编码标准基本统一。
阶段四:随着信息时代的发展,utf-8编码标准出现,这种方式可以根据不同的数字进行编码,因为能根据不同的情况在1-6个字节中自定义,大大节省了空间,编码系统开始走向成熟。
字符串的编码转换(示例如下):
字符串的编码转换
string = '我爱Python'
1.encode()
#作用:将str转换到bytes字节类型,让计算机理解,这个过程策称为编码
byte_string = string.encode()
print(byte_string) # b'\xe6\x88\x91\xe7\x88\xb1Python' 以b为前缀的就是字节
2.decode()
#作用:将bytes字节转换成str类型,让人类理解,这个过程称为解码
b = b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
string_b = b.decode()
print(string_b)
二、字符串的基本用法及其特点
1.定义
字符串或串(String)是由数字、字母、下划线组成的一串字符。 一般记为s=“a1a2···an”(n>=0)。 它是编程语言中表示文本的数据类型。 在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
emmmm只能说官方定义我看着也麻烦,话不多说,我们用实例来理解字符串的定义吧!
字符串 用‘’或“”包含的数据str(string),特别注意的是引号有单引号、双引号和三引号,三引号定义的字符串可以进行多行展示,但必须都是英文字符,否则程序就会报错
作用:可以用来记录带有描述性质的内容。eg:家庭住址,个人简介,姓名
示例如下:
address = '山西忻州'
indiv = '人生苦短 我学python'
name = 'Abner'
string1 = '''
岁月不居,时节如流。如今,在进一步加强非物质文化遗产保护工作的基础上,
与“春牛”相关的传统立春礼俗得到更好保护,《春牛图》走入现代生活,焕发崭新光彩。如果说,
传统《春牛图》是引导大众遵循立春礼仪、指导农耕的关键抓手,那么,现代《春牛图》则成为人们
描绘新希望、讴歌新生活、增强文化认同的重要载体。在天津杨柳青、山东潍坊杨家埠、山西新绛等
年画产地,一幅幅新印制的《春牛图》承载着人寿年丰的美好寓意,为百姓生活增添文化亮色。
(摘录于人民日报)
''' #三引号可以对字符串进行多行展示
2.字符串的‘加减乘’
不光数值类型的变量有加减乘除,同样的我们的字符串也有自己的加减乘,那么他们到底有什么区别呢,现在就让我们来探索一下吧
- 字符串的相加:限定于字符串和字符串进行相加,简要概括就是字符串的拼接。
示例如下:
s1 = '我爱你你爱我'
s2 = '蜜雪冰城甜蜜蜜'
print(s1 + s2) # 我爱你你爱我蜜雪冰城甜蜜蜜
- 字符串的相减是指从一个字符串中减去另一个字符串的操作,也就是将第二个字符串中出现的字符从第一个字符串中删除。
s1 = "hello world"
s2 = "llo"
for char in s2:
s1 = s1.replace(char, "")
print(s1) # 输出 "he world"
- 字符串的相乘的本质是字符串进行多次的重复输出
print('对不起' * 100)
print('-' * 100) # 实际应用可以进行段落的分隔
3.索引和切片
索引是指字符串、列表等数据类型中用来查找特定数值的工具
# 索引取值/下标 从0开始
# 作用:可以取出索引对应的一个字符
# 语法:字符串[索引]
str1 = '好好学习 天天向上'
# 正向取值
# 索引 0 1 2 3 4 5 6 7 8 9
print(str1[5])#天
# 负向取值
# 索引 -9 -8 -7 -6 -5 -4 -3 -2 -1
print(str1[-4])
# 注意:不能超出范围
# 最大值索引+1就是该字符串的长度,即有多少个字符,从1开始
切片是指将字符串中的一部分切割出来,组成一个新的字符串
示例:
# 切片[开始索引:结束索引:步长] ——包前不包后,步长默认值为1,正负号决定切取的方向,正号是从左往右切
# 作用:从一个大字符串里面拷贝出一个子字符
s = 'hello'
print(s[0:3:1]) # hel
print(s[4:0:-1]) # olle
print(s[-4:-1]) # ell
print(s[-1:-5]) # 空字符 切片的方向冲突
print(s[-1:-5:-1]) # olle
print(s[::]) # hello,全部取出
print(s[0:5:]) # hello
print(s[::-1]) # 倒序输出 olleh
# 切片的结束值超出范围是不会报错的,默认切到最后
4.成员运算符 in
作用:检查某个字符是否在字符串里面
# in 在...里面,如果子字符存在于字符串里面,返回True,不存在返回False
print('h'in'hello')
5.原生字符串
作用:字符串只是普通字符,不构成任何其他的意义 取消字符串里面的转移
# 语法:r‘’ R在字符串引号最开始加上r
path1 = 'F:\devtools\python project\06字符串\cede.py'
print(path1) #F:\devtools\python project字符串\cede.py
path2 = r'F:\devtools\python project\06字符串\cede.py'
print(path2) #F:\devtools\python project\06字符串\cede.py
总结
本节知识点比较多,可能需要多花一点时间去记忆,相信自己,喜欢这类课程的话就给博主点点关注,我们继续一起学习!
此外,今天是除夕夜
,祝愿你们除去忧愁,除掉烦恼,迎接幸福,迎接美好,愿吉祥伴随你,好运青睐你,平安依赖你,健康眷恋你,快乐亲吻你,幸福拥抱你。