十九、python内置函数汇总

'''
内置函数
abs():取绝对值
all():每个元素都为真,才是真any():有一个元素为真即为真
bin():十进制转二进制
hex():十进制转十六进制
int():所有的转成十进制
oct():十进制转八进制
bool():空,空列表,字典。。。都是false,其他都为true
bytes():字符串转化成字节,gbk的占2个字节,utf8占3个字节
dir():快速找出内涵的功能
chr():参数是0-256之间的一个整数,返回值是对应当前整数的ascii
ord():参数是ascii字符,返回值是对应的十进制整数
help():
enumerate():为列表循环时,自增一列
eval():函数用来执行一个字符串表达式,并返回表达式的值
exec():执行字符串表达式,无返回值
filter():过滤序列
map():会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
globals():函数会以字典类型返回当前位置的全部全局变量。,包括所有导入的变量
locals(): 函数会以字典类型返回当前位置的全部局部变量。
id():查看对象的内存地址
isinstance():函数来判断一个对象是否是一个已知的类型,类似 type()。
max():返回给定参数的最大值,参数可以为序列
min():返回给定参数的最小值,参数可以为序列。
sum():对系列进行求和计算。
pow() 方法返回 xy(x的y次方) 的值。
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
'''
#eval()
# x=7
# print (eval('3*x'))
# print (eval('pow(2,2)'))
# print (eval('2+2'))
#exec()
#
'''
1.exec(object[, globals[, locals]])
object:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果object是一个code对象,那么它只是被简单的执行。
globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。
locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。
'''
# exec('print ("hello world")') #执行单行字符串
# exec("""for i in range(5):
# print (i)""") #多行语句执行
#
# x=10
# expr="""
# sum=0
# z=30
# sum=x+y+z
# print (sum)
# """
# def func():
# y=20
# exec(expr)
# exec(expr,{'x':1,'y':11})
# exec(expr,{'x':1,'y':2},{'y':3,'z':4})
#func()
============================================================================================
2.类似于filter
# result=[]
# def MyFilter(fun,seq):
# for i in seq:
# ret=fun(i)
# print (ret)
# def f1(x):
# for i in x:
# if i%2==1:
# #print (x)
# return i
# r=MyFilter(f1,[11,22,33,44,55,66])
# print (r)
============================================================================================
3.map()
def square(x):
return x**2 #计算平方
r=map(square,[1,3,5,7,9])
print (r) #python返回的是一个迭代器,python返回的是列表
ret=[]
for i in r:
ret.append(i)
print (ret)

p=map(lambda x:x**2,[3,5,9])
print (p)
for i in p:
print (i)
seq=[]
m=map(lambda x,y:x+y,[1,2,3,4,5,6],[6,5,4,3,2,1])
print (m)
for i in m:
seq.append(i)
print (seq)
--------------------------------------------------

    <map object at 0x0000000001E9FFD0>    #(python3执行结果)                [1, 9, 25, 49, 81](python2执行结果)
    [1, 9, 25, 49, 81]

    <map object at 0x00000000028F4160>
    9
    25
    81
    <map object at 0x00000000028F45C0>
    [7, 7, 7, 7, 7, 7]

============================================================================================
4.globals和locals()
a='root'
print (globals())

def func(x):
b=1
print (locals())
func(3)
-------------------------------------------------

    {'__name__': '__main__', '__doc__': ' 1.lambda表达式 ', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000000001D6B160>, '__spec__': None, '__annotations__': {},      '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/zhiliangbaozhangbu/06workspace/chushujin/test-py3/Function/test02.py', '__cached__': None, 'a': 'root'}
    {'b': 1, 'x': 3}

============================================================================================
'''
5.isinstance():函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
'''
a=2
print (isinstance(a,int))
print (isinstance(a,str))
print (isinstance(a,(int,str,list))) #是元组中的一个返回 True
class A:
pass
class B(A):
pass
print (isinstance(A(),A))
print (type(A())==A)
print (isinstance(B(),A))
print (type(B())==A)
--------------------------------------------------------------------

    True
    False
    True
    True
    True
    True
    False

============================================================================================
'''
6.sum():对系列进行求和计算。
sum(iterable[, start]):
iterable -- 可迭代对象,如:列表、元组、集合。
start -- 指定相加的参数,如果没有设置这个值,默认为0。
'''

print (sum([1,2,3]))
print (sum([1,2,3,4],5)) #列表求和后,再加5
print (sum((1,5,6,9),4)) #元祖求和后,再加4
-------------------------------------------------------

    6
   15
    25

============================================================================================
'''
7.pow() 方法返回 xy(x的y次方) 的值。
pow(x, y[, z])
函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。
'''
import math
print (pow(100,2))
print (math.pow(100,2)) #float类型
print (pow(100,2,2))
print (pow(100,-2))
-----------------------------------------------------

   10000
   10000.0
   0
   0.0001

============================================================================================
'''
8.zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。
'''

a=[1,2,3,4]
b=[2,3,4,5]
c=[3,4,5]
ziped=list(zip(a,b))
print (ziped) #python3返回的是一个对象,需手动list()转换
#print (zip(a,b)) #python2执行方式
print (list(zip(a,c)))
print (list(zip(*ziped))) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
--------------------------------------------

    [(1, 2), (2, 3), (3, 4), (4, 5)]
    [(1, 3), (2, 4), (3, 5)]
    [(1, 2, 3, 4), (2, 3, 4, 5)]

============================================================================================

原文地址:https://www.cnblogs.com/chushujin/p/9378240.html