《Python基础教程》一点笔记
这本书还是月初的时候翻了翻,看了前十章左右就发现这本书写的比较烂,翻译地就更烂了,讲的内容其实没有抓住重点。
下面是看的时候记得几小段代码:
- #首字母相同的男生女生
- girls = ['alice', 'bernice', 'clarice']
- boys = ['chris', 'arnold', 'bob']
- lettergirls = {}
- for girl in girls:
- lettergirls.setdefault(girl[0], []).append(girl)
- print([b+'+'+g for b in boys for g in lettergirls[b[0]]])
- #斐波那契数列
- def fibs(num):
- result = [1, 2]
- for i in range(num - 2):
- result.append(result[-2] + result[-1])
- return result
- print(fibs(20))
- #存储全名的字典
- def init(data):
- data['first'] = {}
- data['middle'] = {}
- data['last'] = {}
- def lookup(data, label, name):
- return data[label].get(name)
- def store(data, full_name):
- names = full_name.split()
- if len(names) == 2:
- names.insert(1, ' ')
- labels = ('first', 'middle', 'last')
- for label, name = zip(labels, names):
- people = lookup(data, label, name)
- if people:
- people.append(full_name)
- else:
- data[label][name] = [full_name]
- #递归经典:阶乘、幂、二分查找
- def search(sequence, number, lower, upper):
- if lower == upper:
- assert number == sequence[upper]
- return upper
- else:
- middle = (lower + upper) // 2
- if number > sequence[middle]:
- return search(sequence, number, middle + 1, upper)
- else:
- return search(sequence, number, lower, middle)
- #模拟实现无穷算术序列
- def checkIndex(key):
- if not isinstance(key, (int, long)):
- raise TypeError
- if key < 0:
- raise IndexError
- class ArithmeticSequence:
- def __init__(self, start = 0, step = 1):
- self.start = start
- self.step = step
- self.changed = {}
- def __getitem__(self, key):
- checkIndex(key)
- try:
- return self.changed[key]
- except KeyError:
- return self.start + key * self.step
- def __setitem__(self, key, value):
- checkIndex(key)
- self.changed[key] = value
- #基本的序列与映射规则
- def checkIndex(key):
- if not isinstance(key, (int, long)):
- raise TypeError
- if key < 0:
- raise IndexError
- class ArithmeticSequence:
- def __init__(self, start = 0, step = 1):
- self.start = start
- self.step = step
- self.changed = {}
- def __getitem__(self, key):
- checkIndex(key)
- try:
- return self.changed[key]
- except KeyError:
- return self.start + key * self.step
- def __setitem__(self, key, value):
- checkIndex(key)
- self.changed[key] = value
- #带有访问计数的列表
- class CounterList(list):
- def __init__(self, *agrs):
- super(CounterList, self).__init__(*args)
- self.counter = 0
- def __getitem__(self, index):
- self.counter += 1
- return super(CounterList, self).__getitem__(index)
《Python基础教程》一点笔记的更多相关文章
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- 【学习笔记】Python基础教程学习笔记
教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")----- ...
- 《Python基础教程读书笔记》
第1章 快速构造:基础知识 1.2交互式构造器 不强制分号,一行就是一行.可以加上分号 1.4数字和表达式 加.减.乘.除.整除.求余.指数.取反(-例如-2**2,**的优先级比-大) from _ ...
- 《python基础教程》笔记之 异常
按自己的方式出错 使用raise语句引发一个异常,可以使用一个类(应该是Exception的子类)或者实例参数来作为raise的引发对象.使用类时,程序会自动创建实例,如 >>> r ...
- 《python基础教程》笔记之 序列通用操作
索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可 ...
- 《python基础教程》笔记之 基础知识
数字相关 在Python程序前加上 from __future__ import division 或者在解释器里面直接执行它,或者通过命令行运行Python时使用命令开关-Qnew,会使单斜线不再整 ...
- Python基础教程 读书笔记(2)第二章 列表和元组
2.1序列概览 列表和元组的主要区别在于,列表可以修改,元组则不能.也就是说如果要根据要求来添加元素,那么列表可能会更好用;而出于某些原因,序列不能修改的时候,使用元组则更为合适.使用后者的理由通常是 ...
- 《python基础教程》笔记之 抽象
创建函数 记录函数,在函数的开头写下字符串,它就会作为函数的一部分进行存储,这称为文档字符串,如 def square(x): 'Caculates the square of the number ...
- 《python基础教程》笔记之 条件语句和循环语句
布尔变量 下面的值会被解释器看做假(false): False None 0 "" () {} [] 其它的一切都被解释为真. >>> TrueTrue>& ...
- 《python基础教程》笔记之 其它语句1
print 相关 print可以打印多个表达式,只要将它们用逗号隔开就好,结果中每个参数之间都会插入一个空格,使用+可以避免空格,如 >>> print 'age:',42age: ...
随机推荐
- 关于Linux下的连接文件学习总结
1.连接文件区分为两种,一种类似windows下快捷方式,使用户能够快速连接到目标文件或目录. 另一种则通过文件系统中的inode连接来产生新文件名,而不是产生新文件. 两种方式分别称为符号/硬连接. ...
- Windows 下关于转码的函数
std::string& MsgFieldList::GBToUTF8(std::string& des,const char* str) { WCHAR *strSrc; TCHAR ...
- finereport 填报 单元格 JS 触发 提交SQL 事件
var location = this.options.location; var cr = FR.cellStr2ColumnRow(location); var col = cr.col; var ...
- 3 基于梯度的攻击——MIM
MIM攻击原论文地址——https://arxiv.org/pdf/1710.06081.pdf 1.MIM攻击的原理 MIM攻击全称是 Momentum Iterative Method,其实这也是 ...
- 1 基于梯度的攻击——FGSM
FGSM原论文地址:https://arxiv.org/abs/1412.6572 1.FGSM的原理 FGSM的全称是Fast Gradient Sign Method(快速梯度下降法),在白盒环境 ...
- win10 远程桌面ubuntu16
一. 软件安装 1.1. 打开终端,安装xrdp,vncserver sudo apt-get install xrdp vnc4server xbase-clients 1.2. desktop s ...
- 从入门到自闭之Python while如何使用
while 循环 while 条件: 循环体 终止循环的两种办法: 改变条件 break break和continue的用法: break 用法:打破当前循环,(终止当前循环),所处位置在循环 ...
- python_0基础开始_day10
第十节 一.函数进阶 动态参数 *a r g s —— 聚合位置参数,动态位置参数 默认返回的是tuple元组 def eat(*args): # 函数的定义阶段 *聚合(打包) print( ...
- multivariate_normal 多元正态分布
多元正态分布 正态分布大家都非常熟悉了,多元正态分布就是多维数据的正态分布,其概率密度函数为 上式为 x 服从 k 元正态分布,x 为 k 维向量:|Σ| 代表协方差矩阵的行列式 二维正态分布概率密度 ...
- Linux-1.3目录结构,基础命令
1.Linux目录结构 2.Linux基础命令(常用) ctrl+alt+T(打开终端) cd 切换文件夹(pwd查看当前目录) cd /home 绝对路径 以根目录开头 cd admin 相对路径 ...