装饰器——闭包

# 装饰器  闭包

'''

    如果一个内部函数对外部(非全局)的变量进行了引用,那么内部函数被认为是闭包

    闭包 = 函数块  +  定义时的函数环境

'''

def f():
x = 100
y = 200 def mytext():
return x + y return mytext s=f()
print(s())

装饰器——高潮1

import time

def foo():
print("foo..........")
time.sleep(2) def root():
print("root---------")
time.sleep(1) def get_time(h):
start = time.time()
h
stop = time.time()
print("运行时间为: %s" % (stop - start)) get_time(root())

装饰器——高潮2

import time

def get_time(h):
def inner():
start = time.time()
h()
stop = time.time()
print("运行时间为: %s" % (stop - start)) return inner @get_time
def foo():
print("foo..........")
time.sleep(2) @get_time
def root():
print("root---------")
time.sleep(1) foo()

装饰器——函数功能添加参数

import time

def get_time(f):
def inner(*s):
start = time.time()
f(*s)
end = time.time()
print("使用时长为: %s" % (end - start)) return inner @get_time
def add(*a):
sum = 0
for i in a:
sum += i;
print(sum)
time.sleep(2) add(2, 3, 5, 7)

列表生成式

# 列表生成式
a = [x * x for x in range(10)]
print(a)

列表生成器

# 列表生成器

s = (x * 2 for x in range(5))
# print(s) # print(s.__next__())
print(next(s)) print(next(s))
print(next(s))
print(next(s))
print(next(s)) print("*-*--**--*--*-*-*-*---*") def foo():
print("ok1")
yield 1
print("ok2")
yield 2 g = foo()
# next(g)
# next(g)
for i in g:
# while True:
# i = next(foo())
print(i)
print("/*//***/*/***//*/**/*") a = [1, 2, 3]

斐波那契数列

def fib(m):
i, a, b = 0, 0, 1
while i < m:
print(b)
a, b = b, a + b
i += 1 # fib(10) z = 10
c = 20 print("------------") z, c = c, z + c print(z)
print(c) print("*************") z = 10
c = 20 z = c
c = z + c print(z)
print(c) print("-------------")

Python学习基础(三)——装饰器,列表生成器,斐波那契数列的更多相关文章

  1. python学习笔记(五):装饰器、生成器、内置函数、json

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...

  2. python学习之day5,装饰器,生成器,迭代器,json,pickle

    1.装饰器 import os import time def auth(type): def timeer(func): def inner(*args,**kwargs): start = tim ...

  3. python学习笔记之装饰器、生成器、内置函数、json(五)

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面 ...

  4. python 给定n,返回n以内的斐波那契数列

    方式一:函数 def fabs(n): a, b = 0, 1 while b < n: print(b, end=' ') a, b = b, a+b fabs(1000) 方式二:列表 re ...

  5. 斐波拉契数列(用JavaScript和Python实现)

    1.用JavaScript 判断斐波拉契数列第n个数是多少 //需求:封装一个函数,求斐波那契数列的第n项 //斐波拉契数列 var n=parseInt(prompt("输入你想知道的斐波 ...

  6. 5.python(迭代器,装饰器,生成器,基本算法,正则)

    一,迭代器 1.迭代器  (1)迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退.  (2)对于原生支持随机访问的数据结构(如t ...

  7. python笔记-4(装饰器、生成器、迭代器)

    一.熟练掌握装饰器的原理 (在装饰器学习的过程中,查了看了很多资料,个人感觉走了很多的弯路,这个笔记,分享我的理解,希望能帮助到一些人.本文对装饰器的描述,侧重点是条理与逻辑思路,想通过从无到有的方式 ...

  8. Python(迭代器 生成器 装饰器 递归 斐波那契数列)

    1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优 ...

  9. python学习笔记之装饰器、递归、算法(第四天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

随机推荐

  1. Dotfuscator 使用图解教程

    Dotfuscator:是.NET混淆器和压缩器,它可以帮助您防止您的应用程序被反编译.同时,它还可以使得您的应用程序更加小巧以及高效.我用的是4.9版本的Dotfuscator,Dotfuscato ...

  2. (转载)Spring定时任务的几种实现

    spring框架定时任务 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerT ...

  3. iOS UI基础-15.0 UIWebView

    WebView介绍 知识点: 代码创建一个UIWebView OC调用html的js js页面调用OC 相关代码实现 代码创建一个UIWebView // 1.webView UIWebView *w ...

  4. big and little endian

    总是容易搞混big endian 和 little endian,但是找到一篇文章,其解释让人耳目一新. 文章链接:http://www.cs.umd.edu/class/sum2003/cmsc31 ...

  5. notepad怎么把空格替换成回车?

    替换时选中“使用正则表达式”查找里输入\s替换里输入\r然后“全部替换”即可

  6. report源码分析——report_object和report_message

    uvm的report机制,主要涉及uvm_report_object,uvm_report_handle,uvm_report_server这三个类: uvm_report_object主要是提供uv ...

  7. repr()函数

    http://www.cnblogs.com/itdyb/p/5046415.html

  8. 用Hexo在GitHub上搭建个人博客

    我用Hexo在GitHub上搭建好了自己的博客,我的这第一篇博客就来说说搭建的过程. 1 环境配置 本文使用环境如下: Windows 10 node.js v8.1.3 git v2.13.2 np ...

  9. JavaScript循环和数组常用操作

    while循环 语法: do while循环 语法:do{循环体}while(条件表达式); 特点:do while循环不管条件是否成立,无论如何循环体都会执行一次. 使用场合:用户输入密码,如果密码 ...

  10. Redis Cluster(集群)的搭建

    一.Redis的下载.安装.启动(单实例) 我们统一将Redis安装在/opt目录下,执行命令如下: $ cd /opt $ wget http://download.redis.io/release ...