lambda表达式+python内置函数

fan传统的定义函数方式如下

def f1():
    return 123

lambda表达式定义函数

f2 = lambda : 123

 

 

python3的内置函数

1.abs 绝对值

i = abs(-11)
print (i)

输出结果是11

abs = absolute 

2,all 循环参数,如果每个元素都为真,则返回为真

r = all([True, True])
print (r)

在python中 0 () [] ''和 None是False(空值都是假的)

r = all(["123"," ", [1,2],""])
print (r)

返回为False

 

3,any 只要有一个为真 就为True

i = any([None," ","123"])
print (i)

返回为True

 

4,ascii 自动执行 ascii(对象)去对象的类中,找__reper__,获取返回值

class Foo:
    def __repr__(self):
        return "hello"

obj = Foo()

r = ascii(obj)
print (r)

返回值为hello

 

5,bin()二进制 oct()八进制 int()十进制 hex()十六进制

6,bool判断真假:本质上是把一个对象转换成布尔值

7,bytes(字节)bytesarray(字节列表)

补充字节和字符串之间的转换

bytes("xxxxx",encoding="uft-8")

8,chr() ord()

c = chr(65)

print (c)

返回值是A

chr找到对应ascii码中对应的字符(ascii码是一个字符对应一个字节)

 

同理 ord(a)

返回97 通过ord把一个字符转换成数字

 

在验证码中不可以生成一个随机

的字母,但是可以生成一个随机的数随机生成一个随机数,再用chr(xx)生成字母。随机字母就可以生成了。

eg:生成一个ascii码在65-90的字符的字母

要导入一个random的模块:

import random

i = random.randrange(65,91)
print (i)

 这个括号是(大于等于65,小于91)

import random

i = random.randrange(65,91)
c = chr(i)
print (i)

这样就能随机生成一个字母了

如果想生成4个字幕的验证码,循环4此就行了

import random
temp = ""
for i in range(4)
    rad = random.randrange(65,91)
    c = chr(rad)
    temp = temp + c
print (temp)

如果想其中含有字母和数字:

import random

for i in range(6)
    num = random.randrange(0,4)
    if num == 3 or  num ==1:
        rad2 = random.randrange(0,10)
        temp = temp + str(rad2)
    else:
        rad1 = random.randrange(65,91)
        c1 = chr(rad1)
        temp = temp + c1
print (temp)

 

函数callable()表示是否可执行:

def f1()
    return 123

f1()
r = callable(f1)

就是判断一下f1是否可执行。

 

compile()

在python中底层实际上考虑所有的文件都是字符串,编译成机器码后才能让计算机执行。compile("xxxx")相当于让编译器去编译这个字符串,再去让机器执行编译后的机器码。

 

complex()

复数的虚部。

 

dict() 字典

 

dir()查看类所提供的功能

li = []
print(dir(li))

 

 若想查找更详细的可以用help

 

divmod()得到一个元组,(商,余数)

 

eval()直接转换字符串的值:

print("1+3")

得到的结果还是1+3

但是如果用eval直接可以把字符串“1+3”计算成4

 

exec() 功能和eval一样,但不用输入print。没有返回值

exec:像python复杂语法程序,用exec来执行

eval:对于处理像字符串一样的表达式用eval来做。

 

返回值:eval是有返回值的,eval()的结果可以赋值给一个变量。eg:re = eval("1+1")

exec无返回值。执行代码

compile 编译代码

filter():

filter(函数,可迭代对象):函数会迭代里面每一个元素,并且把元素当做参数去执行一下前面的函数,如果函数返回True则符合条件。def f1(x)

def fi(x):
 

  if x > 22:
    return True
  else:
  
return False ret = filter(f1,[1,2,33,44])

for i in ret
print(i)

打印输出33 44

或者

ret = filter(lambda x : x > 22, [11,22,33,44])
for i in ret:
    print (i)

 

map():

map(函数,可迭代对象)

对于[1,2,3,4,5]对每一个元素加100,可以如下操作

def f1(x):
    return x+100
ret = map(f1,[1,2,3,4,5])
for i in ret:
    print (i)

返回值

101

102

103

104

可以改进如下:

ret = map(lambda x : x+100, [1,2,3,4,5])
for i in ret:
    print (i)

globals()显示全局变量

def f1()
    name = 123
    print (locals())
    print (globals())

f1()

同理locals()获取局部变量

 

isinstance()判断某个对象是否由某个类创建的

li = [11,22]
r = ininstance(li, list)
print (r)

 

 issubclass() 判断是不是子类

 

iter()创建一个可以被迭代的对象

obj = iter([11,22,33,44])

r1 = next(obj)
print(r1)
r2 = next(obj)
print (r2)

pow(2,10)幂运算 2的10次方

reverse() 对一个列表或者字典的反转

round()四舍五入

sum()求和 

r = sum([11,22,33,44])

print (r)

110

import random 
random.randrange()
与
r = __import__(random)
r.randrange()
是一样的

 

 函数可以做参数:

def x():
    print("xxx")


print(x)

返回值是一个地址。说明这个函数是在这个内存地址。说明x指向了一个内存。

x()则是执行这个函数。

 

所以函数可以做参数。定义f3

def f3(arg):
    print(arg)

可以调用f3(x)

posted on 2017-09-19 21:17  huzhehao  阅读(155)  评论(0编辑  收藏  举报

导航