以代码简洁为设计目标的Python有各种方便的功能,方便到极致时,我们可以用一行Python代码干很多事情。
下面列举并说明一些我个人总结的Python一行式:
1.用一行Python画爱心。
print '\n'.join([''.join([('ILoveYou'[(x - y) % 8] if((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 -(x * 0.05) ** 2 * (y * 0.1) ** 3 <= 0 else ' ') for x in range(-30, 30)])for y in range(15, -15, -1)])
运行效果:
运行效果图.png2.用一行Python代码实现类似FTP服务器功能(web服务器)
python -m SimpleHTTPServer
说明:
这个服务器默认在你当前所处的目录下开启,使用时通过ip地址:8000(默认值)
进行访问,访问者并不能访问当前目录的上层目录。
运行效果图:
效果图1.png 效果图2.png3.解析式+模块函数 创造出各种方便的功能。
Python容器类型的内置数据类型都支持 解析式 这一Pythonic的语法,而各种解析式结合系统模块中的函数就能创造出各种功能强大,语法优美的语句。
举例:
1.列出当前目录下所有的文件
[item for item in os.listdir('.') if os.path.isfile(item)]
2.列出当前目录下所有文件到文件大小的映射
{item: os.path.getsize(item) for item in os.listdir('.') if os.path.isfile(item) }
3.分别求出10以内所有奇数的平方值(也可以单独使用)
{i: i**2 for i in range(10) if i % 2 }
...
4.JSON转换
echo '{"key1": "val", "key2":[1, 2, 3], "key3": 99}'| python -m json.tool
运行效果图:
运行效果图
网友评论
print '\n'.join([''.join([('ILoveYou'[(x - y) % 8] if((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 -(x * 0.05) ** 2 * (y * 0.1) ** 3 <= 0 else ' ') for x in range(-30, 30)])for y in range(15, -15, -1)])
^
SyntaxError: invalid syntax