2. String(字符串)
定义:单引号或双引号中的数据
由数字、字母、下划线组成。一对引号字符串三引号字符串 字符串拼接
print(a,b)print(a+’,’+b) 下标和切片:
正数下标
字符串中从左到右每个元素 分配的从0开始的编号,最后一个下标为长度(len)-1 负数下标
字符串中从右往左每个元素分配的从-1开始的标号.最后一个下标为负的长度-len str[-4:-1]
负数下标依然是从左到右的顺序打印的 str[-2:-5]
下标顺序错误,不会打印任何数据 切片
字符串序列 [ 开始位置下标:结束位置下标:步长 ] str[:]
冒号左边是开始下标冒号右边是结束下标不写步长,步长默认为1 str[:3]
不写开始下标,默认开始下标为0 str[1:]
不写结束下标,默认结束下标为最后一位下标 字符串截取
Python字符串从左至右截取:索引范围(0,长度-1),从右至左截取(-1,字符串开头)。 1切片截取时不包含结束下标的元素 字符串的反转
str[: : -1]字符串倒叙输出 字符串的常见操作
4.1字符串查找
find()
检测某个子串是否包含在字符串中,如果在, 返回这个子串开始位置的下标,否则返回-1 语法:
字符串序列.find(‘要查找的子串’,开始位置下标,结束位置下标) rfind()
和find()功能相同,但查找反向为右侧开始 index()
检测某个子串是否包含在这个字符串中,如果, 返回这个字符串开始的位置下标,否则则报异常 语法:
字符串序列.index(子串,开始位置下标,结束位置下标) findex()
和index()功能相同,但查找方向从右侧开始 count()
返回某个子串在字符串中出现的次数 语法
字符串序列.count(子串,开始位置下标,结束位置下标) 4.2字符串修改
replace()
替换子串 字符串序列.replace(‘旧子串’,‘新子串’,替换次数)
不指定替换次数, 会替换所有 split()
按照指定字符分割字符串 语法
字符串序列.split(‘指定分割字符’,num)
注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。 示例
mystr = “hello world and itcast and itheima and Python” print(mystr.split(‘and’))
# 结果:['hello world ', ' itcast ', ' itheima ', ' Python']
print(mystr.split('and', 2))
# 结果:['hello world ', ' itcast ', ' itheima and Python']
print(mystr.split(' '))
# 结果:['hello', 'world', 'and', 'itcast', 'and', 'itheima', 'and', 'Python']
print(mystr.split(' ', 2))
# 结果:['hello', 'world', 'and itcast and itheima and Python']
- join()
- ⽤一个字符或子串合并字符串,即是将多个字符串合并为⼀个新的字符串。
- 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
- join: 根据指定数据把容器类型中的每一个数据按照字符串进行拼接,返回一个新的字符串
- 语法
- 字符或⼦串.join(多字符串串组成的序列列)
- 示例
- list1 = ['chuan', 'zhi', 'bo', 'ke']
t1 = ('aa', 'b', 'cc', 'ddd')
print('_'.join(list1))
```python
# 结果:chuan_zhi_bo_ke
print('...'.join(t1))
# 结果:aa...b...cc...ddd
- capitalize()
- 将字符串第一个字符转换成大写。
- 注意:capitalize()函数转换后,只字符串串第⼀一个字符⼤大写,其他的字符全都⼩小写。
- title()
- 将字符串每个单词⾸字母转换成大写。
- lower()
- 将字符串中大写转小写
- upper()
- 将字符串中小写转大写
- lstrip()
- 删除字符串左侧空白字符。
- rstrip()
- 删除字符串右侧空白字符.
- strip()
- 删除字符串两侧空白字符.
- ljust()
- 返回一个源字符串左对齐,并使用指定字符(默认风格)填充至对应长度的新字符串
- 语法
- 字符串序列.ljust(长度,填充字符)
- rjust()
- 返回⼀个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度 的新字符串,语法和
ljust()相同。
- string.swapcase()
- 翻转 string 中的大小写
- string.partition(str)
- # 10. partition表示根据指定数据把字符串分割成三部分
- 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
- string.rpartition(str)
- 类似于 partition()函数,不过是从右边开始查找.
- # 11. rpartition表示根据指定数据从右往左找指定的数据把字符串分割成三部分
- 4.3字符串判断
- startswith()
- 检查字符串是否以指定子串开头,是则返回True,否则返回False,如果设置开始和结束下标,则在指定范围内检查.
- 语法
- 字符串序列.startswith(子串,开始位置下标,结束位置下标)
- endswith()
- 检查字符串是否以指定子串结尾,是则返回True,否则返回False.如果设置开始和结束下标,则在指定范围内检查.
- 语法
- 字符串序列.endswith(子串,开始位置下标,结束位置下标)
- string.istitle()
- 判断首字母是否为大写,是大写返回 True,否则返回 False
- isalpha()
- 判断所有字符都是字母,为真返回 Ture,否则返回 False
- isdigit()
- 判断所有字符串只包含数字则返回True,否则返回False
- isalnum()
- 判断所有字符都是数字或者字母,为真
返回 Ture,否则返回 False。
- isspace()
- 判断字符串是否都是空格(空白),
为真则返回True,否则返回False.
- string.isdecimal()
- 如果 string 只包含十进制数字则返回 True 否则返回 False.
- isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
- string.isupper()
- 判断字符串是否全部大写,
为真则返回 True,否则返回 False
- string.islower()
- 判断字符串是否全部小写,
为真则返回 True,否则返回 False
- string.isnumeric()
- 如果 string 中只包含数字字符,则返回 True,否则返回 False
- 字符串格式化
- string.format()
- 格式化字符串
- center()
- 返回一个原字符串剧中对齐,并使用字符(默认空格)填充至对应长度的新字符串,语法和ljust()相同
- 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
- str.center(100,'填充的符号')
- 100为填充数量
- 不写填充符号默认为空格
- string.decode(encoding='UTF-8', errors='strict')
- 以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'
- string.encode(encoding='UTF-8', errors='strict')
- 以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
- string.expandtabs(tabsize=8)
- 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
- string.maketrans(intab, outtab])
- maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
- string.splitlines([keepends])
- 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
- string.translate(str, del="")
- 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
- string.zfill(width)
- 返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0
- 生成字符串
- string.ascii_letters
- 生成所有字母,从a-z和A-Z
- string.digits
- 生成所有数字0-9
- 获取字符串长度
- len(字符串)
- 返回字符串 str 中最大的字母
- max(str)
- 返回字符串 str 中最小的字母
- min(str)
python转义字符
(在行尾时)
续行符 \
反斜杠符号 ’
单引号 "
双引号 \a
响铃 \b
退格(Backspace) \e
转义 \000
空 \n
换行 \v
纵向制表符 \t
横向制表符 \r
回车 \f
换页 \oyy
八进制数,yy代表的字符,例如\o 12代表换行 \xyy
十六进制数,yy代表的字符,例如\x0a 代表换行 \other
其他的字符以普通格式输出 字符串运算符
字符串连接
a+b输出结果:hellopython
重复输出字符串
a*2输出结果,hellohello []
通过索引获取字符串中字符
a[1]输出结果e [:]
截取字符串中的一部分
a[1:4] 输出结果ell in
成员运算符:-如果字符串中包含给定的字符返回True
H in a 输出结果 1 not in
成员运算符,- 如果字符串中不包含给定的字符返回True
M not a 输出结果1 r/R
原始字符串-原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符,原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法.
print r’\n’ prints \n 和 print R’\n’ prints \n %
格式字符串
请看下一行内容. str和tuple是不可变类型,修改需要重新赋值
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。