字符串

现实中我们会经常使用字符串:在输入账号或者密码,都是以字符串的形式传递给服务器。

字符串的编码目前大都使用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

你可能感兴趣的:(字符串)