正式学习python第一天,网上找到了python教程,带练习题的,又装了ubuntu。

这是学习笔记:

 list[]:        可变,append/1,insert/2,pop/index?

 tuple():    不变

 dict{}:        可变,values/0,itervalues/0,values/0,iteritems/0,items/0

 set([]):    可变,add/1,remove/index

 str:  .join/list  .capitalize/0 .title/0 .upper/0  .lower/0 .strip(rm),

 len/1,
enumerate/1,
zip/2,
isinstance/(var,type),
map/(fun/1,list),
reduce/((fun/2+start?),list),
filter/(fun/1,list),
sorted/(list,diy_cmp_fun/2), !def!内层函数引用了外层函数的参数,然后返回内层函数的情况,称为闭包(Closure)
!ex!
def calc_sum(lst):
def lazy_sum():
return sum(lst)
return lazy_sum
!note!不要引用任何循环变量,或者后续会发生变化的变量
!dying!
def count():
fs = []
L=range(1,4)
for i in range(1, 4):
def f(j):
def g():
return j*j
return g
r=f(i)
fs.append(r)
return fs f1, f2, f3 = count()
print f1(), f2(), f3()

View All Note

学到list的切片,发现和matlab相似,很是欣喜,因为有点matlab基础,所以瞬间过关,信心暴增。

学到生成列表表达式,让我惊叹不已,它表达的方式很贴切,好用,用来生成html时,信心再次暴增,因为懂点html标签,又过了一关。

到闭包那里就感情复杂了,这东西能返回特定的函数,虽然不懂干啥用,但还是觉得很厉害的样子。被练习题难倒,好不容易才有的头绪。

这里面牵扯了种种指针,学过c,所以勉强理解。差点崩盘,在此祭出答案压压惊。

 def count():
fs = []
L=range(1,4)
for i in range(1, 4):
def f(j):
def g():
return j*j
return g
r=f(i)
fs.append(r)
return fs f1, f2, f3 = count()
print f1(), f2(), f3()

题目在慕课网.python进阶.闭包。

我的理解:函数f接受j(即i),在自己的内存里创建j的副本,这样j为1或2或3,就固定下来,返回的g函数就为1×1或2×2或3×3,r为f(i)的指针即r()等价与f(i),与原代码不同的是,此时的i已经被闭入f,f又能返回此时的状态,所以i再变化也影响不到j×j,这大概就是所谓的“闭包”吧。之后将函数指针并入list传到count的外面,就能食用了。

这是第一天,继续加油。

python学习 第一天的更多相关文章

  1. python学习第一讲,python简介

    目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...

  2. Python学习-第一天-函数和模块的使用

    目录 Python学习-第一天总结 print输出的一种简单格式 函数参数之可变参数 模块管理函数 if else语句的单行实现(简洁) 变量作用域 函数书写格式 Python学习-第一天总结 pri ...

  3. python 学习第一天

    第一天接触python,首先感谢老男孩的授课老师!!!! 今天的知识点: 1.首先接触到python的第一个模块getpass(这边有点迷茫,不能确定的是这个getpasss是一个库还是一个模块)ge ...

  4. Python学习第一篇

    好久没有来博客园了,今天开始写自己学习Python和Hadoop的学习笔记吧.今天写第一篇,Python学习,其他的环境部署都不说了,可以参考其他的博客. 今天根据MachineLearning里面的 ...

  5. python学习第一

    #python学习day1#一.变量#变量命名规范:#驼峰命名法:AgeOfPlane#下划线命名(推荐):age_of_plane#变量格式同C/C++#注意:变量不以中文命名:变量不宜过长:变量因 ...

  6. python学习 第一章(说不定会有第零章呢)one day

    ------------恢复内容开始------------ 一.啥是python python是吉尔·范罗苏姆于1989年开发的一个新的脚本解释程序,是ABC语言的一种继承. 二.python的特点 ...

  7. Python学习第一弹——Python环境搭建

    一.Python简介: Python,是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有 ...

  8. python学习第一天内容整理

    .cnblogs_code { width: 500px } 一.python 的历史 (摘自百度百科,了解就ok) Python[1]  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn ...

  9. python学习第一天基础篇

    学习背景:决定开始学习python之前,因为公司基本都是微软系统,所以很少碰到linux系统,机缘巧合接到了一个项目是使用shell对mysql进行backup,因为公司唯一的系统工程师是微软在行,对 ...

随机推荐

  1. 自动化运维工具Ansible详细部署 (转载)

    自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog. ...

  2. 3、CCS样式表

    一.CCS样式表的分类(优先级从低到高): 1.浏览器默认样式表 2.外部样式表:在外部创建的.ccs文件中.使用外部样式表可以使样式应用于多个网页.通过这个方法只需改动一个文件就能改变整个网站的外观 ...

  3. HDU 1003 maxsum

    #include<iostream> #include<vector> using namespace std; typedef struct { int maxsum; in ...

  4. css浏览器兼容问题

    https://www.douban.com/group/topic/4629864/

  5. jQuery入门(2)使用jQuery操作元素的属性与样式

    jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...

  6. 兼容IE8以下浏览器input表单属性placeholder不能智能提示功能

    当前很多表单提示使用了表单属性placeholder,可这属性不兼容IE8以下的浏览器,我自己写了一个兼容处理js // 兼容IE8以下浏览器input不能智能提示功能 if(navigator.ap ...

  7. appCan uexLocation 定位功能

    js的引用: <script src="../js/zy_control.js"></script> <script src="../js/ ...

  8. UTC与GMT时间

    整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated).UTC与格 ...

  9. plist文件的读取和xib加载cell

    plist 文件读取 例如在工程里倒入了plist文件 在工程里需要用到plist文件里的信息,就需要把plist文件读取出来. 如程序: -(NSArray *)moreDataArr{ if (! ...

  10. python:列表与元组

    1.python包含六种内建的序列,列表和元组是其中的两种,列表可以修改,元组则不能 2.通用序列操作 2.1 索引:和C#的区别是索引可以为负数,最后一个元素索引为-1,索引超出范围会报错 例:&g ...