PDF笔记
序列的分片
python的下标很强大,分片可以分的异样灵活.还没越界的担心.
num=range(1,10) 取序列的最后三个元素,机械的本能写成 num[len(num)-3,len(num)]...之类 (第二个参数为-1,更是错的离谱,[ ]显示的永远不包括右转)
实际写法只要 优雅的写成 num[-3,] 没错,就是这样,多一点都是画蛇添足.
隐式参数 步长 num[: :2] 输出均为奇数. 步长不能为 0 ,但步长可以为 负数 反向输出 , 很汗...
序列的相加
两序列相加, 顺序合并,但只允许相同类型相加, 但序列与序列可以相加
即 [1,3,4]+3 error [1,3,4]+'hello' error [1,3,4]+[3] 正确!
序列的乘法
python乘法一样异常强大, [42]*4 即得[42,42,42,42]
序列初始化 sequence =[None]*5 得 [None,None,None,None,None]
小练习 给文字装个盒子 2-3
成员资格 : 布尔运算符 in 返回布尔型
内建函数 len 取长度 max 取最大元素 min 取最小元素 (字符是字典排序,和长度无关,如果可以只取首字母排序)
list拆分字符串,文档上说所有类型都好使,但自己没试成功,待续.........
del sequence[2] 删除第3个元素
a=[1,3,5,5,86,8,6,2,6,3]
a[2:6]=[] 结果为[1, 3, 6, 2, 6, 3] 表示
只取2:6剩下的元素
课程笔记
python一个很bt的特点,精度可以是任意精度.
整数大于20亿左右就是L型,效率比普度int低很多,两个L计算无论结果大小都是L.
x=0.1 无法有限的2进制表示 回车显示 (17位的精度)
x为0.10000000000000001 0.001却正常(IEEE 754标准)
print 常常打印的是 精度四舍五入的结果 !
又见 浮点数的 "==" ,因为精度,所以2的开方再平方!=2 就不惊奇了,理想和现实的差距!
so near() 函数 应用而生
因为像实数等不能实现穷举法,所以很多问题变成了猜想, 判别, 改进. 即 "逐次近似"法!
if(guess) 猜想足够接近
return guess
else guess = better guess
如果100次还没结果 return error
二分法基本思想 Bi-section ,永远都知道正确答案是在猜想的左边还是右边
渐近就是递归的思想