内置函数和匿名函数

1、内置函数

#abs()绝对值函数
# print(abs(-1))
# print(abs(0))

#all()函数如果后面跟的可迭代对象为空,返回true
# 如果后面跟的可迭代对象不为空,all会把他变成迭代器,取一个值进行一次bool判断,全为真才返回真
# print(all(‘‘))
# print(all((1,‘‘,2)))
# print(all((1,"",2,None)))

#any函数,正好与all函数相反
# print(any(""))#空格也算值,不算空,什么也不写才算空
# print(any([]))
# print(any([None,0,[],{},1]))#True

#bin()把数字转换成二进制
# print((bin(3)))

#callable()判断是否可以被调用,如果能被调用就返回True否则返回False
# def test():
#     pass
# print(callable(test))
# print(callable(sum))

#chr()和ord()是根据ASCII码互相转换的东西
# print(chr(67))
# print(ord("C"))

#compile()把字符串编译为字节码

#complex()复数的内置函数,和list类似
# x=1-2j
# print(x.real)
# print(x.imag)
# x=complex(1-2j)
# print(x.real)
# print(x.imag)

#数据类型
#int()
# num=1 #num=int(1)
# print(type(num))          #查看num的类型
# print(isinstance(num,int))#两种判断类型的方式通用,判断num是否为int类型
# print(num is 1)#is是身份运算,根据id去判断身份
#float
#bool

#str()
# x=‘asdf‘#x=str(‘asdf‘)
# print(str(1))
# print(str({‘a‘:1}))

#list()
# x=[]
# x=list(i for i in range(10))
# print(x)

#tuple()

#dict()
# d={‘a‘:1}
# d=dict(x=1,y=2,z=3)
# print(d)

#set()
# s={1,2,3,4}
# print(s)
# s.add(5)
# print(s)

# frozenset()#加可迭代对象变为不可变的集合,当然不全
# f=frozenset({1,2,3,4})
# print(type(f))#没有add和remove方法是一个不可变集合
# f=frozenset((1,2,3,4))
# print(type(f))

#dir()可以看到对象能够调用哪些方法
# print(dir(sum))

#divmod()#"" Return the tuple (x//y, x%y).  Invariant: div*y + mod == x. """
# print(divmod(10,3))#用于前端分页功能

#enumerate(iterable,start=0)#参数先是可迭代对象,然后是初始值
# for i in enumerate([‘a‘,‘b‘,‘c‘,‘d‘]):
#     print(i)
# for i in enumerate([‘a‘, ‘b‘, ‘c‘, ‘d‘],10):
#     print(i)
# for i in enumerate({‘x‘:1,‘y‘:2}):
#     print(i)

#hash()#哈希算法,映射,用于校验数据的完整性
# print(hash(‘asdf‘))
# print(hash(‘asdf‘))

#hex()十进制转十六进制
# print(hex(10))

#id()查看身份相当于省份证号
#0到256包括256都是相等的,从257开始就变了
#字符串都是一样的

#max(args,key=function,default)和min()
# print(max(1,2,3,4,10,3))
# print(min(1,2,3,4,10,3))
# salaries={
#     ‘egon‘:3000,
#     ‘alex‘:100000000,
#     ‘wupeiqi‘:10000,
#     ‘yuanhao‘:2000
# }
# print(max(salaries))#默认比的是key
# print(max(salaries.values()))
# def get_value(k):
#     return salaries[k]
# print(max(salaries,key=get_value))#直接写函数名而不是函数名+()
#max把可迭代对象salaries变为迭代器,next一次的一个值,并将这个值传给后面的函数,用函数的运行结果进行比较,但是最终排序的时候还是以默认的(key)方式排
#在这里我们只是改变了比较大小时的比较依据,打印结果的依据没有改变

#zip(iter1,iter2)拉链,两个参数都是可迭代对象
# l1=[1,2,3]
# s=‘hel‘
# res=zip(l1,s)#res是迭代器
# for i in res:
#     print(i)  #取出i是元组形式的
# pp=zip(salaries.values(),salaries.keys())#pp是迭代器
# print(max(pp)) #打印出的结果也是元组形式

#sorted()#Return a new list containing all items from the iterable in ascending order.(升序)
# l=[3,4,1,0,9,10]
# print(sorted(l))#返回值是列表,默认是升序,按ASCII码进行排
# print(sorted(l,reverse=True))#降序,由大到小
# s=‘hello abc‘
# print(sorted(s))#[‘ ‘, ‘a‘, ‘b‘, ‘c‘, ‘e‘, ‘h‘, ‘l‘, ‘l‘, ‘o‘]
# print(sorted(salaries))
# print(sorted(salaries,key=lambda k: salaries[k]))

#map(func, *iterables),map作用就是把一个没有用的可迭代对象加工成需要的可迭代对象,映射的方式
# l=[1,2,3,7,5]
# m=map(lambda item:item**2,l)
# print(m)
# for i in m :
#     print(i)
# print(list(m))
# name_l=[‘alex‘,‘zhejiangF4‘,‘yuanhao‘,‘wupeiqi‘]
# m=map(lambda name:name+"SB",name_l)
# print(list(m))

#reduce(function, sequence, initial=None)#合并
# from functools import reduce
# l=list(range(100))
# print(l)
# print(reduce(lambda x,y:x+y,l))#默认初始值为0,看到的并不是真的,他还是直窜一个值,只是最开始有个默认的0
# print(reduce(lambda x,y:x+y,l,100))#默认初始值为100

