python画大象_Python Day18

列举一些常用的内置函数:

1.chr()和ord()

1chr()将数字转换为对应的ascii码表字母2 >>> r=chr(65)3 >>> print(r)4 A

1ord()将字母转换为对应的ascii码表数字2 >>> n=ord('a')3 >>> print(n)4 97

需要注意的是,中文汉字也可以

1 >>> ord("存")2 23384

3 >>> chr(23384)4 '存'

2.

join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

下面给出一个join函数使用的示例:#join无法将字符型和整型相加

importrandom

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)

3.compile()#将字符串编译成python代码

4.exec() #exec执行编译后的代码,没有返回值

eval() #eval只能处理python的表达式,有返回值

1 >>> s='print (123)'

2 >>> r=compile(s,"","exec") #不写入,则应当写文件#名称,第三处可有三种写法,分别是:single单行代码 eval 表达式 exev等#同于python代码

3 >>> exec(r) exec执行编译后的代码,没有返回值4 123

5 >>> exec("print('hello world')")6 hello world

1 >>> s='3+2'

2 >>>eval(s)3 5

5.dir():查看对象的方法

6.help():查看对象的方法和使用#可查看源码

7.divmod()#得到两个数字的商和余数

1 >>> divmod(45,10)2 (4, 5)

8.isinstance()  #判断对象是哪个类的实例

1 >>> s=[11,22,33]2 >>> r=isinstance(s,list)3 >>> print(r)4 True

9.

filter(函数,可迭代对象) #对序列做过滤处理

#循环第二个参数,执行第一个参数函数,将第二个参数作为函数的参数,如果返回结果为True,则接受

deff2(arg):if arg>22:returnTrue

li=[11,22,33,44,55]

ret=filter(f2,li)print(list(ret))##################################################################

deff1(arg):

result=[]for item inarg:if item > 22:

result.append(item)returnresult

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))

10.

map(函数,可迭代对象)  #将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回

li=[11,22,33,44,55]deff1(arg):

result=[]for i inarg:

result.append(100+i)returnresult

r=f1(li)print(list(r))#############################################

li=[11,22,33,44,55]deff2(a):return a+100result=map(f2,li)print(list(result))######################################################

result=map(lambda a:a+100,li)print(list(result))

11.

len()#计算对象的长度

注:python2使用字节计算,python3使用字符来计算,若果想按字节计算,可以先使用bytes转换成字节

>>> s='李杰'

>>> print(len(s))2

>>> b=bytes(s,encoding='utf-8')>>> print(len(b))6

#不明白的可以使用for循环李杰,在2.7和3.5看结果有什么不一样

12.max()返回给定参数的最大值,参数可以为序列

min()返回给定参数的最小值,参数可以为序列

1 >>> max(151,48,45)2 151

3 >>> min(151,48,45)4 45

13.pow()#求幂

>>> pow(2,3)8

>>> pow(2,10)1024

14.round()#四舍五入

1 >>> round(1.8)2 2

3 >>> round(2.4)4 2

15.zip()#接受任意多个序列作为参数,返回一个tuple列表

python3.5返回一个迭代器对象>>> a=(1,2,3)>>> b=('a','b','c')>>> c=zip(a,b)>>> print(c)python2.7返回一个元组>>> a=(1,2,3)>>> b=('a','b','c')>>> c=zip(a,b)>>> print(c)

[(1, 'a'), (2, 'b'), (3, 'c')]

16.any()#给定的对象中只要有一个对象bool值为true时返回true

all()#给定的对象中只有全部对象bool值为true时返回true。

1 >>> any([11,'a',[]])2True3 >>> all([11,'a',[]])4 False

17.reduce()#将一个数据集合(列表,元组等)中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果

defmyadd(x,y):return x+y

sum=reduce(myadd,(1,2,3,4,5,6,7))printsum#结果就是输出1+2+3+4+5+6+7的结果即28

也可以用lambda的方法,更为简单:

sum=reduce(lambda x,y:x+y,(1,2,3,4,5,6,7))printsum

在python3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce.

二 匿名函数

python 使用 lambda 来创建匿名函数。

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数

lambda 只是一个表达式,函数体比 def 简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

#可写函数说明

sum = lambda arg1, arg2: arg1 +arg2;#调用sum函数

print ("相加后的值为 :", sum( 10, 20))print ("相加后的值为 :", sum( 20, 20 ))

#现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

l1= (('a'),('b'))

l2= (('c'),('d'))print(list(map( lambdal1,l2:{l1:l2},l1,l2)))

输出结果

[{'a':'c'},{'b':'d'}]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值