Python之禅的博客专栏

公众号【Python之禅】(id:vttalk)分享 Python 相关技术干货

2
推荐
1130
阅读

Python 高级编程:理解生成器

生成器是 Python 初级开发者最难理解的概念之一,虽被认为是 Python 编程中的高级技能,但在各种项目中可以随处见到生成器的身影,你得不得去理解它、使用它、甚至爱上它。提到生成器,总不可避免地要把迭代器拉出来对比着讲,生成器就是一个在行为上和迭代器非常类似的对象,如果把迭代器比作 Android 系统,那么生成器...

发表了文章 • 2017-04-01 14:24 • 1 条评论

1
推荐
1589
阅读

Python 爬虫之模拟知乎登录

经常写爬虫的都知道,有些页面在登录之前是被禁止抓取的,比如知乎的话题页面就要求用户登录才能访问,而 “登录” 离不开 HTTP 中的 Cookie 技术。登录原理Cookie 的原理非常简单,因为 HTTP 是一种无状态的协议,因此为了在无状态的 HTTP 协议之上维护会话(session)状态,让服务器知道当前是和哪个客户在打交道,Cooki...

发表了文章 • 2017-04-01 14:22 • 1 条评论

3
推荐
1959
阅读

Django应用部署

Django是Python语言中最受欢迎的全栈式Web框架之一,过去部署Django应用一般采用Apache+mod_wsgi,但是由于有了Nginx出色的性能表现,Django也有了更先进的部署方式,比较常用的一种部署方案是Nginx+Gunicorn。 接下来我会详细完整地介绍一个符合生产条件标准的部署过程。前提条件假设你对Linux有基本的了解,而且拥有一...

发表了文章 • 2017-03-31 10:32 • 0 条评论

0
推荐
2075
阅读

Gevent简介

介绍gevent 是一个python网络框架,对应Java的netty框架,使用greenlet提供异步API,基于libevent ,它为各种并发和网络相关的任务提供了整洁的API.快速基于libevent的event loop基于greenlet的轻量级执行单元重用python标准api(event,queue)协同的socket和ssl模块使用标准库和第三方模块写标准阻塞socket(gevent.monkey)dns...

发表了文章 • 2017-03-31 10:25 • 0 条评论

0
推荐
1731
阅读

Python“不为人知的”特性

本文整理自Stack Overflow上的热门问答hidden features of python,早期有人做过类似的整理,但是内容比较旧而且比较粗糙,因此笔者在原文基础上加入自己的一些理解,另外那些高质量的评论也引入进来了。总之,这是一篇用心之作,希望你可以喜欢。链式比较操作>>> x = 5 >>> 1 < x < 10 True &g...

发表了文章 • 2017-03-31 10:21 • 0 条评论

0
推荐
1112
阅读

理解yield(生成器)

任何使用yield关键字的函数都称之为生成器,如:def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数,与普通函数的区别是生成器包含yield语句,更简单点理解生成器就是一个迭代器。(有关迭代器和生成器的区别可以看文章末尾处补充)使用yie...

发表了文章 • 2017-03-31 10:18 • 0 条评论

0
推荐
1287
阅读

Python中下划线的变量是什么个意思

这篇文章说两个问题:问一:下划线变量单下划线开头的变量,Pyhthon规定为内部变量(私有变量),from M import * 时,这种变量并不会导入进来,例如:foo.py #foo.py bar = 10 bar2 = 11 _bar = 20 __bar = 30 foo2.py #foo2.py from foo import * if __name__ == '__main__': print locals() 执行 python foo2....

发表了文章 • 2017-03-31 10:15 • 0 条评论

4
推荐
1471
阅读

Python 编码为什么那么蛋疼?

据说,每个做 Python 开发的都被字符编码的问题搞晕过,最常见的错误就是 UnicodeEncodeError、UnicodeDecodeError,你好像知道怎么解决,遗憾的是,错误又出现在其它地方,问题总是重蹈覆辙,str 到 unicode 之间的转换用 decode 还是 encode 方法还特不好记,老是混淆,问题究竟出在哪里?为了弄清楚这个问题,我决定...

发表了文章 • 2017-03-22 18:12 • 0 条评论

2
推荐
1995
阅读

HTTPS 为什么更安全,先看这些

HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个...

发表了文章 • 2017-03-10 09:45 • 0 条评论

4
推荐
1754
阅读

代码这样写更优雅(Python版)

Python 这门语言最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。但有时候我们写代码,特别是 Python 初学者,往往还是按照其它语言的思维习惯来写,那样的写法不仅运行速度慢,代码读起来也费尽,给人一种拖泥带水的感觉,过段时间连自己也读不懂。《计算机程序的构造和解释》的作者哈尔·...

发表了文章 • 2017-03-08 18:38 • 0 条评论

1
推荐
1499
阅读

理解 Python 装饰器看这一篇就够了

讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。每个人都有的内裤主要功能是用来遮羞,但是到了冬天它没法为我们防风御寒,咋办?我们想到的一个办法就是把内裤改造一下,让它变得更厚更长,这样一来,它不仅有遮羞功能,还能提供保暖,不过有个问题,这个内裤被我们改造成了长裤后,虽然还...

发表了文章 • 2017-03-08 18:32 • 0 条评论

0
推荐
1629
阅读

Linux中批量替换文件名

在Linux系统中修改文件名可以用mv命令,但是它只能对单个文件进行操作,如要要批量执行还要写shell脚本,用for语句迭代执行,不过Linux中另外一个命令支持批量替换文件名,它是rename,rename支持正则表达式匹配。需要注意的是,rename命令在不同的Linux发行版语法格式不一样。语法在Debian或者Ubuntu环境下使用的语法是...

发表了文章 • 2017-03-08 09:37 • 0 条评论

0
推荐
1454
阅读

字典对象的 Pythonic 用法

字典对象在Python中作为最常用的数据结构之一,和数字、字符串、列表、元组并列为5大基本数据结构,字典中的元素通过键来存取,而非像列表一样通过偏移存取。笔者总结了字典的一些常用Pyhonic用法,这是字典的Pythonic用法的上篇0. 使用 in/not in 检查 key 是否存在于字典判断某个 key 是否存在于字典中时,一般初学者...

发表了文章 • 2017-03-08 09:34 • 0 条评论