zoukankan      html  css  js  c++  java
  • python 笔记(一)

     学习Python基础知识笔记~~~~~~~~~~~~~~~~~

    (1)generator    生成器

            通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们          仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。

            所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,          这种一边循环一边计算的机制,称为生成器(Generator)。

    (2)filter             选择器   

            filter函数,接受2个参数,一个已定义的函数或lambda表达式,和一个可迭代的对象

            他的作用过程是,将第二个可迭代对象的内部参数,一个一个传入function内部使用,如果返回值是True,则加入结果,反之,则不加入

            最终,生成一个迭代器,由所有返回结果为True的元素组成。

    (3)decorator     装饰器 

            就是把一个函数当参数传到另一个函数中,然后再回调。根据《函数式编程》中的first class functions中的定义的,你可以把函数当成变量来使用,所以,decorator必需得返          回了一个函数出来给func。同样的,可以有多个decorator或是带参数的decorator。

     (1). yield 生成器
    1
    def co(n): 2 a, b= 0,1 3 4 while n<5: 5 yield {"{}".format('a'):a,"{}".format('b'):b} 6 a+=1 7 b+=1 8 n+=1 9 c = list(co(2)) 10 print(c) 11 for i in co(2): 12 print(i) 13 14 output: 15 16 F:sparkpython35python.exe F:/learnPython/weixin/ML/sparklearn.py 17 [{'a': 0, 'b': 1}, {'a': 1, 'b': 2}, {'a': 2, 'b': 3}]18 {'a': 0, 'b': 1} 19 {'a': 1, 'b': 2} 20 {'a': 2, 'b': 3} 21 22 Process finished with exit code 0



    (2)filter选择器
     1 a = [i for i in range(10)]
     2 print(a)
     3 def test_filter(s):
     4     if s%2==0:
     5         return True
     6     else:
     7         return False
     8 print(list(filter(test_filter,a)))
     9 
    10 
    11 output:
    12 
    13 F:sparkpython35python.exe F:/learnPython/weixin/ML/sparklearn.py
    14 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    15 [0, 2, 4, 6, 8]
    16 
    17 Process finished with exit code 0
     1 import time
     2 # print(time.strftime("%Y-%m-%d %X",time.localtime(int(time.time()))))
     3 def now():
     4     print(time.strftime("%Y-%m-%d %X",time.localtime(int(time.time()))))
     5 # f = now()
     6 f = now
     7 # f()
     8 # print(now.__name__)
     9 # print(f.__name__)
    10 
    11 def logs(fuc):
    12     def wrapper(*args,**kw):
    13         print('call {}'.format(fuc.__name__))
    14         return fuc(*args,**kw)
    15     return wrapper
    16 
    17 @logs
    18 def now_2():
    19     print(now())
    20 
    21 now_2()
    22 
    23 
    24 ########OUTPUT##########
    25 
    26 F:sparkpython35python.exe F:/learnPython/weixin/ML/sparklearn.py
    27 call now_2
    28 2018-01-17 19:43:24
    29 None
    30 
    31 Process finished with exit code 0



    2).复杂一点

     1 def log_2(text):
     2     def decorator(func):
     3         def wrapper(*args,**kw):
     4             print("{},{}".format(text,func.__name__))
     5             return func(*args,**kw)
     6         return wrapper
     7     return decorator
     8 @log_2('hello world ! ')
     9 def now_3():
    10     print(now())
    11 now_3()
    12 
    13 #######OUTPUT########
    14 F:sparkpython35python.exe F:/learnPython/weixin/ML/sparklearn.py
    15 hello world ! ,now_3
    16 2018-01-17 19:51:59
    17 None
    18 
    19 Process finished with exit code 0
    20 ##################

    (3)class类型的装饰器

     1 class makeHtmlTagClass1(object):
     2     def __init__(self,tag,css_class=""):
     3         self._tag  = tag
     4         self._css_class = " class='{0}'".format(css_class) 
     5                                            if css_class  !=  ""  else ""
     6 
     7     def __call__(self,fn):
     8         def wrapped(*args,**kwargs):
     9             return "<"+self._tag + self._css_class+">" 
    10                    + fn(*args,**kwargs) + "</" +self._tag+">"
    11         return wrapped
    12 @makeHtmlTagClass1(tag="b",css_class="bold_css")
    13 @makeHtmlTagClass1(tag="i",css_class="italic_css")
    14 def hello(str):
    15     return "Hello , {}".format(str)
    16 
    17 print(hello("HqIWaS ChAlS"))
    18 
    19 ######OUTPUT########
    20 
    21 F:sparkpython35python.exe F:/learnPython/weixin/ML/sparklearn.py
    22 <b class='bold_css'><i class='italic_css'>Hello , HqIWaS ChAlS</i></b>
    23 ##################
  • 相关阅读:
    楼宇监控说明
    数字音视频监控系统说明
    图书管理系统详细设计说明
    超邃视频远程监控系统说明
    单点登录系统(SSO)详细设计说明
    视频监控系统的作用何在
    视频监控技术与应用
    HTML--CSS样式表--基本概念(超链接的状态)
    HTML静态网页--框架
    HTML--表格与表单
  • 原文地址:https://www.cnblogs.com/BigStupid/p/8305776.html
Copyright © 2011-2022 走看看