10.序列类型——字符串

李光朱课程 2024-03-26 04:34:11
字符串介绍定义如下定义的变量a,存储的是数字类型的值 a = 100如下定义的变量b,存储的是字符串类型的值 b = "www.baidu.com"# 或者b = 'www.baidu.com'小总结: 双引号或者单引号中的数据,就是字符串下标下标:就是标记空间的一个数字 有些文档叫法为“索引”,个人觉得其实下标更好的体现它的特点。 如果有字符串:name = 'abcdef',在内存中的实际存储如下: 下标为正数 第0个空间 第1个空间 第2个空间 第3个空间 第4个空间 第5个空间 a b c d e f 下标为负数 第 -6 个空间 第 -5 个空间 第 -4 个空间 第 -3 个空间 第 -2 个空间 第 -1 个空间 a b c d e f 特点: 每个字符单独存储,各占一个存储空间为了方便标记处哪个空间存放的是哪个字符,Python使用了"下标"如果从左侧开始编号,那么下标从 0 开始如果从右侧开始编号,那么下标从-1开始如果字符串只有3个字符例如"abc",那么能用的下标为0、1、2不能使用超过2以上的,这种情况就是"越界"很危险会导致程序崩溃 下标的使用name = 'abcdef'print(name[0])print(name[1])print(name[2])运行结果: abc字符串切片什么是切片较为官方的说法:切片是指对操作的对象截取其中一部分的操作 通俗来说:一种能够从数据中取到一部分数据的方式 例如: 有一个字符串"abcdef",我们可以通过切片取到"cde" 切片不仅可以在字符串中应用,还可以对列表、元组等进行操作,简言之“切片”功能很重要。 本节课我们以字符串为例讲解“切片” 使用方式语法 [起始:结束:步长]注意: 选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔默认“步长”为1,即取完一个下标的数据之后,第二个下标的是在刚刚下标基础上+1步长为正数,表示从左向右取数据步长为负数,表示从右向左取数据 示例代码 示例一: name = 'abcdef'print(name[0:3]) # 取下标为0、1、2的字符,注意取不到下标为3的空间运行结果: abc示例二: name = 'abcdef'print(name[:3]) # 取下标为0、1、2的字符,注意取不到下标为3的空间'''如果第一个参数没写则默认为0开始'''运行结果: abc示例三: name = 'abcdef'print(name[3:5]) # 取下标为3、4 的字符运行结果: de示例四: name = 'abcdef'print(name[2:]) # 取下标为2开始到最后的字符运行结果: cdef示例五: name = 'abcdef'print(name[1:-1]) # 取 下标为1开始到右侧第2个字符之间的所有字符运行结果: bcde示例六: name = 'abcdef'print(name[1:5:2])'''步长为2表示间隔1个值取一次'''运行结果: bd示例七: name = 'abcdef'print(name[5:1:-1])'''5: 起始位置1: 结束位置 (不包含)-1: 步长,表示从右往左取值'''运行结果: fedc示例八: name = 'abcdef'print(name[5:1:-2])'''5: 起始位置1: 结束位置 (不包含)-2: 步长,表示从右往左取值并间隔一个值'''运行结果: fd示例九: name = 'abcdef'print(name[::1])'''起始位置: 未设置结束位置: 未设置1: 步长表示从最左边取值到最右边(包含最右边)'''运行结果: abcdef示例十: name = 'abcdef'print(name[::])运行结果: abcdef说明: 开始位置、结束位置都未指定,且步长也未指定那么步长用默认的1,则此时从最左取到最右示例十一: name = 'abcdef'print(name[::-1])运行结果: fedcba说明: 开始位置、结束位置都未指定,步长为-1,此时从最右取到最左示例十二: name = 'abcdef'print(name[::-2])运行结果: fdb说明 开始、结束位置都未指定,且步长是-2,那么就意味着从右侧往左取数据,且步长为2(即隔一个取一个)总结切片使用规则中,要么一个冒号[开始位置:结束位置],要么两个冒号[开始位置:结束位置:步长]不写步长时,默认为1步长为正数,表示从左向右取数据步长为负数,表示从右向左取数据当开始位置、结束位置都没有设定时,要看步长,如果步长为正数此时开始位置理解为最左 结束位置为最右,如果步长为负数此时开始位置理解为最右 结束位置为最左字符串常见操作find 方法检测str是否包含在 my_str中,如果是返回开始的索引值,否则返回-1 my_str.find(str, start=0, end=len(mystr))In [2]: my_str = "welcome to www.baidu.com"In [3]: my_str.find("to")Out[3]: 8说明: 上述运行中数值8表示"to"这个字符串在原字符串的开始下标值是8rfind 方法类似于find()函数,不过是从右边开始查找,返回的索引是从左边开始 my_str.rfind(str, start=0, end=len(my_str) )In [2]: my_str = "welcome to www.baidu.com"In [3]: my_str.rfind("to")Out[3]: 8count 方法返回str在start和end之间在 my_str里面出现的次数 my_str.count(str, start=0, end=len(mystr))In [2]: my_str = "welcome to www.baidu.com"In [3]: my_str.count("w")Out[3]: 4replace 方法把 my_str 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次 my_str.replace(str1, str2, mystr.count(str1))In [2]: my_str = "welcome to www.baidu.com"In [3]: my_str.replace('w', 'W', 1)Out[3]: 'Welcome to www.baidu.com'split 方法以 str 为分隔符切片 my_str,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串 my_str.split(str=" ", maxsplit) In [1]: my_str = "welcome to www.baidu.com"In [2]: my_str.split(" ")Out[2]: ['welcome', 'to', 'www.baidu.com']In [3]: my_str.split(" ", 1)Out[3]: ['welcome', 'to www.baidu.com']In [4]: startswith 方法检查字符串是否是以 指定的字符串 开头, 是则返回 True,否则返回 False my_str.startswith('这里写入你指定的字符串')In [1]: my_str = "welcome to www.baidu.com"...In [4]: my_str.startswith('welcome')Out[4]: TrueIn [5]: my_str.startswith('Welcome')Out[5]: Falseendswith 方法检查字符串是否以指定字符串结束,如果是返回True,否则返回 False my_str.endswith('这里写入你指定的字符串')In [1]: my_str = "welcome to www.baidu.com"...In [6]: my_str.endswith('com')Out[6]: Truelower 方法转换 my_str 中所有大写字符为小写 my_str.lower() In [8]: my_str = "WELCOME to www.baidu.com"In [9]: my_str.lower()Out[9]: 'welcome to www.baidu.com' upper 方法转换 my_str 中所有小写字母为大写 my_str.upper() In [10]: my_str = "welcome to www.baidu.com"In [11]: my_str.upper()Out[11]: 'WELCOME TO WWW.BAIDU.COM' strip 方法删除字符串两端的空白字符 In [12]: my_str = " welcome to www.baidu.com "In [13]: my_str.strip()Out[13]: 'welcome to www.baidu.com' partition 方法把my_str以str分割成三部分,str前,str和str后 my_str.partition(str)In [14]: my_str = "welcome to www.baidu.com"In [15]: my_str.partition('to')Out[15]: ('welcome ', 'to', ' www.baidu.com')splitlines 方法按照行分隔,返回一个包含各行作为元素的列表 my_str.splitlines() In [16]: my_str = """welcome to www.tulingxueyuan.com ...: thank you ...: good good study day day up ...: """In [17]: my_str.splitlines()Out[17]: ['welcome to www.tulingxueyuan.com', 'thank you', 'good good study day day up']isalpha 方法如果 my_str 所有字符都是字母 则返回 True,否则返回 False my_str.isalpha() In [18]: my_str = "abc123"In [19]: my_str.isalpha()Out[19]: FalseIn [20]: my_str = "abc"In [21]: my_str.isalpha()Out[21]: Trueisdigit 方法如果 my_str 只包含数字则返回 True 否则返回 False my_str.isdigit() In [60]: my_str = "abc123"In [61]: my_str.isdigit()Out[61]: FalseIn [62]: my_str = "123"In [63]: my_str.isdigit()Out[63]: Trueisalnum 方法如果 my_str 所有字符都是字母或数字则返回 True,否则返回 False my_str.isalnum() In [2]: my_str = 'abc123'In [3]: my_str.isalnum()Out[3]: TrueIn [4]: my_str = 'abc123_'In [5]: my_str.isalnum()Out[5]: Falsejoin 方法my_str 中每个元素后面插入str,构造出一个新的字符串 my_str.join(str)In [6]: my_str = '-'In [7]: str_list = ['welcome', 'to', 'changsha']In [8]: my_str.join(str_list)Out[8]: 'welcome-to-changsha'说明关于字符串的常见操作上面列举了16个,其实还有很多,但各位同学们要注意 不要背,理解即可忘记没关系,可以查阅资料学会怎么用,什么时候用什么这是关键点
0 阅读:0

李光朱课程

简介:感谢大家的关注