Python所以内置函数如下:
下面列举一些常用的内置函数:
chr()和ord()
chr()将数字转换为对应的ascii码表字母
>>> r=chr(65)
>>> print(r)
A
ord()将字母转换为对应的ascii码表数字
>>> n=ord('a')
>>> print(n)
97
需要注意的是,中文汉字也可以。
>>> ord("存")
23384
>>> chr(23384)
'存'
>>>
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
下面给出一个join函数使用的示例:#join无法将字符型和整型相加
import random
li=[]
for i in range(6):
r=random.randrange(0,6)
if r==2 or r==4:
num=random.randrange(0,10)
li.append(str(num)) #使用str将num转换为字符型,因为在后面使用join时,join无法将字符型和整型相加
else:
tem=random.randrange(65,91)
c=chr(tem)
li.append(c)
result=''.join(li)
print(result)
compile()#将字符串编译成python代码
exec() #exec执行编译后的代码,没有返回值
eval() #eval只能处理python的表达式,有返回值
>>> s='print (123)'
>>> r=compile(s,"<string>","exec") #不写入<string>,则应当写文件#名称,第三处可有三种写法,分别是:single单行代码 eval 表达式 exev等#同于python代码
>>> exec(r) exec执行编译后的代码,没有返回值
123
>>> exec("print('hello world')")
hello world
>>> s='3+2'
>>> eval(s)
5
dir():查看对象的方法
help():查看对象的方法和使用#可查看源码
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', .............略 >>> help(str)
Help on class str in module builtins: class str(object)
| str(object='') -> str
| str(bytes_or_buffer[, encoding[, errors]]) -> str
|
| Create a new string object from the given object. If encoding or
| errors is specified, then the object must expose a data buffer
| that will be decoded using the given encoding and error handler.
| Otherwise, returns the result of object.__str__() (if defined)
| or repr(object).
| encoding defaults to sys.getdefaultencoding().
| errors defaults to 'strict'.
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
........省略
divmod()#得到两个数字的商和余数
>>> divmod(45,10)
(4, 5)
isinstance() #判断对象是哪个类的实例
>>> s=[11,22,33]
>>> r=isinstance(s,list)
>>> print(r)
True
filter(函数,可迭代对象) #对序列做过滤处理
#循环第二个参数,执行第一个参数函数,将第二个参数作为函数的参数,如果返回结果为True,则接受
def f2(arg):
if arg>22:
return True
li=[11,22,33,44,55]
ret=filter(f2,li)
print(list(ret)) ##################################################################
def f1(arg):
result=[]
for item in arg:
if item > 22:
result.append(item)
return result
li=[11,22,33,44,55]
ret=f1(li)
print(ret) ###################################################
li=[11,22,33,44,55]
result=filter(lambda a:a>33,li) #lambda表达式默认返回函数体的值,和普通函数more返回值为None不相同
print(list(result))
map(函数,可迭代对象) #将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回
li=[11,22,33,44,55]
def f1(arg):
result=[]
for i in arg:
result.append(100+i)
return result
r=f1(li)
print(list(r)) #############################################
li=[11,22,33,44,55]
def f2(a):
return a+100
result=map(f2,li)
print(list(result))
######################################################
result=map(lambda a:a+100,li)
print(list(result))
len()#计算对象的长度
注:python2使用字节计算,python3使用字符来计算,若果想按字节计算,可以先使用bytes转换成字节
>>> s='李杰'
>>> print(len(s))
2
>>> b=bytes(s,encoding='utf-8')
>>> print(len(b))
6
#不明白的可以使用for循环李杰,在2.7和3.5看结果有什么不一样
max()返回给定参数的最大值,参数可以为序列
min()返回给定参数的最小值,参数可以为序列
>>> max(151,48,45)
151
>>> min(151,48,45)
45
pow()#求幂
>>> pow(2,3)
8
>>> pow(2,10)
1024
round()#四舍五入
>>> round(1.8)
2
>>> round(2.4)
2
zip()#接受任意多个序列作为参数,返回一个tuple列表
python3.5 返回一个迭代器对象
>>> a=(1,2,3)
>>> b=('a','b','c')
>>> c= zip(a,b)
>>> print(c)
<zip object at 0x02A5CCD8> python2.7 返回一个元组
>>> a=(1,2,3)
>>> b=('a','b','c')
>>> c= zip(a,b)
>>> print(c)
[(1, 'a'), (2, 'b'), (3, 'c')]
any()#给定的对象中只要有一个对象bool值为true时返回true。
all()#给定的对象中只有全部对象bool值为true时返回true。
>>> any([11,'a',[]])
True
>>> all([11,'a',[]])
False
reduce()#将一个数据集合(列表,元组等)中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果
def myadd(x,y):
return x+y
sum=reduce(myadd,(1,2,3,4,5,6,7))
print sum #结果就是输出1+2+3+4+5+6+7的结果即28
也可以用lambda的方法,更为简单:
sum=reduce(lambda x,y:x+y,(1,2,3,4,5,6,7))
print sum
在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce.