【循序渐进学Python】Python中的序列(一)——字符串
今天我们开始学习Python中的序列,在Python中序列分为字符串,列表,元组,字典,集合五类,今天我们先学习第一个"字符串".
字符串
-
表示文本信息的一种形式
-
排列有序的字符序列
-
在非注释中,凡是用引号括起来的部分都是字符串
-
用来保存字母,中文,还有符号.
-
一个字符用’ '(单引号)
-
多个字符用" "(双引号)
-
保留文本格式的话用""" “”"(三引号)
字符串中如果出现了引号
- 那么用另一种引号引起来就好"文本信息",‘文本信息’,’’‘文本信息’’’,""“文本信息”"".
格式:
变量名=字符串
案例:
a = "hello"
b = 'hello'
# 输出:
# hello
# 你好
# python
c = "hello\n你好\npython"
print(c)
下标索引:
作用:
通过下标索引获取一个字符串中的某个位置的字符
格式:
变量名=字符串[下标索引]
索引方式 从左到右: 从0开始 0,1,2,3… 想要从右到左 -1,-2,-3…
a = "world"
# 想要输出 world 中的"r"
# 方法一
ret1 = a[2]
# 方法二
ret2 = a[-3]
print(ret1, ret2)
索引异常
ret3 = a[8]
print(ret3)
# 异常输出 IndexError: string index out of range 超出范围,也就是常说的数组越界
切片
作用:
用来获取字符串中的某个字符或者是字符串子串(字符片段)
扫描二维码关注公众号,回复:
11551717 查看本文章
格式:
变量名 = 字符串[起始:结束:步长]
步长的正负可以控制方向 正数从左到右 负数从右到左
实例:
a = "abcdef"
ret1 = a[0:5:2]
print(ret1)
ret2 = a[1:4:2]
print(ret2)
ret3 = a[::-2]
print(ret3)
ret4 = a[2:-1]
print(ret4)
# 最后输出的结果是:
# ace
# bd
# fdb
# cde
转义字符
- 字符串中一些不太好表示的符号,为了表示这些字符,需要用一些特殊的形式,称为转义,需要转义的符号,称为转义字符
转义字符:
-
单引号:’
-
双引号:"
-
响铃:\a
-
反斜杠:\
-
换行:\n
-
水平制表符:\t
-
垂直制表:\v
-
倒退:\b
-
空字符串,字符串值为0:\0
-
Unicode 16位的十六进制数值:\uxxxx(注意;是四个数字)
-
Unicode 32位的十六进制值:\uxxxx xxxx(注意;后面是八个值)
-
十六进制值:\xXX
-
八进制值:\oXX
字符串中常用的方法:
a = "abcdefhadcrge"
# find 查找在这个字符在字符串中的位置
# 如果不为-1 就是获取到了第一次出现该字符的下标索引 结果为-1就是没有拿到
ret1 = a.find('a')
print(ret1)
# index 查找在这个字符在字符串中的位置 与find方法相似
# 如果不为-1 就是获取到了第一次出现该字符的下标索引
# 反之将报错 ValueError(查找的值超出索引范围): substring not found
ret2 = a.index('a')
print(ret2)
# count 计算在这个字符串中该字符有几个
ret3 = a.count('a')
print(ret3)
# replace 替换 replace('旧的值','新的值',替换个数)
# 替换只能替换数据 但是不能改变字符串的数据
# 因为字符串是不可变的数据类型
ret4 = a.replace('a', 'A', 3)
print(ret4)
# split 分割 切割 split('以这个字符为分割线',分割几个)
ret5 = a.split('c', 2)
print(ret5)
a = "abc bdeb fH.mp3"
# capitalize 将首字母大写
ret1 = a.capitalize()
print(ret1)
# title 将每段的首字母都大写
ret2 = a.title()
print(ret2)
# startswith 是否是以这个字符段进行开头 结果为:True或者Flase
ret3 = a.startswith('abc1')
print(ret3)
# endswith 是否是以这个字符段进行结尾 结果为:True或者Flase
ret4 = a.endswith('mp3')
print(ret4)
# lower 将所有的字符改为小写
ret5 = a.lower()
print(ret5)
# upper 将所有的字符改为大写
ret6 = a.upper()
print(ret6)
# tab 方便缩进
# ljust 将字符串左对齐用x将字符串补充至20个字符
ret7 = a.ljust(20, "x")
print(ret7)
# rjust 将字符串右对齐用x将字符串补充至20个字符
ret8 = a.rjust(20, 'o')
print(ret8)
# center
ret9 = a.center(20, ' ')
print(ret9)
# lstrip 截掉字符串左边的空格或指定字符
ret10 = a.lstrip("b")
print(ret10)
# rstrip 截掉字符串右边的空格或指定字符
ret11 = a.rstrip("abc")
print(ret11)
# strip 截掉字符串左右两边的空格或指定字符
ret12 = a.strip("abc")
print(ret12)
b = "abc\neb\nfbg"
# partition 把第一个该字符从字符串中分割出来
ret14 = b.partition("c")
print(ret14)
# 输出结果为: 'ab', 'c', '\neb\nfbg'
# rpartition
ret15 = b.rpartition("c")
print(ret15)
# rfind
# find查找第一个出现的字符 rfind从右往左进行查找的第一个字符
ret17 = b.find('b')
print(ret17)
ret17 = b.rfind('b')
print(ret17)