大纲

1、一些常用的内置函数

callable()

chr() & ord()

随机生成验证码

map()

全局变量,局部变量

hash() & round()

max() min() sum()

zip()

2、装饰器

一些常用的内置函数:

内置函数一:

  1. # callable()#检查函数是否能被调用,返回True、False
  2. def f1():
  3. pass
  4.  
  5. # f1()#能被调用
  6. f2 = 123
  7. # f2()# 这个不能被调用
  8.  
  9. print(callable(f1)) # 能被调用
  10. print(callable(f2)) # 不能被调用
  11.  
  12. True
  13. False

callable()

  1. # 查看对应的ascii码
  2. # ord()把ASCII转换成数字
  3. # chr()则相反,把数字转换成ASCII
  4. r = chr(65)
  5. print(r) # A
  6. n = ord("a")
  7. print(n) #
  8.  
  9. A
  10. 97

chr() and ord()

  1. #随机验证码
  2. import random # 加入随机验证码模块
  3.  
  4. li = []
  5. for i in range(6): # 循环
  6. temp = random.randrange(65, 91) # 方法返回指定递增基数集合中的一个随机数
  7. c = chr(temp) # 把数字转换成ASCII,原来为数字,所以转换为了大写字母,因为65-91对应的ASCII为大写字母
  8. li.append(c) # 将每次转换的ascii加入到列表中
  9. result = "".join(li) # 用join方法把列表转换为字符
  10. print(result) # 每次随机输出
  11. # input_li = input("input li:")
  12. # if input_li == result:
  13. # print("登录成功")
  14.  
  15. # 以下是修改版
  16. # v2,这个修改版可以随机出现数字
  17. import random
  18.  
  19. li = []
  20. for i in range(6):
  21. r = random.randrange(0, 4) # 返回一个随机数
  22. if r == 2 or r == 4: # 如果返回的随机数等于2或者等于4的时候,让他继续下一步操作
  23. num = random.randrange(0, 10)
  24. li.append(str(num)) # 用字符串的方式将随机生成的值添加到li列表中
  25. else:
  26. temp = random.randrange(65, 91)
  27. c = chr(temp)
  28. li.append(c)
  29. result = "".join(li)
  30. print(result)
  31.  
  32. DYHVPI
  33. 2QMTCM

生成随机验证码

内置函数二:

  1. # map
  2. li = [11, 22, 33, 44, 55]
  3.  
  4. # map #将函数返回值添加到结果中
  5. # map(函数,可迭代的对象(可以for循环的东西))
  6. def f2():
  7. return a + 100
  8.  
  9. # result = map(f2, li)
  10. result = map(lambda a: a + 100, li) # 又用到了lambda表达式
  11. print(list(result))
  12.  
  13. # 没用map函数
  14. li = [11, 22, 33, 44, 55]
  15.  
  16. def f1(args):
  17. result = []
  18. for i in args:
  19. result.append(100 + i)
  20. return result # 返回result
  21.  
  22. r = f1(li)
  23. print(r)
  24.  
  25. [111, 122, 133, 144, 155]
  26. [111, 122, 133, 144, 155]

