(转)论python工厂函数与内建函数

所谓工厂函数就是指这些内建函数都是类对象, 当你调用它们时,实际上是创建了一个类实例。

工厂函数:

int(),long(),float(),complex(),bool()

str(),unicode(),basestring()

list(),tuple():生成列表或者元组

type():查看类型

dict():生成一个字典

set():   生产可变集合

frozenset():生成不可变集合

object()

classmethod():声明一个类方法

staticmethod():声明一个静态方法

super():     指此类的父类

property()

file()

数字类型内建函数:

功能内建函数:

应用于所有数值类型的内建函数abs(), coerce(), divmod(), pow()和 round(),

仅适用于整数的内建函数:这种函数分两类:

一类用于进制转换:oct()八进制转换,hex()十六进制转换。

>>> hex(255)

‘0xff‘

>>> oct(255)

‘0377‘

>>> oct(23094823l)

‘0130063047L‘

>>> oct(65535*2)

‘0377776‘

一类用于ASCII 转换:。每个字符对应一个唯一的整数(0-255)。

chr(num)        将ASCII值的数字转换成ASCII字符,范围只能是0<= num <= 255。

ord(chr)        接受一个 ASCII 或 Unicode字符(长度为1的字符串),返回相应的ASCII或Unicode 值。

unichr(num)     接受Unicode码值,返回其对应的Unicode字符。所接受的码值范围依赖于你的Python是构建于UCS‐2还是UCS‐4。

>>> ord(‘a‘)

97

>>> ord(‘A‘)

65

>>> ord(‘0‘)

48

字符串内建函数

方法描述

string.capitalize()                         把字符串的第一个字符大写

string.center(width)                        返回一个原字符串居中,并使用空格填充至长度width 的新字符串

string.count(str, beg=0,end=len(string))    返回str在string 里面出现的次数,如果beg 或者end 指定则返回指定范围内str出现的次数

string.decode(encoding=‘UTF- 8‘,errors=‘strict‘) 以encoding 指定的编码格式解码string,如果出错默认报一个ValueError的异常, 除非errors 指定的是‘ignore‘或者‘replace‘

string.encode(encoding=‘UTF- 8‘,errors=‘strict‘) 以encoding 指定的编码格式编码string,如果出错默认报一个ValueError的异常,除非 errors 指定的是‘ignore‘或者‘replace‘

string.endswith(obj, beg=0,end=len(string))     检查字符串是否以obj 结束,如果beg 或者end指定则检查指定的范围内是否以obj 结束, 如果是,返回True,否则返回False.

string.expandtabs(tabsize=8)                 把字符串string中的tab 符号转为空格,默认的空格数tabsize 是8.

string.find(str, beg=0,end=len(string))        检测str是否包含在string 中,如果beg 和end 指定范围,则检查是否包含在指定范围内,                                        如果是返回开始的索引值,否则返回-1

string.index(str, beg=0,end=len(string))      跟find()方法一样,只不过如果str 不在string 中会报一个异常.

string.isalnum()                           如果string至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False

string.isalpha()                           如果string至少有一个字符并且所有字符都是字母则返回True,否则返回False

string.isdecimal()                             如果string只包含十进制数字则返回True 否则返回False.

string.isdigit()                            如果string 只包含数字则返回True否则返回False.

string.islower()                           如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False

string.isnumeric()                         如果string 中只包含数字字符,则返回True,否则返回False

string.isspace()                          如果string 中只包含空格,则返回True,否则返回False.

string.istitle()                          如果string 是标题化的(见title())则返回True,否则返回False

string.isupper()                          如果string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False

string.join(seq) Merges (concatenates)        以string作为分隔符,将seq 中所有的元素(的字符串表示)合并为一个新的字符串

string.ljust(width)                       返回一个原字符串左对齐,并使用空格填充至长度width 的新字符串

string.lower()                            转换string 中所有大写字符为小写.

string.lstrip()                           截掉string 左边的空格

string.partition(str)                    有点像find()和split()的结合体,从str 出现的第一个位置起,把字符串string分成一个3 元素的元组(string_pre_str,str,string_post_str),如果string 中不包含str则string_pre_str ==string.

