• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

hbnn

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

python的内建函数的学习(一部分,并不是全部)

python的内建函数时相当方便,相当有用了,那是杠杠滴!!!

现在就把我所学的,在我理解的范围内记录下来,如果有不足或者错误之处,望发现的同仁及时之处哈!

python的内建函数主要有以下内容( Copied  from www.python.org):

  Built-in Functions  
abs() divmod() input() open() staticmethod()
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reversed() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set() apply()
delattr() help() next() setattr() buffer()
dict() hex() object() slice() coerce()
dir() id() oct() sorted()

intern()

大约是80个内建函数,各自在不同的地方发挥重要作用。

在说内建函数时,一定要说python的数据类型,因为内建函数是针对不同数据类型的,有些函数在某一个数据类型中作用不大,但在其他的数据类型中可能有巨大作用。

python的标准类型包括:整型,长整型,浮点型,复数型,布尔型,字符串,列表,元祖,字典。简单点说,就是数值,字符串,序列,元祖,字典。

 

通用的内建函数:type(obj)返回obj的类型

                      str(obj)将obj转换为字符串

                      cmp(x,y)比较x和y, x>y 返回1,反正,返回-1,相等返回0。

Note:说他们通用是因为可以应用到所有的数据类型,可以将字符串转换为数字。Eg:cmp(0xAF,175),result:0

现在对不同类型的内建函数分别进行记录(不全哈)。

 

一、数值类型

1.complex(m[,n])是将整数变成复数。如果没有参数n,复数部分的幅度为0
         complex(4)----4+0j
         complex(4,3)----4+3j
2.divmod(m,n)返回带有商和余数的元祖。
         divmod(5,3) result:(1,2)
3.pow(x,y,z),如果第三个参数不存在,就是x,y进行指数运算,相当于x**y;如果第三个参数存在,那么前两个参数进行指数运算后,再与第三个参数进行取余运算.
        pow(2,3) result:8
        pow(2,3,5)  result:3
