码迷,mamicode.com
首页 > 其他好文 > 详细

2.18周四笔记

时间:2016-02-19 00:19:09      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

 

day4

迭代器:

1.

li=[11,22,33,44,55,66,77]

count =len(li)

start = 0

while count>start:

print(li[start])

         start +=1

用索引,所有语言几乎都支持while

 

2.for循环的本质

a.创建一个特殊的东西(迭代器 iter() )

b.根据这个东西,去操作列表Li的内容

c.执行迭代器会返回一个对象,对象是含有next方法

d.一个一个的去内存取li里面的值

 

obj = iter(li)

while Ture:

item = obj__next__()

item(item)

去完就会报stop...(for 循环不报错是因为try except Exception:

 

3.总结:

a.while,索引,下标取数据,随意取

b.for, 执行迭代器iter,获取一个对像-->执行对象的next方法,按顺序拿

 

 

生成器(非常重要)

1.python 2.7

range(10) —>内存立马创建0-9,如果数字大,吃内存

xrange(10)—>内存里没有数字

for i in xrange(10):

内存第一次循环时先创建i= 0

内存第二次循环内存里创建i=1

       。。。。。。。。。。。。。。

       内存第九次循环内存里创建i=9

       print (i)

 

2.

redis———hash(哈希)

监控  www.baidu.com      每个时段的流量数据

结构:hash(哈希)

n1———k1 = v1

n2———k11 = v11

key          value

服务器100G                       本地电脑10G

dic.keys()                            #全部获取

 

3.文件操作

f = open(‘file.log’)

#f.read() # 会一下子把日子读入内存

for line in f :      #触发f的__inter__方法

print(line) #生成器,内存消耗问题解决了

 

def show():

yield(line1)

yield(line2)

yield(line3)

my_f = show()

for line in my_f:

print(line)

 

 

 

 

4.yield 关键词

-------------

def show():  #函数

return 123

i = show()

print(i

输出 123

-------------

def show(): #生成器

  yield   123

 

i = show()

print(i

输出 generator

 

5.总结:

def show():

yield(line1)

yield(line2)

yield(line3)

my_f = show()

for line in my_f:

print(line)

‘’’

line1

line2

line3

’’’’

-----运行逻辑-----

1.如果函数返回含有yield,函数返回值特殊的东西(含有next方法;必须和for一起使用)

2.for,函数返回特殊东西,内部执行迭代,如果遇到yield,就会把yield后面的值拿到就跳出函数的同时并记住上次

执行的位置,同时把该值赋值给for 的i

3.然后再继续执行函数,回到上一次执行代码的位置,继续往下执行

-----简单理解-----

1.生成器的返回值必须通过迭代器执行

2.yield冻结状态,记住上一次执行的位置

 

 

装饰器

def login(func):     func=原来的show

def wrapper(*arg,**kwargs):

print(‘before’

ret =func((*arg,**kwargs)

print(ret)

print(‘after’)

return tet

return wrapper

def show()

return ‘show’

#show 内存值  show()执行函数

new_show = login(show)

‘’’

相当于

def new_show():

ret = show(*arg,**kwargs)

return ret

‘’’

 

--------

@login

def show()

return ’show’

功能上实现了一个嵌套

 

 

 

递归

正则表达式

基础算法

常用模块:json pickle

2.18周四笔记

标签:

原文地址:http://www.cnblogs.com/alan-babyblog/p/5199543.html

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