函数
Posted 高文欣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数相关的知识,希望对你有一定的参考价值。
内置函数小结
内建函数,Python内置的函数(build in function),不需要引用其他包,一般成为BIF
abs()
计算绝对值,abs(-10),接收number,返回一个number
max()
求序列的的最大值(可迭代的),同时也可以比较一些数字
min()
求序列的最小值(可迭代的),同时也可以比较一些数字
len()
求序列的长度,(字典也可以,求index的个数)
divmod(x,y)
求x,y的商和余数,存放在元组中
pow(x,y,z)
求x的y次方,如果有第三个参数,那么把前面的结果和第三个参数求余
round(number)
用来四折五入,后面可以跟精度(先把number编程浮点数,然后看保留几位)
例子:
把12.45转换成float,那么就不是12.45了,而可能是12.4999999了
callable()
判断一个对象是否是可调用的,比如函数,类都是可以调用的,但是变量无法调用
type()
查看对象的类型
isinstance(对象,类型)
判断一个对象是否是给定类型。类型可以是多个,只要是其中1个即可(类型1,类型2)
a=‘213‘
isinstance(a,str)
返回True
cmp(x,y)
比较两个对象的大小,x大于y返回1,x等于y返回-1,x小于y返回-1,字符串也可以比较,是按单个字符的大小开始比对。
str()
可以把任何数据转换成字符串(字典,元组,也会直接输出)
hex(10)
把10进制转换为8进制
eval()
把字符串当做一个有效的表达式来求值
eval(‘1+2‘) 返回3
eval("[1,2,3]") 返回[1,2,3]
oct()
把10进制转换为8进制
chr(i)
i的范围是0~255,求i对应的acsii码值
ord(i)
i的范围是ascii的值,求对应的值
字符串处理的相关函数(方法)
a.capitalize()
对字符串a进行首字母大写,首字母是数字则不变
a.replace(old,new,[count])
把旧的字符串,替换为新的字符串,count 可以去指定替换几次
a.split(分隔符,[切几次])
把字符串进行分隔,返回的是一个列表,默认是空格或tab键分隔(有几个空格无所谓,全都当成1个)
分隔符.join(可迭代的对象)
返回一个字符串,把可迭代的对象转连接成字符串,用分隔符来分隔
string模块,需要导入string模块(import string)
string.lowercase
string.uppercase
打印所有的大小写的字母
string.capitalize(‘hello‘)
把第一个字符串替换为大写
string.replce(‘hello‘,‘l‘,‘a‘)
把hello中的,l替换为a
filter(函数或空,序列)
用来过滤,把序列的每一个元素,交给函数来处理。如果为None,则什么也不做,直接输出(序列),如果有函数,那么只有函数的返回值为True才打印序列中的元素
例子:
def even(n):
if n % 2 == 0:
return True
filter(even,xrange(10))
[0, 2, 4, 6, 8]
高级写法:
filter(lambda x: x%2 ==0,xrange(10)
zip(seq1,seq2,seqN...)
把seq1和seq2组合成1个大的列表,每个序列取1个组成元组,存放在整合后的列表中,如果序列的长度不同,那么就以最小的序列的长度为基准。
map(func,seq1,seq2)
返回也是一个列表,func可以是一个函数也可以是个None,如果为None,那么返回的列表长度以当前最长列表为基准,依旧是依次去每个列表中去取,只不过没有的,用none补充
例子:
l1 = [1, 2, 3]
l2 = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
l3 = [‘I‘, ‘II‘, ‘III‘, ‘IV‘, ‘V‘, ‘VI‘]
map(None,l1,l2,l3)
[(1, ‘a‘, ‘I‘),
(2, ‘b‘, ‘II‘),
(3, ‘c‘, ‘III‘),
(None, ‘d‘, ‘IV‘),
(None, None, ‘V‘),
(None, None, ‘VI‘)]
如果函数位上是一个函数,那么如果只有1列表,那么就需要这个函数定义1个参数,然后每次把列表中的1个元素交给函数进行处理,并打印
如果需要处理两个序列,那么函数就必须定义2个参数,去接受这两个序列的元素。
高级应用:
map(lambda x,y:x+y,l1,l4)
reduce(func,seq)
只能定义1个序列,然后传递给func进行处理。(lambda函数求累加)
以上是关于函数的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 中创建构造函数的代码片段或快捷方式