这本书还是月初的时候翻了翻,看了前十章左右就发现这本书写的比较烂,翻译地就更烂了,讲的内容其实没有抓住重点。

下面是看的时候记得几小段代码:

  1. #首字母相同的男生女生
  2. girls = ['alice', 'bernice', 'clarice']
  3. boys = ['chris', 'arnold', 'bob']
  4. lettergirls = {}
  5. for girl in girls:
  6. lettergirls.setdefault(girl[0], []).append(girl)
  7. print([b+'+'+g for b in boys for g in lettergirls[b[0]]])
  8.  
  9. #斐波那契数列
  10. def fibs(num):
  11. result = [1, 2]
  12. for i in range(num - 2):
  13. result.append(result[-2] + result[-1])
  14. return result
  15. print(fibs(20))
  16.  
  17. #存储全名的字典
  18. def init(data):
  19. data['first'] = {}
  20. data['middle'] = {}
  21. data['last'] = {}
  22. def lookup(data, label, name):
  23. return data[label].get(name)
  24. def store(data, full_name):
  25. names = full_name.split()
  26. if len(names) == 2:
  27. names.insert(1, ' ')
  28. labels = ('first', 'middle', 'last')
  29. for label, name = zip(labels, names):
  30. people = lookup(data, label, name)
  31. if people:
  32. people.append(full_name)
  33. else:
  34. data[label][name] = [full_name]
  35.  
  36. #递归经典:阶乘、幂、二分查找
  37. def search(sequence, number, lower, upper):
  38. if lower == upper:
  39. assert number == sequence[upper]
  40. return upper
  41. else:
  42. middle = (lower + upper) // 2
  43. if number > sequence[middle]:
  44. return search(sequence, number, middle + 1, upper)
  45. else:
  46. return search(sequence, number, lower, middle)
  47.  
  48. #模拟实现无穷算术序列
  49. def checkIndex(key):
  50. if not isinstance(key, (int, long)):
  51. raise TypeError
  52. if key < 0:
  53. raise IndexError
  54. class ArithmeticSequence:
  55. def __init__(self, start = 0, step = 1):
  56. self.start = start
  57. self.step = step
  58. self.changed = {}
  59. def __getitem__(self, key):
  60. checkIndex(key)
  61. try:
  62. return self.changed[key]
  63. except KeyError:
  64. return self.start + key * self.step
  65. def __setitem__(self, key, value):
  66. checkIndex(key)
  67. self.changed[key] = value
  1. #基本的序列与映射规则
  2. def checkIndex(key):
  3. if not isinstance(key, (int, long)):
  4. raise TypeError
  5. if key < 0:
  6. raise IndexError
  7. class ArithmeticSequence:
  8. def __init__(self, start = 0, step = 1):
  9. self.start = start
  10. self.step = step
  11. self.changed = {}
  12. def __getitem__(self, key):
  13. checkIndex(key)
  14. try:
  15. return self.changed[key]
  16. except KeyError:
  17. return self.start + key * self.step
  18. def __setitem__(self, key, value):
  19. checkIndex(key)
  20. self.changed[key] = value
  21. #带有访问计数的列表
  22. class CounterList(list):
  23. def __init__(self, *agrs):
  24. super(CounterList, self).__init__(*args)
  25. self.counter = 0
  26. def __getitem__(self, index):
  27. self.counter += 1
  28. return super(CounterList, self).__getitem__(index)

