Python之字符串
![](https://img.haomeiwen.com/i7078011/c0e2dabf9f271d29.jpg)
废话不多说,一步一步看
1.字符串的表示
Python中的字符串是指用单引号、双引号或者三引号引出的一组字符,例如:
(1)str_one = '我是用单引号引的字符串'
(2)str_two = ''我是用双引号引的字符串''
(3)str_three = '''我是由三个单引号引的字符串'''
(4)str_four = """我是由三个双引号引的字符串"""
对于字符串的表示很简单,这里不多做说明,需要注意以下几点:
(1)如果一句话中本身就存在单引号,那么我们就用双引号引它,如果一句话中本身就存在单引号,那么我们就用双引号引它,就像 a = "this is a so 'cute' cat",b = '今天终于“星期四”了,好开心!'
(2)三引号引出的字符串可以换行,如下
str_one = '''
我是第一行
我是第二行
'''
2.字符串的取值
content = "Never stop learning!"
(1)索引:content [num]
num是一个数值,在代码中,num从左到右的顺序是0,1,2,3...,所以content[0] = 'N',content[1] = 'e',当然我们也可以从右往左取,从右往左的下标顺序是-1,-2,代表倒是第一个,倒数第二个,如content[-1]='!'
(2)切片:content[m:n:s]m代表开始下标,n代表结束下标,取值时取m到n前一个的值,s代表步长
具体看下面代码示例来理解字符串的获取
content = "Never stop learning!"
print(content[0]) # N
print(content[-2]) # g
print(content[78]) # 超出字符串长度,报错:IndexError: string index out of range
print(content[0:5:1]) # 截取从索引0~取到第四个,步长为1,前闭后开
print(content[0:5]) # 从第0个取到第四个,默认步长为1
print(content[0:]) # 从第0个取到最后一个
print(content[:8]) # 截取从开始位置~ 位置8 的字符串
print(content[::]) # 截取完整的字符串
print(content[2:-1]) # 截取从索引2 ~ 末尾-1的字符串
print(content[-2:]) # 截取字符串末尾两个字符
print(content[::-1]) # 字符串的逆序(拓展)
print(content[3:100]) # 和索引有区别,切片值返回切的的数据,不报错
print(content[20:100]) # 返回空 不报错
print(content[0:-1:1]) # 倒数第一个不取
如有疑问,可以自己取打印一下上面的值,不难理解。
3.字符串的格式化
照例先看一下如下代码
name = "lily"
age = 27.156789
print("%s今年%.2f岁" % (name, age)) # 1
print("I'm %(name)s. I'm %(age)d year old" % {'name': name, 'age': age}) # 2
print('{}今年{}岁'.format(name, age)) # 3
print('{1}今年{0}岁'.format(age, name)) # 4
print('{name}今年{a}岁'.format(name=name, a=age)) # 5
第1句:没啥东西,主要就是用了格式化符,%s表字符串,%f代表浮点类型,%.2f代表浮点数保留两位小数。
第2句:格式化符中间加(),里面填写属性名,跟后面赋值部分的属性名称相对照
第3句:.format格式开始,值的地方用{}占位i,然后.format()里填写属性即可
第4句:{}中间添加数值,代表的是.format()里相对的第几个
第5句:{}中间添加属性值,后面.format()里面改成赋值形式
格式化符对照表:
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)�或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
一般用到最多的也就%s,%d,%f等
4.字符串中常用的内置函数
name = " lily Is A Big pig "
print(name.upper()) # 全部转换为大写
print(name.lower()) # 全部转换为小写
print(name.capitalize()) # 首字母大写,其余小写)
print(name.title()) # 首字母大写
print(name.replace('Big', 'small')) # 替换,将big替换成small
print(name.find('Big')) # 查找字符串中是否有字符串,查找到则返回第一个下标,查找不到则返回-1
# print(name.index('hyq')) # 和find功能类似,区别在于index如果找不到会报错:ValueError: substring not found
print(name.isdigit()) # 判断是否是数字类型
print(name.strip()) # 前后的空格除去,这里把lily前面的空格和pig后面的空格去掉
print(name.lstrip()) # 去左边空格
print(name.rstrip()) # 去左边空格
print(name.count('g')) # 统计指定字符出现的次数
print(name.split(' ')) # 按指定字符分割字符串为数组
常用的内置函数就不多说了,上面都有相对的注释,嘻嘻!
好啦,关于字符串要整理的就这些拉,想起来再来补充,打完收工!!