摘要: 利用闭包返回一个计数器函数,每次调用它返回递增整数: # -*- coding: utf-8 -*-def createCounter(): def counter(): return 1 return counter # 测试: counterA = createCounter() print(c 阅读全文
posted @ 2018-07-02 14:09 Cranx 阅读(1176) 评论(0) 推荐(0) 编辑
摘要: a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。 阅读全文
posted @ 2018-05-21 17:13 Cranx 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456: # -*- coding: utf-8 -*- from functools import reduce def str2float(s): DIGITS = {'0': 0, '1': 阅读全文
posted @ 2018-05-11 13:27 Cranx 阅读(1197) 评论(0) 推荐(0) 编辑
摘要: Python中+=是什么意思? 1. 相加,然后返回值给前一个变量eg: >>> a=1>>> b=2>>> a+=b>>> a32. 字符串连接>>> a='1'>>> b='2'>>> a+=b>>> a'12'注意第二个有引号, 是作为字符串处理的。 阅读全文
posted @ 2018-05-10 16:32 Cranx 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 。map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map( 阅读全文
posted @ 2018-05-10 16:31 Cranx 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 注意,赋值语句: a, b = b, a + b 相当于: t = (b, a + b) # t是一个tuple a = t[0] b = t[1] 但不必显式写出临时变量t就可以赋值。 阅读全文
posted @ 2018-05-10 14:10 Cranx 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 把abs指向10后,就无法通过abs(-10)调用该函数了!因为abs这个变量已经不指向求绝对值函数而是指向一个整数10! 当然实际代码绝对不能这么写,这里是为了说明函数名也是变量。要恢复abs函数,请重启Python交互环境。 那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函 阅读全文
posted @ 2018-05-10 13:46 Cranx 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 函数就是面向过程的程序设计的基本单元。 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出, 阅读全文
posted @ 2018-05-10 11:20 Cranx 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 凡是可作用于for循环的对象都是Iterable类型; 凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列; 集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。 Pytho 阅读全文
posted @ 2018-05-10 11:08 Cranx 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断: >>> from collections import Iterable >>> isinstance('abc', Iterable) # str是否可迭代 True >>> isinstance([ 阅读全文
posted @ 2018-04-27 16:23 Cranx 阅读(1049) 评论(0) 推荐(0) 编辑