装饰器——闭包

# 装饰器  闭包

'''

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

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

'''

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. Mac Maven配置

    Maven下载链接,解压到指定目录,我这里是 /Users/JYH/Desktop/Hadoop-2.7.2/apache-maven-3.3.9 打开终端,配置环境变量 输入命令 vi ~/.bas ...

  2. python call so

    作为一个老程序员,如果,python不能与c发生点儿关系,我都挺过意不去的啊 那么,就解决了这个强迫症吧,阿门! //pycall.c #include <stdio.h> #includ ...

  3. webpack使用六

    插件(Plugins) 插件(Plugins)是用来拓展Webpack功能的,它们会在整个构建过程中生效,执行相关的任务. Loaders和Plugins常常被弄混,但是他们其实是完全不同的东西,可以 ...

  4. InstallShield2015制作安装包----------卸载后删除安装目录和文件

    卸载程序后,一般是需要将安装目录清除干净.但是,如果程序运行中有文件生成,这时InstallShield自带的卸载程序,不会卸载这些运行时生成的文件. 卸载不干净,可能会对下次程序的安装,和安装后的运 ...

  5. TP父类及模板继承

    一.TP父类方法继承 session用法 用登录页面做例子 <?php namespace Home\Controller; use Think\Controller; class LoginC ...

  6. efcore从数据库快速生成实体及context

    有些项目开发时先建立数据库,再用codefirst来书写entity和EntityConfiguration,比较耗费功夫. 1.在vs2017中新建个asp.net core的web项目,或者其他项 ...

  7. php-fpm慢日志配置

    upstream timed out (110: Connection timed out) while reading response header from upstream Nginx报错日志 ...

  8. Sitecore安装(手动方式)

    Sitecore安装 Sitecore提供手动安装压缩包(.zip)和自动安装程序包(.exe),当您运行自动安装程序时,引导界面会指导您一步步进行安装.为了让您更细致的了解Sitecore的安装配置 ...

  9. python os.path.expanduser()

    # Expand the user's home directory

  10. 20165305 苏振龙《Java程序设计》第四周课上测试补做

    第一次测试 第二次测试 第三次测试 上传代码 第四次测试 总结 之前我一直在git bash进行程序设计,但是对于我来说操作起来有点困难,所以我改用了虚拟机,之后之前一直困扰我的问题在虚拟机下就没有了 ...