现在的位置: 首页 > 综合 > 正文

Python 一些函数介绍

2018年04月30日 ⁄ 综合 ⁄ 共 4534字 ⁄ 字号 评论关闭
 [Python]函数 abs(number) 返回数字number的绝对值。参数可以为一个普通整数或长整数或一个浮点数。如果参数是一个复数,则返回它的量值。 chr(integer) 返回一个字符,这个字符的ASCII 代码是参数integer。例如,chr(97)返回字符a。相反的函数为ord()。参数必需在0 至 255范围内,如果integer 超出了那个范围就引发一个ValueError? 错误。 DateTime?() 返回一个已知构造参数的Zope DateTime?对象。有关构造参数的更多信息请参见“API参考”中的“DateTime?类”部分。 divmod(number, number) 采用两个数字作为参数并在使用长除法时返回一对由它们的商和余数组成的数字。对于混合操作数类型,应用二进制算法操作符规则。对于普通和长整数,结果等同于(a / b, a % b)。对于浮点数,结果是 (q, a % b),其中q是math.floor(a / b),然而,它可能会是1,小于那个数。在任何情况中,q * b + a % b 非常接近a。如果a % b是非0,它有和b相同的符号并且0 <= abs(a % b) < abs(b)。 float(number) 把一个字符串或一个数字转换成浮点数。如果参数是一个字符串,它必需包含一个可能带有符号的小数或者浮点数,可嵌入空格;它的作用等同于string.atof(number)。另外,参数可以是一个普通整数或长整数或者一个浮点数,如果是浮点数,返回相同的值(在Python的浮点精度以内)。 getattr(object, string) 返回对象的指定的属性的值。名称必需为一个字符串。如果string是对象中的某个属性的名称,结果就是那个属性的值。例如,getattr(x, "foobar")等同于x.foobar。如果指定的属性不存在,提供了默认值就返回默认值,否则就引发一个AttributeError? 错误。 getitem(variable, render=0) 返回一个DTML变量的值。如果render 为真,就运行变量。参见render 函数。 hasattr(object, string) 参数是一个对象和一个字符串。如果这个字符串是对象的某个属性的名称,结果为1,否则结果为0。(这是通过调用getattr(object, name) 和查看它是否引发一个例外来实现的。) hash(object) 返回对象的散列值(如果它有的话)。散列值是整数。它们用于在一个字典查找期间内快速比较字典键。相等的数字值有相同的散列值(即使它们属于不同的类型,例如1和1.0)。 has_key(variable) 如果DTML名称空间包含variable则返回真。 hex(integer) 把一个整数(任意大小)转换成十六进制的字符。结果是一个有效的Python表达式。注意:这常常产生一个无符号的文字。例如在32-bit 机器上,hex(-1) 结果为0xffffffff。当在一个机器上使用相同的单词大小求值时,这个文字认为是-1;对于不同的单词大小,它可能会变成大的正数或引发一个OverflowError? 例外。 int(number) 把一个字符串或数字转换成一个普通整数。如果参数是一个字符串,它必须包含一个可能带有符号的十进制数字,这个数字可以作为一个Python整数提供,并且有可能嵌入空格。这个行为等同于 'string.atoi(number,)’ 。radix 参数给出了转换的基数,可以是2到36 范围内的任何整数。如果指定了radix并且number不是一个字符串,引发一个 TypeError? 错误。另外,参数可以是一个普通整数或长整数或浮点数。浮点数转换成整数按照 C 语言的方法来定义;通常,转换是把小数点后面数字截取为零。 len(sequence) 返回对象的长度(数据项的数量)。参数可以为一个序列(字符串,元组或列表)或一个映射(字典)。 max(s) s 参数唯一时返回非空序列(例如,一个字符串,元组或列表)中的最大项。当有多个参数,它返回参数中的最大一个。 min(s) s 参数唯一时返回非空序列(例如,一个字符串,元组或列表)中的最小项。当有多个参数时,它返回参数中的最小一个。 namespace([name=value]?...) 返回一个新的DTML名称空间对象。关键字参数name=value 对被加入到新的名称空间中。 oct(integer) 把一个整数(任意大小)转换成八进制字符。结果是一个有效的Python表达式。注意:这总是生成一个无正负符号的文字。例如,在一个32-bit 机器上, oct(-1) 生成037777777777。当在一个具有相同单词大小的机器上求值时,这个文字结果为-1;对于一个不同的单词大小,它可能生成一个大整数或引发一个OverflowError? 例外。 ord(character) 返回某个字符的ASCII 值。例如,ord("a") 返回整数97 。相反的函数为chr() 。 pow(x, y [,z]?) 返回x的y次方。如果提供了z,它首先求x的y方,再对z求余,返回结果(执行效率高于 pow(x, y) % z)。参数必须为数字类型。对于混合操作数类型,应用二进制算法操作符规则。有效的操作数类型也是结果的类型,如果结果不表现为这种类型,函数引发一个例外,例如pow(2, -1) 或 pow(2, 35000)是不允许的。 range([start,]? stop [,step]?) 这是一个用于创建含有算术级数的列表的通用函数。参数必需为普通整数。如果step 参数忽略,默认为1。如果start 参数忽略,默认为0。返回的完整形式是一个普通整数列表 sstart, start + step, start + 2 * step,。如果step 是正数,最后一个元素是小于stop的最大start + i step ;如果step 是一个负数,最后一个元素是大于stop的最大start + i step 。step 不能为0(否则引发一个ValueError? 错误)。 round(x [,n]?) 返回x被四舍五入后的浮点值,它截至小数点后n位。如果n忽略,它默认为零。结果是一个浮点数。值被四舍五入到最接近的10的负n次幂处的倍数;如果两个倍数一样近,四舍五入选择远离0的那个(例如,round (0.5)为1.0 ,round (-0.5) 为-1.0) 。 render(object) 运行对象。对于DTML 对象,它使用当前的名称空间对DTML求值。对于其他对象,它等同于str(object) 。 reorder(s [,with]? [,without]?) 对s中的数据项根据在with中给定的顺序重新排序,不包括在without中提到的数据项。s中没有在with中提到的数据项被删除。s、with和without都是字符序列或键值元组序列,对键进行排序。这个函数对于构建有序的选择列表是有用的。 SecurityCalledByExecutable?() 如果当前的对象(例如DTML文档或方法)由一个可执行对象(例如其它的DTML文档或方法,脚本或SQL方法)调用则返回真。 SecurityCheckPermission?(permission, object) 检查指定对象是否关联有指定的许可。例如SecurityCheckPermission?("Add Documents, Images, and Files", this()),如果当前的用户被授权能够在当前位置中创建文档、图像和文件,这个函数将返回真。 SecurityGetUser?() 返回当前用户对象。通常,它等同于REQUEST.AUTHENTICATED_USER 对象。然而,AUTHENTICATED_USER对象是不安全的,这是因为它可以被替换。 SecurityValidate?([object]? [,parent]? [,name]? [,value]?) 如果当前用户可以访问value则返回真。object 是被访问的变量所在的对象,parent 是变量的容器,name 是用于访问变量的名称(例如,如果它通过getattr获得)。你可以忽略其中的一些参数。最好提供所有的参数。 SecurityValidateValue?(object) 如果当前用户可访问object则返回真。这个函数等同于调用SecurityValidate?(None, None, None, object) 。 str(object) 返回一个包含一个适当的可打印出来的表示对象的字符串。对于字符串,它返回字符串本身。 test(condition, result ,condition,... [,default]?) 对一对或多对 condition, result 进行测试并返回第一个条件为真的的结果。只返回一个结果,即使有多个条件为真。如果没有条件为真并且给定默认值,那么就返回默认值。如果没有条件为真并且没有默认值,返回None 。 几个有意思的Python函数不是很熟悉函数化的编程风格但是在有些时候,运用这样的编程方法可以让原本很复杂的程序变得十分简单 python里面就提供了与此相关的几个函数 map() map(func, list, …) 相当于[func(l) for l in list] 对列表中每一个元素调用func,并且接受多个列表作为参数:map(func, list_1, list_2, …) 相当于func(list_1[i], list_2[i]) 对不足的元素用None代替 apply() apply(func, args, [keyword]) 在2.3以后已经可以用这样的代码代替func(*args, **keyword) 作用也就很明显了如果有一个参数列表如果直接使用func(arg_list)只穿给func一个object 而如果使用func(*arg_list)的形式,则可以将列表中所有的参数一一传递给func zip() zip([iterable, …]) 用法比较独特,用一个例子说明一下吧 a = (11,12,13) b = (21,22,23) x, y, z = zip(a, b) # x = (11, 21) # y = (12, 22) # z = (13, 23) 你可以将(a, b)看作一个二维数组则zip(a, b)就是将这个数组反置得到(x, y, z) 如果没有zip()…. x, y, z = [(i, j) for i in a for j in b] 效率当然没法和zip()相比了而且,要是我要加入c, d, e, f……. 在使用zip()时也有一个技巧如果 ab = (a, b) 则 zip(*ab) 等同于 zip(a, b) reduce() reduce(func, list, initial) 让func根据list的元素顺序对其中元素进行求值, 并将结果用于与下一元素的求值: list1 = func(list[0], list[1]) list2 = func(list1, list[2]) … 如果定义了initial,则第一次将首先运算 func(initial, list[0]) filter() filter(func, list) func对list一一求值 filter()返回func求值结果为True的元素list

抱歉!评论已关闭.