为什么你需要少看垃圾博客以及如何在Python里精确地四舍五入
今天又有一个Python初学者被中文技术博客中的垃圾文章给误导了。
这位初学者的问题是:
在Python中,如何精确地进行浮点数的四舍五入,保留两位小数?
如果你经常使用Python的命令行交互环境,你一定遇到过下面这个现象:
1 | >>> a = 'test' |
首先定义一个变量a
,它的值为字符串test
。现在,当你在命令行交互环境直接输入变量名再回车的时候,你看到的是'test'
,当你输入print(a)
的时候,你看到的却是test
。
大家在开发Python的过程中,一定会遇到很多反斜杠的问题,很多人被反斜杠的数量搞得头大。
这篇文章,首先会让你越看越糊涂,然后再让你越看越清醒。请坚持看完。
在Python中,如果要判断一个字符串是否在另一个字符串里面,我们可以使用in
关键字,例如:
1 | >>> a = '你说我是买苹果电脑,还是买windows电脑呢?' |
如果有多个句子和多个关键字,那么可以使用for
循环来实现:
1 | sentences = ['你说我是买苹果电脑,还是买windows电脑呢?', |
运行效果如下图所示:
现在如果有100000000个句子,有1000个关键字,那么你需要对比1000亿次才能全部查询完成。这个时间代价太大了,如果Python一秒钟能运行500万次查询(实际上没有这么快),那么1000亿次查询需要20000秒,接近6小时。而且,由于in
关键字的时间复杂度为O(n)
,如果有大量长句子,查询时间会更长。
这篇文章没有代码,请放心阅读。
程序员最宝贵的东西是生命,生命属于程序员只有一次。一个程序员的一生应该这样度过:当她回首往事的时候,她不会因为搭建环境浪费时间而悔恨,也不会因为集群无法运行而羞耻。这样,在她开发的时候,她能够说:“我的整个生命和全部精力,都已经献给了开发中最重要的事情——设计程序,实现程序和调Bug。” ——P酱。
P酱是公司新来的实习生妹子。听说是一个文科生。文科生应该会去文案组或者策划组吧。什么?来数据组?让我来带?
于是我和P酱生活工作在了一起。
有不少朋友在开发爬虫的过程中喜欢使用Selenium + Chromedriver,以为这样就能做到不被网站的反爬虫机制发现。
先不说淘宝这种基于用户行为的反爬虫策略,仅仅是一个普通的小网站,使用一行Javascript代码,就能轻轻松松识别你是否使用了Selenium + Chromedriver模拟浏览器。
我们来看一个例子。
大家经常在一些博客中看到这样的说法:
1 | a += 1 |
等价于
1 | a = a + 1 |
这种说法实际上并不准确。
我们来看一个例子:
1 | >>> a = [1, 2, 3] |
这里报错了,说明a += b
和a = a + b
并不是完全等价的。
在使用Airtest超快速开发App爬虫文章的最后,我们留了一个尾巴:如何启动Airtest的无线模式,不用USB线就能控制手机?
本文将会讲到具体的做法。做法分为两种:第一种是在Airtest的IDE中控制手机。第二种是在Python代码里面控制远程手机。