变量不是盒子在示例所示的交互式控制台中,无法使用“变量是盒子”做解释。图说明了在Python中为什么不能使用盒子比喻,而便利贴则指出了变量的正确工作方式。变量a和b引用同一个列表,而不是那个列表的副本>>>a=[1,2,3]>>>b=a>>>a.append(4)>>>b[1,2,3,4]如果把变量想象为盒子,那么无法解释Python中的赋值;应该把变量视作便利贴,这样示例中的行为就好解释了注意:对引用式变量来说,说把变量分配给对象更合理,反过来说就有问题
系统 2019-09-27 17:53:57 2086
python生成一个日期列表首先导入pandasimportpandasaspddefget_date_list(begin_date,end_date):date_list=[x.strftime('%Y-%m-%d')forxinlist(pd.date_range(start=begin_date,end=end_date))]returndate_list###可以测试print(get_date_list('2018-06-01','2018-0
系统 2019-09-27 17:53:02 2086
requests库的安装:ubuntu和windows下安装requests库:pipinstallrequestsrequests的介绍:Requests是一个优雅而简单的PythonHTTP库requests的文档:中文版:http://cn.python-requests.org/zh_CN/latest/英文版:http://docs.python-requests.org/en/master/api/requests的基本用法:Get请求:(一)
系统 2019-09-27 17:52:36 2086
今天主要是来说一下怎么可视化来监控你的爬虫的状态。相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样。今天我来讲一种可视化的方法。关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据。1.成品图这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M。爬虫的原理都是一样的,只不过将数据存到InfluxDB的
系统 2019-09-27 17:50:52 2086
1.函数名的运用你们说一下,按照你们的理解,函数名是什么?函数名的定义和变量的定义几乎一致,在变量的角度,函数名其实就是一个变量,具有变量的功能:可以赋值;但是作为函数名他也有特殊的功能就是加上()就会执行对应的函数,所以我们可以把函数名当做一个特殊的变量,那么接下来,我们就来研究一下这个特殊的变量。1.1函数的内存地址deffunc():print("呵呵")print(func)结果:通过上面代码可以我们知道,函数名指向的是这个函数的内存地址,其
系统 2019-09-27 17:50:42 2086
最简单的网页取源(不用模拟浏览器的情况)1importrequests2defgetHTML(url):3try:4r=requests.get(url,timeout=30)5r.raise_for_status()6r.encoding='utf-8'7returnr.text8except:9return""10url="http://baidu.com"11print(getHTML(url))
系统 2019-09-27 17:50:19 2086
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。异常处理:本站Python教程会具体介绍。断言(Assertions):本站Python教程会具体介绍。python标准异常异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类StopIteration迭代
系统 2019-09-27 17:49:55 2086
image前不久,我写了一篇文章回顾Python中print的发展历史,提到了两条发展线索:明线:早期的print语句带有C和Shell的影子,是个应用程序级的statement,在最初十几年里,经历过PEP-214和PEP-259的改进;再到2009年的大版本3.0,由语句改成了print()函数,还在3.3版本,做过一次功能增强,最终上升成为一等的内置函数。暗线:介绍了print的竞争对手们,像传统的日志模块logging、调试模块pdb、主流IDE的
系统 2019-09-27 17:48:27 2086
写python协程时使用gevent模块和queue模块可以大大提高爬虫速度。在同时爬取多个网站时,原来用for循环一个网站一个网站按循序顺序爬,就像先烧饭后烧菜,两个步骤异步进行。使用多协程可以让爬虫自己选择爬取顺序,就像边烧饭边烧菜,两个步骤同步进行,速度自然快了。不多说了,来看下代码吧:fromgeventimportmonkeymonkey.patch_all()#打上多协程布丁,下面的程序就可以执行多协程了importrequests,geven
系统 2019-09-27 17:47:59 2086
我们在写代码的过程中,会经常使用到for循环,去循环列表,那么如果我们拿到一个类型为str的列表,对它进行for循环,结果看下面的代码和图:str_list=str(['a','b','c'])forrowinstr_list:print(row)结果:Python字符串类型列表转换成真正列表类型那么for循环就把str类型的列表的每一个字符都一个一个的循环的打印出来,而这个结果并不是我们想要的,那么如何解决这个问题?,使用到第三方模块,看下面的代码fro
系统 2019-09-27 17:47:49 2086