码迷,mamicode.com
首页 > 编程语言 > 详细

python学习笔记-Day4

时间:2016-06-03 00:58:34      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

内置函数

#   callable 对象是否可以被调用
def f2():
    pass
f3 = xxx

print(callable(f2),callable(f3))

==> True False  # 函数可以被调用,字符串不可以被调用
# chr与ord 
# chr给一个索引位置,根据给的索引位置在ascii表中找到对应值
# ord反向chr过程,给定一个值,找到对应值在ascii表中的位置
r = chr(65)
n = ord(A)
print(r,n)
==> A 65   
# compile 将字符串转换python执行代码
s = print(123)
n = compile(s,<string>,exec)     # 将字符串按照字符串格式编译成Python代码
print(n)
==> <code object <module> at 0x0000000000B454B0, file "<string>", line 1>  
# 编译完成后,并不是一个可直接读取的对象,那怎么让它去执行呢,请下边看

# exec  执行python代码,无返回值, 接收:python编译代码或字符串
exec(n)
==>  123   # 我们在上边编译并把值赋给n,这里我们将编译后n变量去exec执行,就会去print(123)

# eval  执行表达式,有返回值,接收:表达式
ret = eval(1+2+3)
print(ret)
==> 6  # 只接受表达式,相比exec好的地方是,他可以接收返回值
# divmod 取余数
r = divmod( 98, 10)   # 取99/10的余数和运算值
n1,n2 = r
print(n1,n2)  
==> 9 8  # 99除10,得9余8
#  filter   筛选
def f2(a):
    if a>22:
        return True

lis = [11,22,33,44,55]
ret = filter(f2,lis)    # 传入条件函数,和可迭代的对象,用可迭代对象逐一去条件函数判断,为真则返回到ret(追加方式)
print(list(ret))
==> [33, 44, 55] 


# filter 筛选 与lambda表达式使用
ret = filter(lambda a:a>33, lis)
print(list(ret))
==> [44, 55]
# map 处理可迭代对象
lis = [11,22,33,44]
f4 =lambda a: a+100
result = map(f4, lis) # 传入条件函数,将可迭代对象逐一去函数处理,将处理后结果返回result
print(list(result))
==>  [111, 122, 133, 144]   # 一目了然
# max  min   sum
max([11,22,33])  # 传入可迭代,求最大值
min([11,22,33])  # 求最小值
sum([11,22,33])  # 求和
# pow 求次方
ret = pow(2,3)  # 求2的3次方
print(ret)
==> 8
# reversed 翻转
# 将可迭代有序的序列翻转
li = [1,23,4,5,44,1,3]
ret = reversed(li)
print(list(ret))
==> [3, 1, 44, 5, 4, 23, 1]
# zip 函数
l1 = [jack,19,qwwe]
l2 = [eason,44,2weq]
l3 = [eric,12,rew]

r = zip(l1, l2, l3)
print(list(r))
==>  [(jack, eason, eric), (19, 44, 12), (qwwe, 2weq, rew)]
# 会根据你的列表元素位置,将三个列表压缩成一个嵌套元祖的列表

random随机模块

# 我们可以通过上边内置函数chr可以让输入对应数字转换为字母
# 接下来就可以通过这个功能,实现一个随机验证码功能
import random
li = []                            # 定义一个空列表
for i in range(6):            # 我的验证码长度
    r = random.randrange(0,2)      # 这里我们随机0或1作为真假,来进行下边判断,如果为真该位则为数字,否则则使用chr转为对应字母
    if r:
        tmp = random.randrange(0, 10)
        li.append(str(tmp))
    else:
        tmp = random.randrange(65, 91)  # ascii表65-91为大写字母
        c = chr(tmp)  # 按照ascii找到对应字母
        li.append(c)
result = ‘‘.join(li)    #将列表拼接为字符串
print(result)

==> 4R5NB0   # 字母加数字随机验证码组合

 

python学习笔记-Day4

标签:

原文地址:http://www.cnblogs.com/coolking/p/5554782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!