《Python基础教程》一点笔记的更多相关文章

  1. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  2. 【学习笔记】Python基础教程学习笔记

    教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")----- ...

  3. 《Python基础教程读书笔记》

    第1章 快速构造:基础知识 1.2交互式构造器 不强制分号,一行就是一行.可以加上分号 1.4数字和表达式 加.减.乘.除.整除.求余.指数.取反(-例如-2**2,**的优先级比-大) from _ ...

  4. 《python基础教程》笔记之 异常

    按自己的方式出错 使用raise语句引发一个异常,可以使用一个类(应该是Exception的子类)或者实例参数来作为raise的引发对象.使用类时,程序会自动创建实例,如 >>> r ...

  5. 《python基础教程》笔记之 序列通用操作

    索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可 ...

  6. 《python基础教程》笔记之 基础知识

    数字相关 在Python程序前加上 from __future__ import division 或者在解释器里面直接执行它,或者通过命令行运行Python时使用命令开关-Qnew,会使单斜线不再整 ...

  7. Python基础教程 读书笔记(2)第二章 列表和元组

    2.1序列概览 列表和元组的主要区别在于,列表可以修改,元组则不能.也就是说如果要根据要求来添加元素,那么列表可能会更好用;而出于某些原因,序列不能修改的时候,使用元组则更为合适.使用后者的理由通常是 ...

  8. 《python基础教程》笔记之 抽象

    创建函数 记录函数,在函数的开头写下字符串,它就会作为函数的一部分进行存储,这称为文档字符串,如 def square(x): 'Caculates the square of the number ...

  9. 《python基础教程》笔记之 条件语句和循环语句

    布尔变量 下面的值会被解释器看做假(false): False None 0 "" () {} [] 其它的一切都被解释为真. >>> TrueTrue>& ...

  10. 《python基础教程》笔记之 其它语句1

    print 相关 print可以打印多个表达式,只要将它们用逗号隔开就好,结果中每个参数之间都会插入一个空格,使用+可以避免空格,如 >>> print 'age:',42age: ...

随机推荐

  1. 关于Linux下的连接文件学习总结

    1.连接文件区分为两种,一种类似windows下快捷方式,使用户能够快速连接到目标文件或目录. 另一种则通过文件系统中的inode连接来产生新文件名,而不是产生新文件. 两种方式分别称为符号/硬连接. ...

  2. Windows 下关于转码的函数

    std::string& MsgFieldList::GBToUTF8(std::string& des,const char* str) { WCHAR *strSrc; TCHAR ...

  3. finereport 填报 单元格 JS 触发 提交SQL 事件

    var location = this.options.location; var cr = FR.cellStr2ColumnRow(location); var col = cr.col; var ...

  4. 3 基于梯度的攻击——MIM

    MIM攻击原论文地址——https://arxiv.org/pdf/1710.06081.pdf 1.MIM攻击的原理 MIM攻击全称是 Momentum Iterative Method,其实这也是 ...

  5. 1 基于梯度的攻击——FGSM

    FGSM原论文地址:https://arxiv.org/abs/1412.6572 1.FGSM的原理 FGSM的全称是Fast Gradient Sign Method(快速梯度下降法),在白盒环境 ...

  6. win10 远程桌面ubuntu16

    一. 软件安装 1.1. 打开终端,安装xrdp,vncserver sudo apt-get install xrdp vnc4server xbase-clients 1.2. desktop s ...

  7. 从入门到自闭之Python while如何使用

    while 循环 ​ while 条件: ​ 循环体 终止循环的两种办法: 改变条件 break break和continue的用法: break 用法:打破当前循环,(终止当前循环),所处位置在循环 ...

  8. python_0基础开始_day10

    第十节 一.函数进阶 动态参数 *a r g s —— 聚合位置参数,动态位置参数 默认返回的是tuple元组 def eat(*args):  # 函数的定义阶段 *聚合(打包)    print( ...

  9. multivariate_normal 多元正态分布

    多元正态分布 正态分布大家都非常熟悉了,多元正态分布就是多维数据的正态分布,其概率密度函数为 上式为 x 服从 k 元正态分布,x 为 k 维向量:|Σ| 代表协方差矩阵的行列式 二维正态分布概率密度 ...

  10. Linux-1.3目录结构,基础命令

    1.Linux目录结构 2.Linux基础命令(常用) ctrl+alt+T(打开终端) cd 切换文件夹(pwd查看当前目录) cd /home 绝对路径 以根目录开头 cd admin 相对路径 ...