前言:

为什么要学习python3?

原因:

1、学习一门语言能力

2、通过该语言能力完成测试自动化以及独立完成自测框架知识

那么我要做什么呢?

1、每天花十个小时完成python3的学习

要在什么地方做呢?

深圳家里完成7天

那到底要怎么做呢?

完成基本的python3的基础知识,从而再学习测试框架

总结:

1、让我初步了解装饰器、列表生成器、迭代器、内置方法详解等内容

遗留问题:高级购物车代码未写

装饰器:

定义:本质是函数,(装饰其他函数)就是为其他函数添加附加功能<br></br>原则:<br></br>1、不能修改被装饰的函数的源代码<br></br>2、不能修改被装饰的函数的调用方式<br></br><br></br>实现装饰器知识储备:<br></br>1、函数即“变量” (字符串的形式存放)<br></br>#匿名函数<br></br># calc = lambda x:x*3<br></br># print(calc(3))<br></br>#看书本图<br></br>注意:<br></br>1)当一个字符串没有被任何指向时(例:x和y 都不等于1,1会被python自动内存回收)<br></br>2)python函数都是 1、定义声明 2、再调用 注(先调用后定义无效)<br></br><br></br>2、高阶函数<br></br>1) 把一个函数名当做实参传给另外一个函数(在不修改被装饰函数源代码的情况下为其添加功能)<br></br>2)返回值中包含函数名(不修改函数的调用方式)<br></br><br></br>3、嵌套函数<br></br><br></br>高阶函数+嵌套函数 =》 装饰器

![]()![]()```

1 import time

2

3 def timmer(func):

4 def warpper(*args,**kwargs):

5 start_time = time.time()

6 func()

7 stop_time = time.time()

8 print("the func run time is %s" %(stop_time-start_time))

9 return warpper()

10

11 @timmer

12 def test1():

13 time.sleep(3)

14 print("in the test1")

15

16 test1()

View Code

列表生成器:

1、生成器只有在调用时才会生成相应的数据
# 2、只记录当前位置
# 3、只有一个next() 方法。,数据只能往前不能后退,只保留一个元素 next()

![]()![]()```

1 b = (i*2 for i in range(10)) # 最快,生成一个算法

2 for i in b: # 访问了才会开始生成

3 print(i)

4

5 #其他方式

6 [i*2 for i in range(10)] # 直接生成全部

7 #print([i*2 for i in range(10)])

8

9

10 a = [] #最low

11 for i in range(10):

12 a.append(i*2)

13 print(a)

14

15

16 #yield的send用法

17 # f.send有三个作用或可称为三个步骤

18 #1. 将'send value'赋值给ret(注意:不是赋值给i)

19 #2. 重新启动生成器往下走

20 #3. 再执行一次next(f), 相当于函数又返回了一次值

View Code

迭代器:

#函数<br></br>isinstance() #判断一个对象是否是Iterale 对象:<br></br>next()<br></br><br></br>#可以直接作用于for循环的对象统称为 可迭代对象:判断一个对象是否是Iterale<br></br>#可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator<br></br>#注意:有next()方法就叫迭代器,没有就不是 用dir() 查看可用的方法<br></br><br></br><br></br># 凡是可作用于for循环的对象是Iterable类型(可迭代对象):<br></br># 凡是可作用于next()函数的对象都是Iterator类型(迭代器),它们表示一个惰性计算序列:<br></br># 集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象

内置方法详解:

![]()![]()```

1 abs()

2 all() #判断所有可迭代对象是否为真, 非0就是真

3 #print(all([0,-5,3]))

4 any() #任意一个数据为真都返回真

5 #print(any([0,-5,3]))

6 ascii() #返回一个表示对象的字符串

7 bin() # 返回一个整数 int 或者长整数 long int 的二进制表示,十进制转二进制

8 bool() #判断真假

9 bytearray() # 方法返回一个新字节数组。这个数组里的元素是可变的

10 bytes()

11 callable()

12 chr()

13 ord()

14 compile()

15 delattr() #

16 dict() #生成字典

17 enumerate()

18 eval() #字符串编译字典,注:处理数据类型或加减乘除 ,有语句或者for循环只能用exec()

19 exec() #字符串转字典 处理有语句或者for循环的

20 filter() #函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换

21 float() #浮点

22 format()

23 frozenset() #不可变列表,类似元组

24 getattr()

25 globals() #返回一个全局变量的字典,包括所有导入的变量

26 hash() #用于获取取一个对象(字符串或者数值等)的哈希值 类似数据库主键对应值

27 help() #查看帮助

28 hex() #将一个指定数字转换为 16 进制数

29 input()

30 int()

31 isinstance()

32 issubclass()

33 iter() #迭代器

34 len() #字符长度

35 locals() #会以字典类型返回当前位置的全部局部变量

36 map() #会根据提供的函数对指定序列做映射,返回迭代器

37 max() #返回给定参数的最大值

38 min() #返回给定参数的最小值

39 next() #函数要和生成迭代器的 iter() 函数一起使用

40 object()

41 oct() #将一个整数转换成 8 进制字符串,8 进制以 0o 作为前缀表示

42 open() #用于打开一个文件,并返回文件对象

43 ord()

44 pow() #返回 xy(x的y次方)的值

45 # math 模块 pow() 方法的语法: math.pow(x, y)

46 # 内置的 pow()方法: pow(x, y)

47 print() #打印

48 range() #函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表

49 repr() #函数将对象转化为供解释器读取的形式

50 reversed() #用于反向列表中元素

51 round() #返回浮点数 x 的四舍五入值

52 slice() #实现切片对象,主要用在切片操作函数里的参数传递

53 sorted() #对所有可迭代的对象进行排序操作 字典按可以按key或者vaual来排序

54 setattr() #对应函数 getattr(),用于设置属性值,该属性不一定是存在的

55 sum() #对序列进行求和计算

56 tuple() #函数将可迭代系列(如列表)转换为元组

57 type() #只有第一个参数则返回对象的类型,三个参数返回新的类型对象

58 # isinstance() 与 type() 区别:

59 # type() 不会认为子类是一种父类类型,不考虑继承关系。

60 # isinstance() 会认为子类是一种父类类型,考虑继承关系。

61 # 如果要判断两个类型是否相同推荐使用 isinstance()

62 vars() #返回对象object的属性和属性值的字典对象

63 zip() #函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

View Code

json序列化

![]()![]()```