#filter(function or None, iterable)#功能就是过滤,左边函数的返回值如果是True的话才算过滤出来的结果
#左边函数的参数是有右边可迭代对象变为迭代器next出来后传过去的
# name_l=[
#     {‘name‘:‘egon‘,‘age‘:18},
#     {‘name‘:‘dragon‘,‘age‘:100},
#     {‘name‘:‘gaoluchuan‘,‘age‘:9000},
#     {‘name‘:‘fsw‘,‘age‘:10000},
# ]
# f=filter(lambda d: d[‘age‘] > 100,name_l)
# print(f)
# for i in f:
#     print(i)

#pow(x,y,z)Equivalent to x**y (with two arguments) or x**y % z (with three arguments)
# print(pow(3,2))#3**2
# print(pow(3,2,2))#3**2%2

#reversed()反转,结果是一个迭代器

#round()五舍六入
# print(round(5.5))
# print(round(5.6))

#slice()
# l=[1,2,3,4,5,6,7,9]
# print(l[2:4:2])
# s=slice(2,5,2)
# print(l[s])

#vars()Without arguments, equivalent to locals().With an argument, equivalent to object.__dict__.
# print(vars())
# print(vars() is locals())

#__import__()#可以把字符串形式的模块导入
# import time
# print(time)
# m=__import__("time")
# print(m)
# m.sleep(3)#因为不是内置的所以没有TAB功能了

  

2、匿名函数

  Python对匿名函数的支持有限,只有一些简单的情况下可以使用匿名函数。

  当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。

  在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]

  关键字lambda表示匿名函数,冒号前面的x表示函数参数。

  匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

  用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x101c6ef28>
>>> f(5)
25

  同样,也可以把匿名函数作为返回值返回,比如:

def build(x, y):
    return lambda: x * x + y * y

  

时间: 2024-10-14 10:21:33

内置函数和匿名函数的相关文章

python-3_函数_匿名函数_正则_yield_迭代器_序列化_内置函数_模块

L=['a','b','c','d'] for (offset,item) in enumerate(L):    print offset,item 打印的结果: 0 a1 b2 c4 d 迭代器: for i in range(100):     生成列表 for i in xrange(100)    迭代器,速度会比range快 readlines()    xreadlines() 例子: def run():    print "test1"    yield 1     

python——内置函数和匿名函数

内置函数 接下来,我们就一起来看看python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的.那今天我们就一起来认识一下python的内置函数.这么多函数,我们该从何学起呢?     Built-in Functions     abs() dict() help() min() setat

python内置函数和匿名函数

内置函数 68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.     Built-in Functions     abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open()

Python 基础第十四天(内置函数和匿名函数)

今天主要内容 1.生成器补充--生成器推导式 2.内置函数 3.匿名函数 1.生成器推导式 (1)列表推导式:一行搞定 ,简单,感觉高端.但是,不易排错. 例: l1 = [] for i in range(1,12):  l1.append('python%s期' % i) print(l1) 生成式: l2 = ['python%s期' %i  i  for i in range(1,12)] print(l2) 结构: 循环模式[经过加工的i for i in 可迭代对象] 筛选模式 [经

python之迭代器生成器和内置函数,匿名函数

今天学习了迭代器生成器以及内置函数和匿名函数,说实话有些懵圈,有些难度了. 一.迭代器和生成器 1.如何从列表.字典中取值的: index索引 for循环 凡是可以使用for循环取值的都是可迭代的 (1)可迭代协议:内部含有__iter__方法的都是可迭代的 (2)迭代器协议:内部含有__iter__方法和__next__方法的都是迭代器 什么是可迭代的:内部含有__iter__方法的都是可迭代的 什么是迭代器:迭代器=iter(可迭代的),自带一个__next__方法 可迭代最大的优势:节省内

python内置函数及匿名函数

locals  本地作用域/局部作用域 会随着位置的改变而改变globals 全局作用域           永远不变 永远是全局 a = 1 b = 2 print(locals()) print(globals()) def func(): c = 3 d = 4 print(locals()) def func2(): l1 = [] d1 = {} print(locals()) #无论在哪里打印 得到的都是全局作用域中的名字 func() func2() # 结果 # {'__name

python之路——5、内置函数和匿名函数

阅读目录 楔子 内置函数 匿名函数 本章小结 返回顶部 楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印一下自己的名字. 你们是怎么打的呀? 是不是print('xxx'),好了,现在你们结合我刚刚说的函数的调用方法,你有没有什么发现? 我们就猜,print有没有可能是一个函数? 但是没有人实现它啊...它怎么就能用了呢? 早在我们“初识函数”的

python之内置函数,匿名函数

什么是内置函数? 就是Python给你提供的,拿来直接用的函数,比如print,input等等.其实就是我们在创建.py的时候python解释器所自动生成的内置的函数,就好比我们之前所学的作用空间 内置空间就是python文件在创建的时候python解释器所自动创建的 重要的 内置函数: *** eval: eval:执行字符串类型的代码,并返回最终结果.(其实就是对字符串内的类型进行操作 比如你字符串内事int类型的  相加相乘之类的  直接进行操作 如果字符串内事列表或者字典直接把列表字典给

python基础之内置函数与匿名函数

python基础之内置函数与匿名函数 内置函数68个如下图 重点的关注的内置函数len,sorted,enumerate,all,any,zip,filter,map,reversed,slice len(o):参数为O,返回数据类型的长度sorted():      sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list iterable:是可迭代类型; cmp:用于比较的函数,比较什么由key决定; ke

PHP内置的字符串处理函数

字符串的特点    1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4),"<br>"; //cdef //使用数字会自动转化为字符串 echo substr(123456,2,4); //3456 ?> 2.可以将字符串视为数组,当做字符集合来看待 <?php $str="abcdefg"; //下面这两种方法都