Python课堂07——六大数据类型之字符串(一)


内容概要

前面我们了解了数据类型中的数值类型,接下来让我们继续来了解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.字符串的‘加减乘’

不光数值类型的变量有加减乘除,同样的我们的字符串也有自己的加减乘,那么他们到底有什么区别呢,现在就让我们来探索一下吧

  1. 字符串的相加:限定于字符串和字符串进行相加,简要概括就是字符串的拼接。

示例如下:

s1 = '我爱你你爱我'
s2 = '蜜雪冰城甜蜜蜜'
print(s1 + s2)  # 我爱你你爱我蜜雪冰城甜蜜蜜
  1. 字符串的相减是指从一个字符串中减去另一个字符串的操作,也就是将第二个字符串中出现的字符从第一个字符串中删除。
s1 = "hello world"
s2 = "llo"
for char in s2:
    s1 = s1.replace(char, "")
print(s1)  # 输出 "he world"
  1. 字符串的相乘的本质是字符串进行多次的重复输出
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

总结

本节知识点比较多,可能需要多花一点时间去记忆,相信自己,喜欢这类课程的话就给博主点点关注,我们继续一起学习!

此外,今天是除夕夜,祝愿你们除去忧愁,除掉烦恼,迎接幸福,迎接美好,愿吉祥伴随你,好运青睐你,平安依赖你,健康眷恋你,快乐亲吻你,幸福拥抱你。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莘薪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值