摘要: Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身: >>> for i, value in enumerate(['A', 'B', 'C']): ... print(i, value) ... 0 A 1 B 2 C 阅读全文
posted @ 2018-04-27 16:22 Cranx 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! 阅读全文
posted @ 2018-04-23 16:40 Cranx 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。 Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。 阅读全文
posted @ 2018-04-20 16:53 Cranx 阅读(2186) 评论(0) 推荐(0) 编辑
摘要: 如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数。这种方式定义的函数如下: def person(name, age, *, city, job): print(name, age, city, job) 和关键字参数**kw不同,命名关键字参数需要一个 阅读全文
posted @ 2018-04-20 14:09 Cranx 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数: def calc(*numbers): sum = 0 for n in numbe 阅读全文
posted @ 2018-04-19 16:14 Cranx 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 默认参数很有用,但使用不当,也会掉坑里。默认参数有个最大的坑,演示如下: 先定义一个函数,传入一个list,添加一个END再返回: def add_end(L=[]): L.append('END') return L 当你正常调用时,结果似乎不错: >>> add_end([1, 2, 3]) [ 阅读全文
posted @ 2018-04-16 16:51 Cranx 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 1 # -*- coding: utf-8 -*- def triangles(): line = [1] while True: yield line line = [x + y for x, y in zip([0] + line, line + [0])] n = 0 for t in tri 阅读全文
posted @ 2017-07-03 19:25 Cranx 阅读(158) 评论(0) 推荐(0) 编辑
摘要: d = {'x': 'A', 'y': 'B', 'z': 'C'} # 下方的三种方式都能生成同样的列表 a = [] for k, v in d.items(): # 直接生成键和值,再添加到空列表中 a.append(str(k + '=' + v)) print(a) b = [] for 阅读全文
posted @ 2017-07-03 12:33 Cranx 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 字典浅拷贝实例 实例 >>>a = {1: [1,2,3]} >>> b = a.copy() 阅读全文
posted @ 2017-07-01 15:38 Cranx 阅读(156) 评论(0) 推荐(0) 编辑
摘要: Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。2. copy.deepcopy 深拷贝 拷贝对象及其子对象一个很好的例子: Code highlighting produc 阅读全文
posted @ 2017-07-01 15:25 Cranx 阅读(143) 评论(0) 推荐(0) 编辑