string.replace(str1, str2,num=string.count(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(width)                              返回一个原字符串右对齐,并使用空格填充至长度width 的新字符串

string.rpartition(str)                           类似于partition()函数,不过是从右边开始查找.

string.rstrip()                                   删除string字符串末尾的空格.

string.split(str="", num=string.count(str))            以str为分隔符切片string,如果num有指定值,则仅分隔num 个子字符串

string.splitlines(num=string.count(‘\n‘))             按照行分隔,返回一个包含各行作为元素的列表,如果num 指定则仅切片num 个行.

string.startswith(obj, beg=0,end=len(string))             检查字符串是否是以obj开头,是则返回True,否则返回False。如果beg 和             end 指定值,则在指定范围内检查

string.strip([obj])                                   在string上执行lstrip()和rstrip()

string.swapcase()                                     翻转string 中的大小写

string.title()                                    返回"标题化"的string,就是说所有单词都是以大写开始,其余字母均为小写(见istitle())

string.translate(str, del="")                   根据str 给出的表(包含256 个字符)转换string 的字符,要过滤掉的字符放到del参数中

string.upper()                                转换string 中的小写字母为大写

string.zfill(width)                           返回长度为width 的字符串,原字符串string右对齐,前面填充0

列表类型内建函数:

List Method Operation

list.append(obj) 向列表中添加一个对象obj

list.count(obj) 返回一个对象obj 在列表中出现的次数

list.extend(seq)a 把序列seq 的内容添加到列表中

list.index(obj, i=0,

j=len(list)) 返回list  == obj 的k 值,并且k 的范围在 i<=k

引发ValueError 异常.

list.insert(index, obj) 在索引量为index 的位置插入对象obj.

list.pop(index=-1)a 删除并返回指定位置的对象,默认是最后一个对象

list.remove(obj) 从列表中删除对象obj

list.reverse() 原地翻转列表

list.sort(func=None,key=None,reverse=False)b以指定的方式排序列表中的成员,如果func 和key 参数指定,

则按照指定的方式比较各个元素,如果reverse 标志被置为

True,则列表以反序排列.

元组没有内建函数。

映射类型内建函数:

cmp():     字典的比较,先比较长度,在比较键,在比较字典的值

len():。   对字典调用len(),它会返回所有元素(键-值对)的数目:

hash():   内建函数hash()本身并不是为字典设计的方法,但它可以判断某个对象是否可以做一个字典的键。将一个对象作为参数传递给hash(),

会返回这个对象的哈希值。只有这个对象是可哈希的,才可作为字典的键 (函数的返回值是整数,不产生错误或异常)。

时间: 2024-08-11 09:52:12

(转)论python工厂函数与内建函数的相关文章

Python工厂函数与内建函数

http://www.cnblogs.com/BeginMan/p/3160044.html 工厂函数:实质上它们是类,当你在调用它们时,实际上生成了该类的一个实例,就像工厂生产货物一样(20个) int().long().float().complex().str().unicode().basestring().list().tuple().type()dict().bool().set().frozenset().object().classmethod().staticmethod().

namedtuple工厂函数,创造一个像实例对象的元祖(感觉到了Python的奇妙与可爱之处)。

发现了namedtuple将大大的方便对象实例化的过程,底层我觉的应该应用了描述符的相关指令__set__,__get__,__delete__等等,深的不讲了,我给自己记号一下如何把这个函数用好. 基本概念 namedtuple是一个 工厂函数,定义在python标准库的collections模块中,使用此函数可以创建一个可读性更强的元组 namedtuple函数所创建(返回)的是一个 元组的子类(python中基本数据类型都是类,且可以在buildins模块中找到) namedtuple函数

#python#将函数赋值给变量时的一些问题

见过两种函数赋值给变量的形式,一种是 a=f 另一种是 a=f() 这两种形式是有区别的,分别总结一下. 1.a=f型属于将变量指向函数. 用代码验证一下: >>> f = abs >>> f(-10) 10 说明变量f现在已经指向了abs函数本身.直接调用abs()函数和调用变量f()完全相同.这是廖雪峰老师python教程上的例子,现在调用f()和调用abs()是一样的了. 再举一个工厂函数的例子: def maker(N): def action(X): retu

Python 的函数

Python 函数: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数: 定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于

python的函数

一 函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定

Python基础篇【第2篇】: Python自定义函数

Python函数 1. 函数定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 2. 定义 函数代码块以def关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明. 函数内容以冒号起始,并且缩进. R

python学习 函数

# -*- config=utf-8 -*- #################################### 函数 ################################## def func_02(a,b):# a b :形式参数 if a>b: print("a 大于 b") else: print("b大于等于a"); func_02(2,4);# 2 4 :实际参数 #################################

从C#到Python —— 3 函数及函数编程

在C#中没有独立的函数存在,只有类的(动态或静态)方法这一概念,它指的是类中用于执行计算或其它行为的成员.在Python中,你可以使用类似C#的方式定义类的动态或静态成员方法,因为它与C#一样支持完全的面向对象编程.你也可以用过程式编程的方式来编写Python程序,这时Python中的函数与类可以没有任何关系,类似C语言定义和使用函数的方式.此外,Python还支持函数式编程,虽然它对函数式编程的支持不如LISP等语言那样完备,但适当使用还是可以提高我们工作的效率. 本章主要介绍在过程编程模式下

python 基础--函数

Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于