分类标签归档:Python

python实现dict版图遍历示例


复制代码 代码如下:

_*_coding:utf8

import sys
import os

class Graph():
def init(self, V, E):
self.V = V
self.E = E
self.visited = []
self.dict = {}
self.fd = open("input.txt")

def initGraph(self):
self.visited = [0 for i in range(self.V+1)]
for i in range(self.E):
f, t = map(int, self.fd.readline().split(...

阅读全文...

Python 文件和输入输出小结


1.打开和关闭文件(open(),file(),close())

有两种内建函数可以获取文件对象:open和file。他们的用法完全一样。下面只以open()为例子讲解。获取一个文件对象(打开文件)的语法如下:

复制代码 代码如下:

fileObj = open(filename,access_mode='r',buffering=-1)

filename不用说你也应该知道是你要打开文件的路径。
access_mode用来标识文件打开的模式,默认为r(只读)。

常用的模式如下表所示:

...
文件模式 解释
r 以只读方式打开

阅读全文...

Python中的yield浅析


在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。

一、迭代器(iterator)

在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器

迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。任何这类的对象在Python中都可以用for循环或其他遍历工具迭代,迭代工具内部会在每次迭代时调用next方法,并且捕捉StopIterati...

阅读全文...

用Python进行基础的函数式编程的教程


许多函数式文章讲述的是组合,流水线和高阶函数这样的抽象函数式技术。本文不同,它展示了人们每天编写的命令式,非函数式代码示例,以及将这些示例转换为函数式风格。

文章的第一部分将一些短小的数据转换循环重写成函数式的maps和reduces。第二部分选取长一点的循环,把他们分解成单元,然后把每个单元改成函数式的。第三部分选取一个很长的连续数据转换循环,然后把它分解成函数式流水线。

示例都是用Python写的,因为很多人觉得Python易读。为了证明函数式技术对许多语言来说都相同,许多示例避免使用Python特有的语法:map,reduce,pipeline。
导引

当人们谈论函数式编程,他们会...

阅读全文...

Python中decorator使用实例


在我以前介绍 Python 2.4 特性的Blog中已经介绍过了decorator了,不过,那时是照猫画虎,现在再仔细描述一下它的使用。

关于decorator的详细介绍在 Python 2.4中的What's new中已经有介绍,大家可以看一下。

如何调用decorator

基本上调用decorator有两种形式

第一种:

复制代码 代码如下:

@A
def f ():

这种形式是decorator不带参数的写法。最终 Python 会处理为:

复制代码 代码如下:

f = A(f)

还可以扩展成:

复制代码 代码如下:

@A
@B
@C
def f ():

最终 Python 会...

阅读全文...

Python中操作文件之write()方法的使用教程


write()方法把字符串str写入文件。没有返回值。由于缓冲,字符串可能不实际显示文件,直到flush()或close()方法被调用。
语法

以下是write()方法的语法:

fileObject.write( str )

参数

  • str -- 这是要被写入的文件中的字符串。

返回值

此方法不返回任何值。
例子

下面的例子显示write()方法的使用。

#!/usr/bin/python

# Open a file in write mode
fo = open("foo.txt", "rw+")
print "Name of the file: ", fo.name

# Ass...

阅读全文...

Python中的赋值、浅拷贝、深拷贝介绍


和很多语言一样,Python中也分为简单赋值、浅拷贝、深拷贝这几种“拷贝”方式。

在学习过程中,一开始对浅拷贝理解很模糊。不过经过一系列的实验后,我发现对这三者的概念有了进一步的了解。

一、赋值

赋值算是这三种操作中最常见的了,我们通过一些例子来分析下赋值操作:

str例

复制代码 代码如下:

a = 'hello'
b = 'hello'
c = a
[id(x) for x in a,b,c]
[4404120000, 4404120000, 4404120000]

由以上指令中,我们可以发现a, b, c三者的地址是一样的。所以以上赋值的操作就相当于c = a = b = '...

阅读全文...

python操作sqlite的CRUD实例分析


本文实例讲述了python操作sqlite的CRUD实现方法。分享给大家供大家参考。具体如下:

import sqlite3 as db
conn = db.connect('mytest.db')
cursor = conn.cursor()
cursor.execute("drop table if exists datecounts")
cursor.execute("create table datecounts(date text, count int)")
cursor.execute('insert into datecounts values("12/1/2011",35...

阅读全文...

Python sys.path详细介绍


如何将路径“永久"添加到sys.path?

sys.path是python的搜索模块的路径集,是一个list

复制代码 代码如下:

['', 'C:\\WINDOWS\\system32\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\ \lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26 ', 'C:\\Python26\\lib\\site- packages', 'C:\\Python26\\lib\\site-pack...

阅读全文...