函数

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 中创建构造函数的代码片段或快捷方式

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

web代码片段

C#常用代码片段备忘

php 一个自定义的try..catch包装器代码片段,用于执行模型函数,使其成为一个单行函数调用