分类 python 下的文章

Mako是什么?Moko是Python写的一个模板库,Python官网http://python.org/ 用的就是它哦。

(Mako官网地址:http://www.makotemplates.org/ ,可以下载安装包,推荐使用 easy_install 安装, 或者 通过 pip)

先来个简单的使用示例, 通过文本直接构建模板

from mako.template import Template
mytemplate = Template("hello world!")
print mytemplate.render()
mytemplate = Template("hello, ${name}!")
print mytemplate.render(name="jack")

通过文件构建模板

mytemplate = Template(filename='/docs/example.txt')
print mytemplate.render()

- 阅读剩余部分 -

Python 环境使用 MySQL, 需要安装 Python MySQL 的 lib 库, 早期需要手工从源码安装, 目前来说已经可以很方便的从 pypi 下载就可以了.

pip install MySQL-python

如果环境无网络,才需要手工安装, 可以按下述流程来安装.

tar zxvf MySQL-python-1.2.2.tar.gz
cd MySQL-python-1.2.2
python setup.py install

- 阅读剩余部分 -

我们在使用 virt-install 构建虚拟机需要指定操作系统类型, 在配置之前, 我们需要了解到底有哪些可选值, 查阅了下, 可以使用 osinfo-query 来完成.

这里我们使用到了两个命令, 需要安装 virt-installosinfo-query

安装 virt-install

REHL/CentOS

yum -y install virt-install

Debian/Ubuntu

apt -y install virtinst

- 阅读剩余部分 -

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 {\displaystyle O(1)} {\displaystyle O(1)}的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

概述

Insertion Sort和打扑克牌时,从牌桌上逐一拿起扑克牌,在手上排序的过程相同。

举例:

Input: {5 2 4 6 1 3}。

首先拿起第一张牌, 手上有 {5}。

拿起第二张牌 2, 把 2 insert 到手上的牌 {5}, 得到 {2 5}。

拿起第三张牌 4, 把 4 insert 到手上的牌 {2 5}, 得到 {2 4 5}。

以此类推。

- 阅读剩余部分 -

我们经常在开源的一些Python代码中看到 *args**kwargs 这样函数参数定义, 到底他们是含义? 又如何使用呢?

在回答这个问题前,我们先来介绍下, Python 参数传递的方式.

函数定义中的 *args**kwargs

在Python中,参数总是通过赋值传递的, 俗称值传递, 在默认情况下, 参数是通过其位置进行匹配的, 但是Python也是支持关键字的参数匹配形式的.

按位置进行匹配

这是Python的默认行为,通过其位置进行匹配, 从左到右,必须精确的传递和函数头部参数名一样多的参数。这种方式我们平常用的最多,比如:

def foo(a, b, c):
    print(a, b, c)

foo(1, 2, 3)

- 阅读剩余部分 -

virtualenv is a tool to create isolated Python environments. Since Python 3.3, a subset of it has been integrated into the standard library under the venv module.

virtualenv是一个用于创建隔离Python环境的工具。从3.3版本开始, 标准库实现了virtualenv的一个功能子集,社区应该是考虑在标准库中集成virtualenv, 不过到目前为止,也近仅仅是个功能子集,完整的功能使用还是需要使用 pip 安装 virtualenv 包才行。

virtualenv主要是解决依赖冲突问题,如果操作系统版本的某个lib库版本较高, 和应用的低版本lib不兼容,那这时候在不影响系统python lib库的同时还能完美的支持应用的调试和使用,将非常方便python开发。也用于模拟不同的python版本环境, 比如Python 2X/3X, 这种大版本的不兼容问题隔离验证。

- 阅读剩余部分 -