现实中我们会经常使用字符串:在输入账号或者密码,都是以字符串的形式传递给服务器。
字符串的编码目前大都使用UTF-8编码。
字符串的定义:
字符串或者单引号引起来的数据,就是字符串。
字符串也是有下标的,从0开始
%c:格式化字符和ASIIC码
%s:格式化字符串
%d:格式化整数
%u:格式化无符号整型
%o:格式化无符号八进制数
%x:格式化无符号十六进制数
%X:格式化无符号十六进制数(大写)
%f:格式化浮点数,可指定小数点后的精度
%e:用科学计数法格式化浮点数
%p:用十六进制数格式化变量地址
\ 续行符
\n 换行
\t 横向制表符
\r 回车
+ 字符串连接 ‘asf’+ ‘asdf’
* 重复输出字符串 ‘123’*2
常见操作:
查找:
string.find(str, beg=0, end=len(string))
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string.rfind(str, beg=0, end=len(string))
类似于 find()函数,不过是从右边开始查找
.
string.index(str, beg=0, end=len(string))
类似于 find()函数,但是找不到报异常.
string.rindex(str, beg=0, end=len(string))
类似于 rfind()函数,但是找不到报异常.
string.find('s',0,20)在string中的前20个字符中查找‘s’,不加后面的数字默认从头至尾
index也是用下标确定范围。与find的区别就是它找不到就会报错
统计:
string.count(str, beg=0, end=len(string))
检测 str 是否包含在 string 中出现的次数,如果 beg 和 end 指定范围,则检查是否包含在指定范围内
string.count('a',10)从第11个字符开始查找后面的字符串有多少个a,(‘a’,10,20)从11到20个字符中找
分隔:
string.split(str="", num=string.count(str))
以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
string.split('s',2)在string中以s为分隔符,分隔两次。不设置值的话,有多少s分隔多少次。
分隔完成后s会消失变为逗号,,,返回的是列表的形式
string.splitlines([keepends])
按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
在字符串,如:‘aaaaa\ndsdsds\r\nsdfs’每到‘\n’或'\r\n'时就会分隔,,,,返回的是列表的形式
string.partition(str)
有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
返回包含三个元素的元组,(‘str之前的字符’,‘str’,‘str之后的’)
string.rpartition(str)
类似于 partition()函数,不过是从右边开始.
判断:
string.startswith(obj, beg=0,end=len(string))
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.endswith(obj, beg=0,end=len(string))
检查字符串是否是以 obj 结尾,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.isalnum() 所有字符都是字母或数字则返回 True,否则返回 False
string.isalpha() 所有字符都是字母则返回 True,否则返回 False
string.isdigit() 所有字符都是数字则返回 True,否则返回 False
string.isupper() 所有字符都是大写则返回 True,否则返回 False
string.islower() 所有字符都是小写则返回 True,否则返回 False
string.isspace() 只包含空格则返回 True,否则返回 False
大小写:
string.capitalize() 或 string.titile()
把字符串的第一个字符大写
string.upper()
转换 string 中的小写字母为大写
string.lower()
转换 string 中的小写字母为大写
对齐:
string.ljust(width)
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width)
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width)
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
string.center(30,'-')如果string有10个字符长度,这段代码会让string居中并且用‘-’来填充长度。如:----------1234567890----------
默认是空格填充
裁剪:
string.strip([obj])
删除 string 字符串前后的的obj,如果不传参数,删除前后空格
string.lstrip([obj])
删除 string 字符串左面的obj,如果不传参数,删除左面空格
string.rstrip([obj])
删除 string 字符串右面的obj,如果不传参数,删除右面空格
string.strip('j')默认会删除字符串前后的空格,如果加了参数,如果字符串第一个字符是
‘j’,那么就删除,如果不是就不改变
a = 'asdfafasdfasfa'
b = a.strip('asd')
print(b)
fafasdfasf