python学习道路(day5note)(列表生成式,生成器,装饰器,常用模块)

生成列表的方式

data = [1,2,3]  需求   每个数字加上1

# data = ( x*2 for x in range(5))

print(data)

列表生成式

后面的I赋予加1操作,i+q只能放在前面

加上三元运算可以

生成器 (惰性运算,算到哪个值就到哪个值,往后就不算了)就是一个推到行算法

中括号叫做列表生成式,小括号叫做生成器

从左到右执行  当我访问到后面的数时候,前面的就没了

这样也是可以取值的,从左到右

斐波拉契数列

###

###

转为生成器

加了yield 叫做生生成器,不加叫做函数。

####

####互换值

并发

迭代器

所有的生成器肯定是迭代器,但是迭代器不一定是生成器(iter方法认为一个迭代器就是迭代器,本质来讲是一回事)

生成迭代器的方法

装饰器

导入模块路径

第一个是导入模块

第二个是导入模块方法

获取上一级目录

在获取上一级目录

这一条加上就完全可以在任何目录下导入

标准模块

json序列化

上面是序列化,避免了需要转化为字符串的

上面是反序列化,避免了需要转化为字典的

pickle

上面是pickle序列化方法

上面是pickle反序列化

json只能序列化一般的数据类型,但是复杂的类型就需要pickle,而且只能用于自己的语言

软件目录结构规范

项目Foo

Foo/

|-- bin/    可执行文件

|   |-- foo

|

|-- foo/  软件代码目录

|   |-- tests/  测试脚本

|   |   |-- __init__.py

|   |   |-- test_main.py

|   |

|   |-- __init__.py

|   |-- main.py    程序的主入口

|

|-- docs/  文档

|   |-- conf.py

|   |-- abc.rst

|

|-- setup.py  安装第三方库

|-- requirements.txt  第三方包

|-- README

关于readme

时间: 2025-01-11 22:39:39

python学习道路(day5note)(列表生成式,生成器,装饰器,常用模块)的相关文章

python学习笔记(5)--迭代器,生成器,装饰器,常用模块,序列化

生成器 在Python中,一边循环一边计算的机制,称为生成器:generator. 如: 1 >>> g = (x * x for xin range(10)) 2 >>> g3 <generator object <genexpr> at 0x1022ef630> 此处g就是一个生成器. 迭代器 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是gene

Python学习笔记6-python函数补充、装饰器、模块

本文主要学习内容有 函数知识的补充 装饰器(无参.有参.非固定参数.有返回值) 函数知识的补充 稍后待续...

Python学习九:列表生成式

列表生成式,是Python内置的一种极其强大的生成list的表达式. 如果要生成一个list [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9] 可以用 range(1 , 10): [python] view plain copy print? >>> range(1, 9) [1, 2, 3, 4, 5, 6, 7, 8] 可是,如果要生成[1*1 , 2*2 , 3*3 , ... , 10*10] 怎么做呢?可以使用循环: [python] view plai

参数-匿名函数-生成式-生成器-装饰器

1.函数的参数 参数类型:关于函数的参数,我们经常在一些代码中会发现 def(*args,**kwargs)的表现形式,其中定义的分别是元组和字典: *args -- tuple(1,) **kwargs -- dict("k":"v") 例如: fun(*args,**kwargs ) fun(1,2,3,4,5,a=10,b=40 ) 我们也可以简单的定义一个函数的参数: def add(*args): total = 0 for i in args: tota

Python 全栈开发五 迭代器 生成器 装饰器

一.迭代器 迭代器是一个可以记住遍历的位置的对象.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 迭代器有两个基本的方法:iter() 和 next(). 字符串,列表或元组对象都可用于创建迭代器,生成迭代器的方法是iter(): >>li = [1,2,3,4,5] >>it = iter(li) #生成一个迭代器 >>it.__next__() 1 >>next(it) #以上两种next都可以使用 2 >

python学习笔记-Day04-第四部分(装饰器)

这周学到了python的装饰器,以前没有接触过,问了一个搞php开发的同事什么是装饰器,他说就好像构造函数一样,可惜我已经把构造函数忘得光光了,想不起来是啥了.现在就找资料了解了解.毕竟装饰器是一个不用也能实现程序的功能,但是用了装饰器以后会显得你的技术特NB,但是不太好理解 学装饰器之前,需要先了解一下函数,前面的笔记里,有写过函数相关的笔记,可以先去参考一下前面的文章,这里只简单说一下. 在python中,函数由  def 关键字,函数名,可选的参数列表和函数体 来组成,通过return语句

流畅的python学习笔记第七章:装饰器

装饰器就如名字一样,对某样事物进行装饰过后然后返回一个新的事物.就好比一个毛坯房,经过装修后,变成了精装房,但是房子还是同样的房子,但是模样变了. 我们首先来看一个函数.加入我要求出函数的运行时间.一般来说代码写成如下.但是我有很多个函数都要计算运行时间.每个函数里面都要写一个计时的过程是一件很麻烦的事. def target():     start=time.time()     print 'running target()'     end=time.time()     print e

Python学习心得(六) 反射机制、装饰器

1.反射机制 #/usr/bin/env python # -*- coding:utf-8 -*- ''' Python反射机制的核心本质:利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动 通俗讲就是通过用户传入url的不同,调用不同的模块函数,好多比较流行的web框架都是通过反射的机制,根据url的不同指向不同的模块 getattr(),hasattr(),setattr(),delattr()对模块的修改都在内存中进行,并不会影响文件中的真实内容

【Python学习之旅】---类的装饰器

#类的装饰原理,自定义一个高阶函数(把函数当做参数传入,返回值也是相同函数地址)def foo(bar): print(bar) bar.x=1 #操作Name的属性字典 bar.y=2 return bar@foo #Name=foo(Name)class Name: pass print(Name.__dict__) #输出Name的属性字典 #一切皆对象,函数也有属性字典@foodef test(): print('test函数')test()print(test.__dict__) #执