下面是具名元组的演示程序:我们创建了一个 ToDoList 类,并且支持 + 、索引、切片与显示等操作。并且通过格式化输出,美化打印结果。 from collections import namedtuple
ToDo = namedtuple('ToDo', 'date content priority') class ToDoList: def __init__(self): self.item = []
def add(self, date, content, priority):
self.item.append(ToDo(date, content, priority)) def _modify(self, item): self.item = item @property
def _getitem(self): return self.item
def __getitem__(self, pos): return self.item[pos] def __add__(self, other):
item = self._getitem + other._getitem t = ToDoList() t._modify(item) return t
def __repr__(self): items = self._getitem
text = '{:<5}{:^10}{:^10}'.format('date', 'content', 'priority')
fmt = '{:<5}{:^10}{:^10}' for item in items: text += '\\n'
text += fmt.format(item.date, item.content, item.priority) return text __str__ = __repr__
21
def main(): t1 = ToDoList() t1.add(12, 'play', 0) t1.add(8, 'seek', 6) t2 = ToDoList() t2.add(4, 'sleep', 2) t3 = t1 + t2 print(t3)
if __name__ == '__main__': main() # 输出
# date content priority #12 play 0 #8 seek 6 # 4 sleep 2 三、递归 1. 阶乘
迭代停止条件:n < 2 # 阶乘 # n > 0 def factor(n):
return 1 if n < 2 else n * factor(n-1) 2. 序列和
迭代停止条件:序列为空 # 和
def naive_sum(seq):
22
if not seq: return 0 else:
return seq[0] + naive_sum(seq[1:]) 3. 求序列长度
迭代停止条件:序列为空 # 计数
def naive_count(seq): if not seq: return 0 else:
return 1 + naive_count(seq[1:]) 4. 求序列最大值 迭代停止条件:序列为空 # 最大值 count = 1
def naive_max(seq): global count global max_num if count: max_num = seq[0] count = 0 if not seq: count = 1 return max_num else:
if seq[0] > max_num:
23
seq[0], max_num = max_num, seq[0] return naive_max(seq[1:])
以上便是本次的全部内容,大家可以亲自编程练练手。
学会Python很简单,谨记“3456”这四个数字,学习效率事半功倍
鉴于大多数书籍在编写上都结构混乱,无法体现出知识的系统性、逻辑性和层次性。特整理出学Python最基础的知识学习框架,希望帮助大家快速入门。 要快速学会Python,谨记3456这四个数字就可以了。
下面我来描述这四个数字的含义!我是按照数字的顺序来描述的,但在学习的顺序上,请按照5、6、3、4的顺序展开学习。
三个基本概念
1. 结构化(函数、模块、包)
24
2. 面向对象(类及派生类、重载) 3. 虚拟环境(版本管理、环境隔离)
四类基本操作
1. 数据操作(各种数据类型的操作) 2. 文件操作(文件打开读写关闭等操作) 3. 模块操作(导入使用、模块查寻等操作) 4.并发操作(进程与线程、锁/信号号/安全队列等)
五大基本语句(5)
1. 赋值语句(变量、对象、赋值运算符) 2. 输入输出语句(print, input函数) 3. 条件判断语句(if-elif-else语句)
4. 循环语句(遍历循环for-in-else、条件循环while-else、break/continue) 5. 异常处理语句(try-except-else-finally)
六种数据类型(6)
25
1. 数字类型(int,bool,float,complex) 2. 字符串(str) 3. 列表(list) 4. 元组(tuple) 5. 字典(dict) 6. 集合(set)
如果你能够把上面的几个要点都掌握了,那么就算是真正地入门了。
26