序列类型操作符
序列操作符 | 作用 |
---|---|
seq[ind:ind2] | 获得下标从ind1到ind2之间的元素 |
seq * expr | 序列重复expr次 |
seq1 + se2 | 链接序列seq1和seq2 |
obj in seq | 判断obj元素是否包含在seq中 |
obj not in seq | 判读obj元素是否不包含在seq中 |
seq[ind] | 获得下标为ind的元素 |
序列类型转换工厂函数
函数 | 含义 |
---|---|
list(iter) | 把可迭代的对象转换为列表 |
str(obj) | 把obj对象转换成字符串(对象的字符串表示法) |
unicode(obj) | 把对象转换成unicode字符串(使用默认编码) |
basestring() | 抽象工厂函数,其作用仅仅是为str和unicode函数提供父类,所以不能被实例化,也不能被调用, |
tuple(iter) | 把一个可迭代对象转换成一个元组对象 |
序列类型可用的内建函数
函数名 | 功能 |
---|---|
enumerate(iter) | 接受一个可迭代对象作为参数,返回一个enumerate对象,(同时也是一个迭代器)该对象生成由iter每个元素的index值和item值组成的元组 |
len(seq) | 返回seq的长度 |
max(iter,key=None) or max(arg0,arg1...key=None) | 返回iter里面的最小值或者返回(arg0,arg1....)里面的最小值,如果指定了key,这个key必须是一个可以传给sort()方法的,用于比较的回调函数 |
reversed(seq) | 接受一个序列作为参数,返回一个逆序访问的迭代器 |
sorted (iter,func = None,key= None,reverse = False) | 接受一个可迭代对象作为参数,返回一个游戏的列表,可选参数func,key和reverse的含义跟list.sort(),内建函数的参数哈奴一样 |
sum(seq,init=0) | 返回seq和可选参数init的总和,其效果等同于reduce(operator.add,seq,init) |
zip(it0,it1,...itN) | 返回一个列表,其第一个元素是it0,it1,,,,这些元素的第一个元素组成的一个元组,第二个,,,,依次类推。 |
字符串格式化符号
格式化字符 | 转换方式 |
---|---|
%c | 转换成字符,(ASCII码值,或者长度为一的字符串) |
%ra | 优先用repr()函数进行字符串转换 |
%s | 优先用str()函数进行字符串转换 |
%d/%i | 转成有符号十进制数 |
%ub | 转成无符号十进制数 |
%ob | 转成无符号把禁止数 |
%xb/%Xb | 转成无符号十六进制数(x/X代表转换后的十六进制字符的大小写) |
%e/%E | 转成科学计数法(e/E控制输出e/E) |
%f/%F | 转成浮点数(小数部分自动阶段) |
%g/%G | %e和%f/%E和%F的缩写 |
%% | 输出% |
格式化操作符辅助指令
符号 | 作用 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用左对齐 |
+ | 在整数前面显示加号 |
<sp> | 在整数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者‘0X’(取决于用的是‘x’还是'X') |
0 | 显示的数字前面填充‘0’而不是默认的空格 |
% | ‘%%’输出一个单一的‘%’ |
(var) | 映射变量(字典参数) |
m.n | m是显示的最小总宽度,n是小数点后的位数,(如果可用的话) |
字符串类型内建方法
方法 | 描述 |
---|---|
string.capitalize() | 把字符串的第一个字符串大写 |
string.center(windth) | 返回一个原字符串居中,并使用空格填充至长度width的新字符串 |
string.count(str,beg=0,end=len(string)) | 返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数 |
string.decode(encoding='UTF-8',ERRORS='STRICT') | 以dncoding指定的编码格式解码string,如果出错默认报yigeValueError的异常,除非errors指定的是‘ignore’或者'replace' |
string.decode(encoding='UTF-8',ERRORS='STRICT')a | 以coding指定的编码格式解码string,如果出错默认报yigeValueError的异常,除非errors指定的是‘ignore’或者'replace' |
string.endswith(obj,beg=0,end=len(string))b,e | 坚持字符串是否以obj结束,如果beg或者end制定范围,则坚持是否半酣在制定范围内,如果是返回开始的索引值,否者返回-1 |
string.expandtabs(tabsize=8) | 把字符串string中的tab符号转为空壳,默认的空格数,tabsize是8 |
string.find(str,beg=0,en=len(string)) | 检测str是否包含在string中,如果beg和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 |
string.index(str,beg=0,end=len(string)) | 跟find一样,只不过如果str不在string中会报一个异常 |
string.isalnum() a,b,c | 如果string至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False |
string.isalpha() a,b,c | 如果string至少有一个字符并且所有字符都是字母则返回True,否则返回False |
string.isdecimal() b,c,d | 如果string只包含十进制数字则返回True,否则返回False |
string.isdigit()b,c | 如果string只包含数字则返回True,否则返回False |
string.islower()b,c | 如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False |
string.isnumeric()b,c,d | 如果string中只包含数字字符,则返回True,否则返回False |
string.isspace()b,c | 如果string只包含空格,则返回True,否则返回Flase |
string.istitle()b,c | 如果string是标题化(见title())则返回True,否则返回False |
string.isupper()b,c | 如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写de)字符都是大写,则返回True,否则返回False |
string.join(seq) | 以string作为分隔符,将seq中所有的元素,(字符串表示)合并为一个新的字符串 |
string.ljust(windth) | 返回一个原字符串左对齐,并使用空格填充至长度width的新字符串 |
string.lower() | 转换string中所有大小写为小写 |
string.lstrip() | 截掉string左边的空格 |
string.parititle(str)e | 有点像find()和split()的结合体,从str出现的第一个位置起,把字符串string分成一个3元组,(string_pre_str,str,string_post_str),如果string中不包含str则string_pre_str==string |
string.replace(str1,str2,num=stringcount(str1)) | 把string中str1替换成str2,如果num指定,则替换不超过num次 |
string.rfind(str,beg=0,end=len(string)) | 类似于find()函数,不过是从右边开始查找 |
string.rindex(str,beg=0,end=len(string)) | 类似于index()函数,不过从右边开始查找 |
string.rjust(windth) | 返回一个原字符串右对齐,并使用空格填充至长度width的新字符串 |
string.rpartition(str)e | 类似于partition()函数,不过是从右边开始查找 |
string.rstrip() | 删除string字符串未尾的空格 |
string.split(str="",num=string.count(str)) | 以str为分割符切片string,如果num有指定值,则仅分割num个子字符串 |
string.splitlines(num=string.count('\n'))b,c | 按照行分隔,返回一个包含各行作为元素的列表,如果num指定则仅切片num行 |
string.startswith(obj,beg=0,end=len(string))b,e | 检查字符串是否以obj开头,是则返回True,否则返回False,如果beg和end指定值,则在指定范围内检查 |
string.strip([str]) | 在string上执行lstrip()he rstrip() |
string.swapcase() | 翻转string中的大小写 |
string.title()b,c | 返回标题化,的string,就是说所有单词都是以大写开始,其余字母均为小写(见istitle()) |
string.translate(str,del="") | 根据str给出的变(包含256个字符)转换string的字符,要过滤掉的字符放到del参数中 |
string.upper() | 转换string中所有大小的字符为大写 |
string.zfill(width) | 返回长度为width的字符串,原字符串string右对齐,前面填充0 |
字符串模板(Template)
from string import Template
s = Template("There art $howmany $lang Quotation Symbols");
print(s.substitute(lang='Python',howmany=3));
字符串内建函数
cmp():内建cmp()函数是根据字符串的ASCII码值进行比较
str1="abc";
str2="lmn";
str3="xyz";
cmp(str1,str2);
输出:-11
cmp(str3,str1);
输出:23;
cmp(str2,'lmn");
输出:0
len();内建函数len()返回字符串的字符数量
str1="abc";
len(str1);
输出:3
len("hello world!");
输出:12
max and min():根据ASCII码值返回字符串最大和最小的字符
min("ab12cd");
输出:1
min("AB12CD");
输出:1
min("ABCDEFG");
输出:A
enumerate():
s="foobar";
for i ,t in enumerate(s):
print(i,t);
输出:
0 f
1 o
2 o
3 b
4 a
5 r
zip():
s,t= "foa" , "obr";
zip(s,t);
输出:[('f','o'),('o','b'),('a','r')]
chr():该函数用一个范围在256以内的整数作为参数,返回一个对应的字符,
chr(65);
输出:'A'
unichr():跟chr()函数一样,不同的是返回的是Unicode字符
unichr(123456);
输出:u'\u3039'
ord():该函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符串(长度为1)的字符串作为参数,返回对于的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python的定义范围,则会引发一个TypeError的异常
ord('a');
输出:97
ord(u'\ufffff');
输出:
Traceback (most recent call last):
File "<stdin>,line 1 ,in ?
ord('u\ufffff')
TypeError:ord() expected a character, but string of length 2 found