python
tobuildapp
这个作者很懒,什么都没留下…
展开
-
笔记:udacity计算机科学导论- 课程11/19 python取幂, DRAM 存储原理、容量、速度
求a的n次幂/方,在python中,仅用2个星表达,如2**10表示2的10次方。神奇!如在课程11/19中,说道:"In Python we can do exponentiation by using a star star. This is what we would write mathematically as to to the power 10.原创 2017-12-20 23:21:29 · 182 阅读 · 0 评论 -
python字母、哈希数字表转换- 笔记:udacity计算机科学导论18/14
在python中, 26个英文字母,每一个字母对应不同的数字,被称为哈希hash数字。 比如, print ord('a') --> 97; print ord('A') --> 65; 注意:大小写字母的哈希值是不同的。相反:print chr('97') --> a; print chr('65') --> A;只能对单个字母取哈希值,...原创 2018-03-03 22:44:05 · 1156 阅读 · 0 评论 -
python中估算程序运行时间 - udacity计算机科学导论18-6
import timedef execution_time(code): start = time.clock(code) result = eval(code) time = time.clock(code) - startpython中估算程序运行时长的代码,非常简洁。 根据运行结果,简单的加法循环,1亿次耗时5秒左右。 ...原创 2018-02-25 00:44:35 · 199 阅读 · 0 评论 -
python的哈希函数hash function - 计算机科学导论笔记18-19至
在python中,哈希表的作用是在建立索引时,把大量的关键词尽可能平均的分为小区,以提高搜索效率。 如果按照关键词字符串的首字母来分,像字典一样,就会出现各区数量明显不平均。 所以哈希函数用字符串中各个字符的对应ord()数字之和,对小区总数做模/余数,就得到比较均匀的分区。 有点神奇def hash_string(keyword,buckets): s = 0 for k in ke...原创 2018-03-20 13:12:22 · 1013 阅读 · 0 评论 -
自动生成字符串并完成索引-计算机科学导论笔记18/7
def make_string(w): s = "" for n in w: s = s + n return s #缺此语句,s的值将始终为空def add_to_index(index, keyword, strin): #index = [] 这个语句不能出现,否则造成死循环 index.appe...原创 2018-03-25 23:43:27 · 123 阅读 · 0 评论 -
python创建多分区的空表: 计算机导论18-23
在python中,如果用hashtable来进行索引,需要预先定义分区/buckets,即告诉系统有几个区,并建立空白的分区;类比安装操作系统前先对硬盘分好C:盘、D:盘、... def make_hashtable(nbuckets): #nbuckets引入分区数量,最小1 table = [] for i in range(0,...原创 2018-03-28 22:35:44 · 172 阅读 · 0 评论 -
ud课程:计算机导论19-involved,字典中循环
利用 for <key> in <dictionary>: <block>结构,可以方便的在字典中多层查询值,并导出相关结果。比如:# { <hexamester>, { <class>: { <property>: <value>, ... },原创 2018-05-06 10:19:02 · 181 阅读 · 0 评论 -
udacity计算机科学导论python - 课程22-15 为什么python代码简单
这课里的fibonacci递归函数,也常称为花瓣序列, 1,1,2,3,5... 后一个数是前两个数之和。 在python中,建议用for函数代替递归函数,效率更高 def fibonacci(n): s1 = 0 s2 = 1 for a in range(0,n): s1, s2 = s2,s1+s2 return s1可以看见,给两个变量s1,s2,...原创 2018-06-02 23:09:42 · 194 阅读 · 0 评论 -
udacity计算机科学导论python - 课程22-4、5递归造词
问题: 如果造词的规则只有1个,word -> counter-word(反词),能造出几个新词根据程序赋值法, word = counter-word, 第一次运行后,word的值变成counter - word, 第二次运行后, word的值又变回word,然后, counter - word, word,counter - word...始终循环因此词始终只有两个: counter -...原创 2018-05-28 22:30:52 · 200 阅读 · 0 评论 -
python递归之简单:阶乘/加函数
在python中,求诸如 n*(n-1)*(n-2)*...1的结果,函数超简单,而且不用while def factorial(n): if n == 0: return 1 else: return n*factorial(n) 理解起来有点奇怪。pytho...原创 2018-08-29 11:19:26 · 507 阅读 · 0 评论 -
python递归之简单:回文
回文,即一个字符串两侧字符始终是对称的, 如abba, act5tca等。 用python的递归解决起来,又让人耳目一新def is_palindrome(s): if s ==""(或''): return True else: if s[0]==s[-1]: retu...原创 2018-08-29 12:06:46 · 2118 阅读 · 0 评论 -
爬虫基本工作原理
网络爬虫,会自动完成批量网页信息查找的工具,工作原理可以简述为:爬虫向预先估计有料的一堆网络进发,找到相关信息就背下来,放进大本营(控制中心)的仓库里,并分类放好;爬虫又在爬过的网页中发现其他有潜力的,未爬过的网页,把url传回大本营,由大本营进行筛选和优先级排序,确定爬虫们继续探宝的新网页群。...原创 2019-03-17 10:45:26 · 926 阅读 · 0 评论 -
《精通Python网络爬虫》笔记 - 查找和替换函数及提取网址电话邮件实例
书名: 《精通Python网络爬虫》作者:韦玮索引:ISBN978-7-111-56208-5出版社:机械工业出版社出版时间:2017年3月第二篇 第5章 正则表达式与Cookiep61-65re.match(),从字符串的初始位置开始匹配, 相当于筛选结果:开头是xxxre.search(),搜索整个字符串查找匹配,相当于筛选结果: 包含有xxxre.com...原创 2019-04-10 15:16:58 · 176 阅读 · 0 评论 -
《精通Python网络爬虫》笔记 - 元字符.* 和 * 的用法区别
书名: 《精通Python网络爬虫》作者:韦玮索引:ISBN978-7-111-56208-5出版社:机械工业出版社出版时间:2017年3月第二篇 第5章 正则表达式与Cookie所谓正则表达式,相当于搜索条件,比如搜索书名,或电子邮件其中,p56, 元字符,即正则表达式中具有特殊含义的字符,. 匹配出换行符外的任意字符* 匹配0次...原创 2019-04-09 11:19:47 · 197 阅读 · 0 评论 -
《精通Python网络爬虫》笔记 - 原子表 [] vs 模式选择符 |
书名: 《精通Python网络爬虫》作者:韦玮索引:ISBN978-7-111-56208-5出版社:机械工业出版社出版时间:2017年3月第二篇 第5章 正则表达式与Cookie原子表 []用来分隔作为匹配条件的单个字符,模式选择符 | 分隔作为匹配条件的字符串原子表[] , p55, 用来定义一组平等的原子,搜索时找到任一原子就匹配成功。例子:im...原创 2019-04-09 11:45:48 · 403 阅读 · 0 评论 -
估计python程序运行时间 - 计算机科学导论笔记18
在python中,测试程序运行时间的方法是: import time #导入时间参数 def time_run(code): start = time.clock() #记录程序开始前时间 result = eval(code) #运行字...原创 2018-03-16 23:33:13 · 747 阅读 · 0 评论 -
逐渐了解python搜索原理 - 笔记:udacity计算机科学导论18/1-12
在python中,经过建立索引index,即关键词、网址按[[keyword1, [url11,url12...]],[keyword2, [url21,url22...]]...[keywordN, [urlN1,urlN2...]]]搜索公式lookup(index, keyword)还需要把关键词keyword按首字母顺序分类排列,以加快检索速度,像字典一样。python搜索逐渐成形了...原创 2018-02-28 23:57:09 · 155 阅读 · 0 评论 -
笔记:udacity计算机导论 - 7/2 求邮资由多张不同面值邮票组成
# Define a procedure, stamps, which takes as its input a positive integer in# pence and returns the number of 5p, 2p and 1p stamps (p is pence) required # to make up that value. The return value s原创 2017-12-13 21:27:49 · 352 阅读 · 0 评论 -
udacity计算机科学导论- 课程11/9 list mutation 数组改变的特殊性
这一章突出了数组改变与字符串改变的不同。 如果数组p被赋值给数组q, 那么数组q被改变时,数组p也相应的改变了。视频里的解释是数组p和q都指向同一个数组。 但如果字符串b被赋值给字符串a, 然后再次把字符串a赋予另外的值,则b的值不会改变!原创 2017-12-13 22:02:40 · 188 阅读 · 1 评论 -
笔记:udacity计算机科学导论- 课程11/21 各种存储方式比较
为了形象的描述各种存储设备的读写速度,做了这道题:各种设备的读取延迟时间内,光速能到达的距离。首先要知道一个小常识,光速是299792.458 千米/秒(km/s)。1TB = 8 x 20^10 bit首先,灯泡用来做存储,这个脑洞的确大然后, CPU内存、闪存和硬盘存储,速度比约为 1:30:20000。居然这么大倍数的差别。 值得注意原创 2017-12-25 19:05:00 · 150 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程11/23-24 for循环特点
python的for循环, 用来输出数组中的元素时,代码非常简单。语法:for e in p: 当这里的p指一个数组时,e不用单独定义,使用for循环,程序会自动遍历数组中的元素。因此,当求一个数组中各元素之和:def sum_list(p): sum_l = 0 for e in p: sum_l = sum_l原创 2017-12-25 19:37:15 · 158 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程12/8数独正确性判断
incorrect3 = [[1,2,3,4,5], [2,3,1,5,6], [4,5,2,1,3], [3,4,5,2,1], [5,6,4,3,2]]incorrect4 = [['a','b','c'], ['b','c','a'原创 2017-12-30 15:14:04 · 230 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程13/2数独正确性判断
# A list is symmetric if the first row is the same as the first column,# the second row is the same as the second column and so on. Write a# procedure, symmetric, which takes a list as input, and原创 2017-12-31 01:26:02 · 222 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程11/26 巧用return精简代码
在python中,遇到return时,该程序结束,后面的代码都不执行了。这一特点可以让程序很简单。本课中求数组p中有元素与变量t相同时,输入该元素的位置, 比如数组p = [1,2,3], t =3, 应该输出2用for循环def indexL(p,t): s = 0 for e in p:原创 2017-12-25 20:42:12 · 283 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程11/27-29 for + in/not in 求并集
并集,有集合a和b,把a、b中不重复的元素都添加到新集合,重复的元素只添加一次。于是有def union(a,b): for e in b: #遍历b中元素 if e not in a: #如果b中某个元素e在a中没有相同值原创 2017-12-25 22:56:18 · 211 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程11/12-14 数组值的改变和增加
python中,改变或增加一个数组/list的值,并不难。 比如数组 uo = ["apple", "orange", "strawberry"], 把orange 换成 banana, 只需定义: uo[1] = "banana" 在列表增加,pipeapple, 用 .append() 形式,即 uo.append("p原创 2017-12-17 22:34:51 · 130 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程14/3
# Numbers in lists by SeanMc from forums# define a procedure that takes in a string of numbers from 1-9 and# outputs a list with the following parameters:# Every number in the string should be i原创 2018-01-02 02:46:50 · 319 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程11/14-17数组append,+,len的谜题
python中, list.append()表示在原数组的所有元素后添加新元素 list + list表示链接两个数组,但不改变原数组的元素 len(list) 输出的是该数组最外一层的元素个数,看起来简单,还是可以容易产生误导 比如: p = [1,2] q = [3,4] p = p.append(q) 求 len(p) = ?。。。我开始选4,光原创 2017-12-18 23:15:11 · 119 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 课程15/1-3 初步建立关键字、url对应表
前面课程2,讲述了当前最被认可的关键字、url对应表数据结构, [keyword1,[url11, url12,....],keyword2,[url21, url22,....]]即以搜索的关键字为基础,索引同一个关键字的所有对应url,这样可以减少搜索url的数量 # Define a procedure, add_to_index,# that takes 3 inpu原创 2018-01-02 20:40:40 · 304 阅读 · 0 评论 -
笔记:udacity计算机科学导论- 函数索引
课程15/5,.split(). python系统自动分割字符串为词组原创 2018-01-02 22:21:57 · 196 阅读 · 0 评论 -
数据科学家的主要技能图
上面这张图很有意思,列出了数据科学家需要掌握的主要技能。绘图者Erin LeDell 博士指出,数据科学家除了要熟悉机器学习、统计学等模型、会编程,黑客的思维, 以及对高层管理者的有沟通能力也很重要。讲故事似乎是放之四海接有用的技能。...原创 2019-07-04 12:09:45 · 345 阅读 · 0 评论