4.round(obj),如果不带其他参数,那么就返回一个接近obj的整数,但返回值是浮点数形式,这个整数遵循四舍五入(注意这个概念,round(-0.5)---(result:-1)。比如得到3,返回值就是3.0;如果带有参数,就截取指定位数的小数。
      round(2.345454,1) result:2.3
      round(2.5)   result:3
       
5、int()就是直接截取整数,才不屌神马四舍五入的。 int(2.6)  result:2
 
6.math.floor(obj)返回的是最接近原数但小于原数的整数,返回值是浮点数。
Note:说这个主要是与上面的round以及int作比较。
7、abs(obj),得到对象的绝对值,如果obj是一个复数,那么就得到该复数的幅度。
     abs(-1)    result:1
     abs(3+4j):reslut:5.0
可能也注意到了,返回的是浮点数。
下面的几个只适用于整数:
8.hex(num) 将数字转换成十六进制数并以字符串形式返回
     
 1 Hex=hex(23)
 2 print Hex
 3 print type(Hex)
 4 
 5 
 6 
 7 
 8 Result:
 9 
10  0X17
11  <type 'str'>

 

9.oct(num) 将数字转换成八进制数并以字符串形式返回,同上。
 
10.chr(num) 将ASCII值的数字转换成ASCII字符,范围只能是0 <= num <= 255。
 
11、unchir与chr差不多,只不过是返回的是Unicode字符。
 
12、ord(chr) 接受一个ASCII 或 Unicode 字符(长度为1的字符串),返回相应的ASCII
或Unicode 值。就是把chr反过来了。
 

二、字符串

操作字符串的内建函数还是很多滴。

1.enumerate(str)  将字符串str中的值与对应的索引以元祖的方式一并返回。

     Eg:  

for i in enumerate([1,4,2,5,4]):

  print i
输出:
(0, 1)
(1, 4)
(2, 2)
(3, 5)
(4, 4)

2.zip函数是对两个字符串,按位结合成元祖,最后得到序列。

s='abc',t='qwe'
zip(s,t)-------test=[('a','q'),('b','w'),('c','e')]
zip如果不带参数,就返回空列表。
zip如果在参数前*,可以对参数列表解压。
zip(*test)        result:('abc','qwe')

3.raw_input(str),这个函数大家应该是最熟悉的了。

 其他的chr,ord等等上面已做介绍。

Note:

下面是字符串的内建函数并不改变原字符串,只是得到新的字符串。

str='test string built-in-Function'

  1. 字符串长度获取:len(str)
    例:print '%s length=%d' % (str,len(str))
  2. 字母处理
    全部大写:str.upper()                            
    全部小写:str.lower()
    大小写互换:str.swapcase()
    首字母大写,其余小写:str.capitalize()
    首字母大写:str.title()
    print '%s lower=%s' % (str,str.lower())
    print '%s upper=%s' % (str,str.upper())
    print '%s swapcase=%s' % (str,str.swapcase())
    print '%s capitalize=%s' % (str,str.capitalize())
    print '%s title=%s' % (str,str.title())
  3. str.decode(encoding='UTF-8')
    1. 格式化相关
      获取固定长度,右对齐,左边不够用空格补齐:str.ljust(width)
      获取固定长度,左对齐,右边不够用空格补齐:str.ljust(width)
      获取固定长度,中间对齐,两边不够用空格补齐:str.ljust(width)
      获取固定长度,右对齐,左边不足用0补齐
      print '%s ljust=%s' % (str,str.ljust(20))
      print '%s rjust=%s' % (str,str.rjust(20))
      print '%s center=%s' % (str,str.center(20))
      print '%s zfill=%s' % (str,str.zfill(20))

    2. 字符串搜索相关
      搜索指定字符串,没有返回-1:str.find('t')
      指定起始位置搜索:str.find('t',start)
      指定起始及结束位置搜索:str.find('t',start,end)
      从右边开始查找:str.rfind('t')
      搜索到多少个指定字符串:str.count('t')
      上面所有方法都可用index代替,不同的是使用index查找不到会抛异常,而find返回-1
      print '%s find nono=%d' % (str,str.find('nono'))
      print '%s find t=%d' % (str,str.find('t'))
      print '%s find t from %d=%d' % (str,1,str.find('t',1))
      print '%s find t from %d to %d=%d' % (str,1,2,str.find('t',1,2))
      #print '%s index nono ' % (str,str.index('nono',1,2))
      print '%s rfind t=%d' % (str,str.rfind('t'))
      print '%s count t=%d' % (str,str.count('t'))

    3. 字符串替换相关
      替换old为new:str.replace('old','new')
      替换指定次数的old为new:str.replace('old','new',maxReplaceTimes)
      print '%s replace t to *=%s' % (str,str.replace('t', '*'))
      print '%s replace t to *=%s' % (str,str.replace('t', '*',1))

    4. 字符串去空格及去指定字符
      去两边空格:str.strip()
      去左空格:str.lstrip()
      去右空格:str.rstrip()
      去两边字符串:str.strip('d'),相应的也有lstrip,rstrip
      str=' python String function '
      print '%s strip=%s' % (str,str.strip())
      str='python String function'
      print '%s strip=%s' % (str,str.strip('d'))

    5. 按指定字符分割字符串为数组:str.split(' ')
      默认按空格分隔
      str='a b c de'
      print '%s strip=%s' % (str,str.split())
      str='a-b-c-de'
      print '%s strip=%s' % (str,str.split('-'))

    6. 字符串判断相关
      是否以start开头:str.startswith('start')
      是否以end结尾:str.endswith('end')
      是否全为字母或数字:str.isalnum()  至少有一个字符;
      是否全字母:str.isalpha()
      是否全数字:str.isdigit()
      是否全小写:str.islower()
      是否全大写:str.isupper()
      str='python String function'
      print '%s startwith t=%s' % (str,str.startswith('t'))
      print '%s endwith d=%s' % (str,str.endswith('d'))
      print '%s isalnum=%s' % (str,str.isalnum())
      str='pythonStringfunction'
      print '%s isalnum=%s' % (str,str.isalnum())
      print '%s isalpha=%s' % (str,str.isalpha())
      print '%s isupper=%s' % (str,str.isupper())
      print '%s islower=%s' % (str,str.islower())
      print '%s isdigit=%s' % (str,str.isdigit())
      str='3423'
      print '%s isdigit=%s' % (str,str.isdigit())

 三、列表,元祖,字典

列表用[]表示;
元祖用()表示
字典用{}表示
 
列表可以添加、删除等更改,可以实现嵌套。
元祖是补课更改的,创建后不能够添加、删除,也可以嵌套。
列表和元祖都是序列,有序
而字典没有序,通过key查找相应值字典中的值可以使任意一种数据类型,可以使序列,可以使元祖等等
 
1.tuple:可以将其他类型转换为元祖  
2.list:可以将其他类型转换为列表
3.dict字典:可以将其他类型转换为字典。
   dict([('x',1),('y',3)])          {‘x':1,'y':3}
Note:
   上述三种函数一般都使用在这三种数据类型之间的相互转换。
4、max(obj),找出obj最大的element。
5、min(obj),找出obj中最小的element
6、sorted(obj,reverse),对str进行排序,如果reverse=True就按倒序;如果等于False,就按正序。
该函数会返回一个新的函数,为什么这么说捏?因为下面的sort与之有不同之处。
7、sum(obj,[,start]),obj的元素都是数字,start不可以为字符串。
这个函数就是实现了for循环计算总和。
 
 
列表(list)的内建函数:
1、sort(key,reverse)
如果key不指定就根据目标本身排序,如果key指定一个函数,就根据所指排序。如:key=len,就是根据长度排序
2、extend函数式修改原序列,将指定序列添加到原序列的末尾。
a=[1,2,5],b=[7,4,3],a.extend(b)   print a
3、pop函数式删除指定位置元素,默认是末尾元素。
4、remove是删除指定元素的第一个。
5、insert(obj,2),obj是要添加的元素,2是在某一个指定位置添加。
6、index是找出指定元素的第一个所在的位置。
7、append 添加到末尾
Note:
sort,extend,reverse,三个函数只是在原列表中原地操作,并不返回一个列表。
Eg:
s=[6,2,5]
L=s.sort()
print L
print s





Result:
  None
  [2,5,6]


 

 
字典的内建函数:
字典的操作:
D.copy( ) Returns a (shallow) copy of the dictionary
D.has_key(k) Returns True if k is a key in D, otherwise returns False
D.items( ) Returns a copy of the list of all items (key/value pairs) in D
D.keys( ) Returns a copy of the list of all keys in D
D.values( ) Returns a copy of the list of all values in D
D.iteritems( ) Returns an iterator on all items(key/value pairs) in D
D.iterkeys( ) Returns an iterator on all keys in D
D.itervalues( ) Returns an iterator on all values in D
D.get(k[,x]) Returns an iterator on all values in D
Mutating methods  
D.clear( ) Removes all items from D
D.update(D1) For each k in D1, sets D[k] equal to D1[k]
D.setdefault(k[,x]) Returns D[k] if k is a key in D; otherwise sets D[k] equal to x and returns x
D.popitem( ) Removes and returns an arbitrary item (key/value pair)
 
 
 
其他重要函数:
 
 
1.super函数
 
当子类调用基类时,尤其是公共基类,如果公共基类名字发生改变,那么每个子类都要修改,需要很大的工作量,而super就解决了此类问题。super()不但能找到基类方法,而且还为我们传进self,这样我们就不需要做这些事了。
注意与正常的区别
 #!/usr/bin/python
  2
  3 class Person (object):
  4
  5     def __init__(self,name,age):
  6
  7         self.name=name
  8         self.age=age
  9         print 'all'
 10
 11     def Say(self):
 12
 13         print self.name,self.age
 14
 15 class APerson (Person):
 16
 17     def __init__(self,name,age):
 18
 19         super(APerson,self).__init__(name,age)
 20         print 'a'
 21
 22
 23
 24
 25 w=Person('haibo' ,24)
 26 w.Say()
 27 m=APerson(w.name,w.age)
 28 m.Say()
 
 
首先,基类要加上object;
其次,super类后面,不需要有self.name,直接name就OK
2.dir([obj]) 显示对象的属性,如果没有提供参数, 则显示全局变量的名字
 
3.help([obj]) 以一种整齐美观的形式 显示对象的文档字符串, 如果没有提供任何参
数, 则会进入交互式帮助。
 
 
4.hash函数:返回对象的hash值。参数必须是可哈希的。
所有不可变的类型都是可哈希的,因此它们都可以做为字典的键。
5.getattr(object,name).该函数主要是用来返回给定类的实例中已经命名的属性的值,这个name必须是一个字符串。
eg:
class Attr():
def __init__(self,x):
   self.x=x
At=Attr(2)
print getattr(At,'x')
 
 
6.hasattr(object,name),该函数与上一个函数的不同之处在于,当在实例中存在名为name的属性,就返回布尔值True,否则返回False。
 
 

posted on 2014-02-24 18:29  hbnn  阅读(244)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3