Python 是一种极少数能兼具 简单 与 功能强大 的编程语言。你将惊异于发现你正在使用的这门编程语言是如此简单,它专注于如何解决问题,而非拘泥于语法与结构。
官方对 Python 的介绍如下:
Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言。
继续阅读 »
Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言。这篇文章主要介绍Python在Mac OS X、Windows和Linux系统的安装,为以后python的学习做准备。
继续阅读 »
Python作为一门极其易学的语言,在科学计算等领域存在较大的应用,同样,著名的OpenCV库也发布了支持Python的库,本节主不再介绍如何在Ubuntu上配置Python OpenCV,有需要的同学可以参考这里。
本节将利用Python OpenCV做一个简单的测试,即
打开一个图片并显示
创建一个空图并显示
将彩色图像转成灰度图像并显示
实现过程
引用
这里我们需要引用cv2和numpy,cv2不言而喻,而NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,这里在引用时把numpy重命名为np。
python
import cv2
import
继续阅读 »
打印出 hello world 只是我们学习Python的第一步,但是仅仅打印出 hello world 肯定不能满足我们的需求,你可能会希望做得更多,比如写一个小脚本帮你抢火车票,接下来我们会介绍一些基本概念。
more
继续阅读 »
写在前面
作者电脑 CPU 为 4 核,因此使用 4 个线程测试是合理的
本文使用的 cpython 版本为 3.6.4
本文使用的 pypy 版本为 5.9.0-beta0,兼容 Python 3.5 语法
本文使用的 jython 版本为 2.7.0,兼容 Python 2.7 语法
若无特殊说明,作语言解时,python 指 Python 语言;作解释器解时,python 指 cpython
more
本文使用的测速函数代码如下:
```python
from future import print_function
import sys
PY2 = sys.version_info[0] == 2
因为 Jython
继续阅读 »
配置Python环境
默认情况下,Python 扩展寻找并使用它在系统路径中找到的第一个 Python 解释器。 如果它没有找到解释器,它就会发出警告。 在 macOS 上,如果您使用的是安装在 os 上的 Python 解释器,扩展还会发出警告,因为您通常希望使用直接安装的解释器。 无论哪种情况,都可以通过在用户设置中将 python.disableInstallationCheck 设置为 true 来禁用这些警告。
继续阅读 »
python中的多线程其实并不是真正的多线程,如果想充分利用多核CPU的资源,在python中大部分情况需要适用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同的形式的同步,提供了Process、Queue、Pipe、Lock等组件。
继续阅读 »
写在前面
前几天工作时遇到了一个匪夷所思的问题。经过几次尝试后问题得以解决,但问题产生的原因却仍令人费解。查找 SO 无果,我决定翻看 Python 的源码。断断续续地研究了几天,终于恍然大悟。撰此文以记。
more
本文环境:
Ubuntu 16.04 (64 bit)
Python 3.6.2
使用的 C 源码可以从 Python 官网 获取。
起因
工作时用到了 celery 作为异步任务队列,为方便调试,我写了一个脚本用以启动/关闭 celery 主进程。代码简化后如下:
```python
import sys
import subprocess
...
celery_process = subproces
继续阅读 »
写在前面
本文默认读者对 Python 生成器 有一定的了解,不了解者请移步至生成器 - 廖雪峰的官方网站。
本文基于 Python 3.5.1,文中所有的例子都可在 Github 上获得。
学过 Python 的都知道,Python 里有一个很厉害的概念叫做 生成器(Generators)。一个生成器就像是一个微小的线程,可以随处暂停,也可以随时恢复执行,还可以和代码块外部进行数据交换。恰当使用生成器,可以极大地简化代码逻辑。
也许,你可以熟练地使用生成器完成一些看似不可能的任务,如“无穷斐波那契数列”,并引以为豪,认为所谓的生成器也不过如此——那我可要告诉你:这些都太小儿科了,下面我所要介绍的绝对会让你大开眼界。
生成器
继续阅读 »
Sync 与 Async Python:有什么区别?
你有没有听人说过异步 Python 代码比“普通”(或同步) Python 代码更快?这怎么可能?在本文中,我将尝试解释什么是异步以及它与普通 Python 代码的区别。
more
继续阅读 »