2.0/2.1/2.2/2.3/2.4 内建函数
内建函数也叫内置函数 Python自带的函数可以处理单个小问题 在python shell中我们可以同help()来查看内置函数的用法
官网内置函数地址 https://docs.python.org/2.7/library/functions.html
常用内置函数 | 作用 |
---|---|
abs(number) | 求数字的绝对值 |
max(iterable) | 求最大值 |
min(iterable) | 求最小值 |
len(object) | 求序列或者字典的长度 返回整型 |
divmod(x, y) | 求两个数的商 余数 返回元祖 |
pow(x, y[, z]) | 两个数时求 x的y平方 三个数时求 x^y %z 返回整型 |
round(number[, ndigits]) | 四舍五入 ndigits是保留小数点后几位 默认是0 返回浮点型 |
callable(object) | 判断对象(函数,类)是否可调用 返回布尔值 |
type(object) | 查看对象的类型 |
isinstance(object, class-or-type-or-tuple) | 判断对象和后面参数是否是同一类型 返回布尔值 |
cmp(x, y) | 比较两个对象的大小 返回整型 0表示相等 1表示左边大 -1表示右边大 |
range([i], j,[k]) | 创建一个整数的列表 i开始值 j结束值后一位 k跨度(负数表向左) |
xrange([i], j,[k]) | 创建一个整数的列表 和range用法一样 但它返回xrange对象 遍历时才释放列表 |
abs()
1 | In [10]: abs(-10) ##求-10的绝对值 |
max()
1 | In [13]: max('a12135') ##'a'是序列中的最大值 |
min()
1 | In [14]: min('a12135') ##'1'是序列中的最小值 |
len()
1 | In [19]: len({'a':1,'b':2}) ##求字典的长度 |
divmod(x ,y)
1 | In [22]: divmod(5,2) ##5/2 商是2 余1 |
pow(x, y[, z])
1 | In [24]: pow(2,3) ##2的3次方 |
round()
1 | In [27]: round(11.1212 ,2) ##小数点后保留两位 |
callable()
1 | In [3]: a='asdf' |
type()
1 | In [10]: type('asd') |
isinstance()
1 | In [17]: isinstance('asdf',str) |
cmp()
1 | In [30]: cmp(1, 10) |
range()
1 | In [35]: range(11) ##0-10的序列 |
xrange()
通常使用xrange更多,节省内存1
2
3
4
5In [19]: xrange(10)
Out[19]: xrange(10)
In [21]: for i in xrange(10):print i,
0 1 2 3 4 5 6 7 8 9
类型转换内置函数 | 作用 |
---|---|
int() | 转换为整型 |
long() | 转换为长整型 |
float() | 转换为浮点型 |
complex() | 转换为复数型 |
str() | 转换为字符串 |
list() | 转换为列表 |
tuple() | 转换为元祖 |
hex() | 数字转换为十六进制 返回字符串 |
oct() | 数字转换为八进制 返回字符串 |
eval() | 执行一个字符串表达式,并返回表达式的值。 |
chr() | 输入0-255 并返回对应的ascii码 |
ord() | 和chr()相反 输入单个字符返回对应的数值 |
int()
1 | In [53]: int('1212') |
long()
1 | In [56]: long('1212') |
float()
1 | In [58]: float('1212') |
complex()
1 | In [61]: complex('1212') |
str()
1 | In [64]: str({'a':1,'b':1}) |
list()
1 | In [67]: list('abc') |
tuple()
1 | In [71]: tuple('abc') |
hex()
1 | In [80]: hex(22) |
oct()
1 | In [83]: oct(22L) |
eval()
1 | In [92]: eval(hex(10)) ##把字符串'0xa'转化为值10 |
chr()
1 | In [105]: chr(65) |
ord()
1 | In [108]: ord('a') |
字符串的方法 | 作用 |
---|---|
S.capitalize() | 首字母大写 |
S.replace(old, new[, count]) | 新的字符串替换旧的 count指替换的次数 |
S.split([sep [,maxsplit]]) | 切割字符串 返回列表 默认空格是切割符 sep指定切割符 maxsplit切割次数 |
S.join(iterable) | 用S连接可迭代对象 返回字符串 一般把元祖和列表合为字符串 |
S.isupper() | 判断是否全大写 返回布尔值 |
S.islower() | 判断是否全大写 返回布尔值 |
S.isalnum() | 判断字符串是否由字母和数字组成 返回布尔值 |
S.isalpha() | 判断字符串是否由字母组成 返回布尔值 |
S.isdigit() | 判断字符串是否由数字组成 返回布尔值 |
S.isspace() | 判断字符串是否由纯空格组成 返回布尔值 |
S.title() | 判断字符串只有首字母大写 返回布尔值 |
S.center(width[, fillchar]) | 居中 width表示总长度 fillchar表示填充物 |
S.count(sub[, start[, end]]) | 统计指定字符串次数 sub指定字符串 start end搜索范围 指定下标 |
S.strip([chars]) | 去除两边空格 |
S.lstrip([chars]) | 去除左边空格 |
S.rstrip([chars]) | 去除右边空格 |
S.startswith(prefix[, start[, end]]) | 判断字符串是否以指定的字符串开头 返回布尔值 |
S.endswith(suffix[, start[, end]]) | 判断字符串是否以指定的字符串结尾 返回布尔值 |
S.capitalize()
1 | In [126]: s = 'hello' |
S.replace()
1 | In [130]: s.replace('l','L') ##L替换l |
S.split()
1 | In [134]: s = 'aasdf aa b' |
S.join()
1 | In [141]: s = 'abc' |
string模块 也有类似的功能1
2
3
4
5
6
7
8
9
10In [164]: import string ##导入模块
In [165]: string.lowercase ##创建私有小写字母
Out[165]: 'abcdefghijklmnopqrstuvwxyz'
In [166]: string.uppercase ##创建私有大写字母
Out[166]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
In [168]: string.replace('asdfffd','d','D') ##替换
Out[168]: 'asDfffD'
S.isupper()
1 | In [19]: s= 'ABC' |
S.islower()
1 | In [24]: s.islower() ##判断是否全小写 |
S.isalnum()
1 | In [26]: s = 'asdf1213' |
S.isalpha()
1 | In [31]: s = 'asdf' |
S.isdigit()
1 | In [31]: s = 'asdf' |
S.isspace()
1 | In [38]: s = ' ' |
S.title()
1 | In [41]: s = 'ABC' |
S.strip() / S.lstrip() / S.rstrip()
1 | In [76]: s = ' ABC ' |
S.startswith() / S.endswith()
1 | In [89]: s = 'asdfsdfsd' |
S.center()
1 | In [62]: s.center(9, '*') ##居中 字符串总长度是9 用*填充 |
S.count()
1 | In [64]: s = 'abcea' |
序列处理函数 | 作用 |
---|---|
len() | 求长度 |
max() | 求最大值 |
min() | 求最小值 |
zip(seq1 [, seq2 […]]) | 合并序列 序列中的元素一一对应 |
filter(function or None, sequence) | 通过函数过滤序列 None不过滤 |
map(function, sequence[, sequence, …]) | 各序列传参到函数中处理 参数和序列数量要一致 |
reduce(function, sequence[, initial]) | 遍历把序列sequence的元素并通过函数function(只能带两个参数)进行处理 |
zip()
1 | In [174]: l1 = [1,2,3] |
filter()
1 | In [170]: def f(x): ##判断偶数的函数 |
map()
1 | In [186]: def f(x,y): 函数中有两个参数 |
reduce()
1 | In [194]: def f(x,y): |
总结
filter
map
reduce
都可以通过匿名函数来处理序列filter
单参数的函数 单序列 返回序列map
多参数的函数 多序列 返回列表reduce
两个参数的函数 单序列 返回值
列表表达式
列表表达式也叫列表重写,返回列表
语法格式
1 | [变量 for 变量 in 表达式 代码块] |
1 | In [201]: [i for i in range(1,11) if i % 2 == 0 ] |