1 #!/usr/bin/env python

2 # -*- coding: utf-8 -*-

3

4 #json序列化

5 import json,pickle

6 def sayhi(name):

7 print("hello,",name)

8

9 info = {

10 "name":"yao",

11 "age":22,

12 "func":sayhi

13

14 }

15

16 f= open("test.text","r")

17 f.write(json.dumps(info))

18 data = json.loads(f.read())

19 f.close()

20 print(data["age"])

View Code

json反序列化

![]()![]()```

1 #!/usr/bin/env python

2 # -- coding: utf-8 --

3 import pickle

4 def sayhi(name):

5 print("hello2222222,",name)

6 f= open("test.text","rb")

7

8 data = pickle.loads(f.read())

9 print(data"func")

View Code

python的装饰器迭代器与生成器_python3 装饰器、列表生成器、迭代器、内置方法详解等(第四周)...相关推荐

  1. python列表的内置方法_Python内置方法详解

    1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名.可以查看所有的字符串的内置方法,如: 1> count: ...

  2. Python内置函数详解——总结篇

      引 言 国庆期间下定决心打算学习Python,于是下载安装了开发环境.然后问题就来了,怎么开始呢?纠结一番,还是从官方帮助文档开始吧.可是全是英文啊,英语渣怎么破?那就边翻译边看边实践着做吧(顺便 ...

  3. Python基本语法_集合set/frozenset_内建方法详解

    目录 目录 前言 软件环境 可变集合Set set函数创建集合 创建空集合 集合元素的唯一性 集合推导式 set类型对象的内置方法 add增加一个元素 remove删除一个元素 pop随机删除并返回一 ...

  4. python全栈开发基础【第十七篇】面向对象反射和内置方法

    一.静态方法(staticmethod)和类方法(classmethod) 类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属性交互(也就是可以使用类属性) 静态方法:让类里的方法直接被 ...

  5. python2和python3分别是python的两个版本_Windows下Python2与Python3两个版本共存的方法详解...

    前言 一向用Python 3,最近研究微信公众号开发,各云平台只支持Python 2.7,想用其他版本需要自己搭建环境.而网上又搜不到Python 3开发微信公众号的资料.暂打算先使用Python 2 ...

  6. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  7. python更新数据库表的时间字段_python更新数据库中某个字段的数据(方法详解)

    连接数据库基本操作,我把每一步的操作是为什么给大家注释一下,老手自行快进. 请注意这是连接数据库操作,还不是更新. import pymysql #导包 #连接数据库 db = pymysql.con ...

  8. python如何设计工具类_Python面向对象 --- 类的设计和常见的内置方法

    面向对象:一种基于面向过程的新的编程思想.也就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种 ...

  9. python对每一列进行归一化_对python3 一组数值的归一化处理方法详解

    1.什么是归一化: 归一化就是把一组数(大于1)化为以1为最大值,0为最小值,其余数据按百分比计算的方法.如:1,2,3.,那归一化后就是:0,0.5,1 2.归一化步骤: 如:2,4,6 (1)找出 ...

最新文章

  1. java中的注解(二)
  2. Juniper SSG 防火墙安全防护之拒绝服务×××[新任帮主]
  3. 如何构建高性能web站点之:分布式缓存
  4. 并发编程之Synchronized原理
  5. 也谈贝叶斯分类(C#)版本
  6. stay hungry stay foolish原文_弟子规原文+译文+注释
  7. 【bzoj 3173】[Tjoi2013]最长上升子序列
  8. 猜字游游戏,while执行10次(Python)
  9. [Java基础]字符流读写数据的方式
  10. LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  11. Windows平台下MySQL常用操作与命令
  12. 对比MySQL,一文看透HBase的能力及使用场景
  13. CSDN如何获取积分
  14. android 距离测量工具,尺子距离测量app
  15. 认证 (authentication) 和授权 (authorization) 的区别
  16. 教师计算机基础知识考试,教师计算机基础知识考核方案.doc
  17. excel中sheet不见了,怎么办
  18. java版溺尸掉三叉戟吗_我的世界1.13通用水鬼塔经验农场(刷三叉戟农场)【内有存档】...
  19. IDEA插件translation翻译插件“翻译失败:未知错误”
  20. 三星打印机显示无法连接服务器,三星打印机不能打印,提示“无法识别的USB设备”解决办法...

热门文章

  1. 利用Angular2的Observables实现交互控制
  2. 1-选择器 计算法
  3. 《浪潮之巅》 读后感
  4. PHP函数整理(一)
  5. 17个提升iOS开发效率的必用工具
  6. WordPress网站的问题
  7. HTML5中类jQuery选择器querySelector的使用
  8. mysql 简单优化规则
  9. 学习OGRE - 读取天龙八部scene文件
  10. jquery学习资源