使用 Python 的 Tornado 框架,写了一个生成密码的页面。
其中生成密码函数正好用了列表解析,感叹 Python 简洁。

1
2
3
4
5
6
7
8
9
from random import randint

def GeneratePassword(n):
"""
generate a n length password.
"""
password = []
[password.append(chr(randint(33, 126))) for i in range(n)] # 标记
return ''.join(password)

就是“标记”这一句, chr(randint(33, 126)) 从 ASCII 可见编码中生成随机序号,并转成字符。
列表解析语法: [expr for iter_var in iterable]
参考链接: Python docs