Tornado 使用经验

标签:Python

最近在做一个网站的后端开发。因为初期只有我一个人做,所以技术选择上很自由。在 web 服务器上我选择了 Tornado。虽然曾经也读过它的源码,并做过一些小的 demo,但毕竟这是第一次在工作中使用,难免又发现了一些值得分享的东西。

用Python模拟计算猎魔人的百步穿杨效果

标签:Python, Diablo3

猎魔人有个很出名的被动技能叫做“百步穿杨”,它的效果是暴击率每秒增加 3%,暴击后 1 秒重置到初始暴击率。
不过我用它的时候很纳闷,它对暴击率的平均提升到底有多少呢?数学很糟糕的我决定还是用 Python 模拟计算一下吧。

粗略统计CSDN泄漏的密码

标签:Python

这次CSDN的账号密码泄漏,我出于好奇,就写了个Python脚本来分析这些600多万密码。
结果发现大多数用户的密码长度在8~14位之间,有29万用户的用户名和密码相同,有289万个密码为纯数字,最常用的10个密码为:123456789、12345678、11111111、dearbook、00000000、123123123、1234567890、88888888、111111111和147258369。
其中,使用123456789或12345678的用户有44万;而dearbook这个诡异的密码居然也有46053人采用,搞不懂……

字符串相加并不慢

标签:Python, 性能, JavaScript, Java

在学Java时,我对拼接字符串有个很深刻的印象:StringBuilder.append()比String相加要快很多。
这个偏见影响了我几年,直到今天才发现它并不一定适用于其他语言。

Tornado的IOStream简介与应用

标签:Python

Tornado的核心源码是由ioloop.py和iostream.py这2个文件组成的。前者提供了一个循环,用于处理I/O事件;后者则封装了一个非阻塞的socket。
有了这2者后,就能搭建起TCP server和HTTP server,实现异步HTTP客户端,这便是Tornado的主要内容了。
之前在研究socket时已差不多弄懂了ioloop的逻辑,于是本文就接着研究iostream了。

« 看看还有什么好玩意