map

  1. # 全局变量 globals()、局部变量 locals()
  2. aa = "qwe"
  3.  
  4. def f1():
  5. a = 123
  6. print(globals())
  7. print(locals())
  8.  
  9. f1()
  10.  
  11. {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x02EEA350>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/资料/常用/python/python/day4/Built-in_function6.py', '__cached__': None, 'aa': 'qwe', 'f1': <function f1 at 0x02EAD660>}
  12. {'a': 123}

全局变量、局部变量

  1. # hash()#传入一个对象,他会帮我转换为hash值
  2. s = "qwe"
  3. print(hash(s))
  4.  
  5. -1262142889
  6.  
  7. # round() #四舍五入
  8. s = round(5.1125,1)
  9. print(s)
  10.  
  11. 5.1

hash和round

  1. # max、min、sum
  2. s = sum([11, 22, 33])#求和
  3. print(s)
  4.  
  5. s = max([11, 22, 33])#最大值
  6. print(s)
  7.  
  8. s = min([11, 22, 33])#最小值
  9. print(s)
  10.  
  11. 66
  12. 33
  13. 11

max_min_sum

  1. # zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
  2. l1 = ["ha", 11, 22, 33]
  3. l2 = ["ha", 11, 22, 33]
  4. l3 = ["ha", 11, 22, 33]
  5. r = zip(l1, l2, l3) # 将每一列元素打包成为一个元组,然后在由一个大的列表包括起来
  6. temp = list(r)[0]#显示第0个元素
  7. ret = ' '.join(temp)
  8. print(ret)
  9.  
  10. ha ha ha

zip

装饰器

什么是装饰器:

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。

装饰器的写法:

  1. def outer(func):
  2. def inner():
  3. print('log')
  4. return func()
  5.  
  6. return inner # 注意这里返回的inner没有(),因为这只是返回一个函数体
  7.  
  8. # 可以看到我们并没有在f函数里面加入log,但是当我们调用这个函数时,就出现了log
  9. @outer
  10. def f1():
  11. print("F1")
  12.  
  13. @outer
  14. def f2():
  15. print("F2")
  16.  
  17. @outer
  18. def f100():
  19. print("F100")
  20.  
  21. 调用装饰器:
  22. f1()
  23.  
  24. log
  25. F1

装饰器必备的小知识:

  1. def f1():
  2. print(123)
  3.  
  4. def f1():
  5. print(456)
  6.  
  7. f1() # 很明显,这个地方会调用第二个f1,他会输出456
  8.  
  9. def f1():
  10. print('')
  11.  
  12. def f2(xx):
  13. xx()
  14.  
  15. f2(f1)#在这个地方,f1表示f1函数的整体,相当于我在f2里面调用了f1函数,所以xxf1,所以输出内容就是123

装饰器的流程分析:

  1. # def outer(func):
  2. # print(123, func)
  3.  
  4. # def outer(func):
  5. # return "111"
  6.  
  7. def outer(func):
  8. def inner():
  9. print("before")
  10. func()#func是传入的f1,所以这里执行f1函数
  11. print("after")
  12.  
  13. return inner # 返回inner相当于返回了这个函数体(整个函数),然后又开始执行inner函数,如果不调用inner,inner将一直放到内存,不会执行
  14.  
  15. # @ + 函数名
  16. # 功能
  17. # 1、自动执行outer函数并且将下面的函数名f1当作参数传递
  18. # 2、将outer函数的返回值,重复赋值给f1
  19. @outer
  20. def f1():
  21. print("F1")
  22.  
  23. # 新建一个文件用来调用这个业务
    import process_analysis1
  24.  
  25. process_analysis1.f1()
  26.  
  27. 返回结果:
    before
    F1
    after

装饰器修改后(一些比较常用的功能):

  1. def outer(func): # 所以我们可以用到万能参数,无论客户需要传入多少参数,我们就可以响应多少参数
  2. def inner(*args, **kwargs): # 如果原函数里面带了参数,我们这里也需要参数
  3. print("before")
  4. r = func(*args, **kwargs) # 这个地方也需要放入万能参数
  5. print("after")
  6. return r # 返回f1函数原有的返回值
  7.  
  8. return inner # 返回inner相当于又开始执行inner函数,
  9.  
  10. # @ + 函数名
  11. # 功能
  12. # 1、自动执行outer函数并且将下面的函数名f1当作参数传递
  13. # 2、将outer函数的返回值,重复赋值给f1
  14. @outer
  15. def f1(arg):
  16. print(arg)
  17. return "哈哈"
  18.  
  19. @outer
  20. def f2(a1, a2): # 传入两个参数
  21. print(a1, a2)
  22. return "哈哈"
  23.  
  24. #新建一个文件用于调用此文件
  25. import process_analysis3
  26.  
  27. ret = process_analysis3.f1("")
  28. print(ret) # 将返回值也跟着输出
  29.  
  30. process_analysis3.f2(111, 22)
  31.  
  32. before
  33. 11
  34. after
  35. 哈哈
  36. before
  37. 111 22
  38. after

最后更新时间:2017-12-09-31:30:02

python的学习之路day4的更多相关文章

  1. Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!

    Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!找到你自己感兴趣的点进行切入,并找到兴趣点进行自我驱动是最好的学习方式!       推荐两本书,一本作为 ...

  2. ql的python学习之路-day4

    集合(set) 集合主要有两种用处: 1.去除相同的元素 2.关系测试,两个列表中的元素的关系 按照‘alex’讲的自己写了源码笔记,下面就直接贴出来: #!/usr/bin/env python # ...

  3. Python学习之路-Day4

    1.函数 函数定义 def  func(aa):         def:表示函数的关键字  func:函数名,即函数的名称,可根据函数名调用函数 print('.....')        prin ...

  4. python 爬虫学习之路

    2016-6-18 --今天实现了第一个用urllib2实现的爬虫程序. --过程中发现 req = urllib2.Request(url,headers = headers) 总是报错: 主要原因 ...

  5. python的学习之路day7-socket网络编程

    python基础部分学习完了,时间也已经过了两个月左右,感觉没学到什么,可能是我学习之后忘记的太多了. 由于没钱买书,要是去培训就更没钱了,所以在网上找了一本书,感觉还不错,讲的比较好,比较详细. P ...

  6. python的学习之路day2

    1.什么是常量: 常量在程序中是不变的量 但是在python中所有的变量都可以改 注意:为了防止区分错误,所以python中常量使用大写命名 例如: MYSQL_CONNECTION = '192.1 ...

  7. Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】

    打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...

  8. Python小白学习之路(十五)—【map()函数】【filter()函数】【reduce()函数】

    一.map()函数 map()是 Python 内置的高阶函数 有两个参数,第一个是接收一个函数 f(匿名函数或者自定义函数都OK啦):第二个参数是一个 可迭代对象 功能是通过把函数 f 依次作用在 ...

  9. Python小白学习之路(十)—【函数】【函数返回值】【函数参数】

    写在前面: 昨天早睡之后,感觉今天已经恢复了百分之八十的样子 又是活力满满的小伙郭 今日份鸡汤: 我始终相信,在这个世界上,一定有另一个自己,在做着我不敢做的事,在过着我想过的生活.-------宫崎 ...

随机推荐

  1. SSM整合——spring4.*配置案例

    导入spring4.* 相关的jar包和依赖包即可 1.web.xml <?xml version="1.0" encoding="UTF-8"?> ...

  2. 请读下面的这句绕口令:ResourceManager中的Resource Estimator框架介绍与算法剖析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由宋超发表于云+社区专栏 本文首先介绍了Hadoop中的ResourceManager中的estimator service的框架与运行 ...

  3. Tomcat学习总结(11)——Linux下的Tomcat安全优化

    1.web.xml配置及修改: 站点默认主页: <welcome-file-list> <welcome-file>index.html</welcome-file> ...

  4. 【IT笔试面试题整理】给定二叉树,给每层生成一个链表

    [试题描述]定义一个函数,给定二叉树,给每层生成一个链表 We can do a simple level by level traversal of the tree, with a slight ...

  5. golang三方包应该如何安装--在线和离线

    一 在线安装 采用go get的方式安装import 的时候找不到对应的包看看pkg里面有没有 二 离线安装 redis客户端采用git clone的方法安装的话可以用以下方法 cd src git ...

  6. SSL编程(2).NET最简单的客户端

      在Windows平台上,实现SSL的.NET类是System.Net.Security.SslStream类.这个类既可以用于建立SSL服务,也可以用来作为SSL客户端连接远端的SSL服务. 最简 ...

  7. UIKit 框架之UIResponder

    前面博客有讲触摸事件提过响应事件和响应者链,而管理响应者链的正是UIResponder. 一.代码 - (BOOL)application:(UIApplication *)application d ...

  8. 浅析Java源码之HashMap外传-红黑树Treenode(已鸽)

    (这篇文章暂时鸽了,有点理解不能,点进来的小伙伴可以撤了) 刚开始准备在HashMap中直接把红黑树也过了的,结果发现这个类不是一般的麻烦,所以单独开一篇. 由于红黑树之前完全没接触过,所以这篇博客相 ...

  9. C# fileUpload视频上传

    要实现大文件上传必须配置webConfig例如: <system.web> <compilation debug="true" targetFramework=& ...

  10. JS继承实现的几种方式

    //继承的几种实现: //解决方案1.通过原型继承 function Parent1(){ this.name = 'Parent1'; } function Child1(){} Child1.pr ...