首页 › Category Archives › Python

Windows 下Python3.1 连接数据库的办法

最近刚刚学python,学的也差不多了,想试试数据库编程,不过由于版本的问题,原有的数据库连接模块很多都不兼容python3。 在Google上淘了半天,终于找到了ceODBC,方法很简单,直接在SourceForge下载相应版本安装,使 用的时候import ceODBC即可。

以下是几行测试代码:

import ceODBC

con=ceODBC.connect(‘dsn=mysql1;uid=xuyun;pwd=123456′)

curser=con.curser()

curser.execute(“SELECT * FROM course”)

curser.fetchone()

完美运行。

说到这里,可能有人要问为什么不用pythonwin呢,我实在抱歉得很,目前pythonwin至少在我的机子上是用不了,只要执 行,ODBC.ODBC(”)即死了!可能是我机子的原因?这个我对数据库的底层问题不太了解,高手有知道的可以告诉我一声。 继续阅读 »

Python 列表 list 数组 array 常用操作集锦

Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。

创建列表
sample_list = ['a',1,('a','b')]

Python 列表操作
sample_list = ['a','b',0,1,3]

得到列表中的某一个值
value_start = sample_list[0]
end_value = sample_list[-1]

删除列表的第一个值
del sample_list[0] 继续阅读 »

使用C语言扩展Python(一)

开发环境:Ubuntu9.10,python2.6,gcc4.4.1

1,ubuntu下的python运行包和开发包是分开的, 因此需要在新利得里面安装python-all-dev,从而可以在代码中引用python的头文件和库。

2.下面是一个最简单的可以供 python调用的c扩展模块,假设c程序文件名为foo.c:

#include "python.h"

static PyObject* foo_bar(PyObject* self, PyObject* args) {
    Py_RETURN_NONE;
}

static PyMethodDef foo_methods[] = {
    {"bar",(PyCFunction)foo_bar,METH_NOARGS,NULL},
    {NULL,NULL,0,NULL}
};

PyMODINIT_FUNC initfoo() {
    Py_InitModule3("foo", foo_methods, "My first extension module.");
}

我们可以将上述模块分成3个部分:1)c模块想对外暴露的接口函数。2)提供给外部的python程序使用的一个c模块函数名称映射表。3)c模块的初始 化函数。模块的第一行将Python.h引入到模块中,这个文件将使得你的模块可以hook进python的解释器,从而可以为外部的python程序所 使用。 继续阅读 »

Python OS模块学习(一)

os 模块提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系统平台如 nt 或 posix中的特定函数间自动切换,从而能实现跨平台操作

1.文件操作

build-in函数 open 实 现文件创建, 打开, 修改文件的操作

继续阅读 »

Python 处理管道的方法

Linux下的可以施展的最炫的魔法是什么?相信不同的人说法不同,但是如果没有管道, 那么恐怕在绚丽魔法的都会失去魔力

本文就介绍怎么使用Python 来处理这些管道

管道调用子程序

我们想在程序中使用一个子程序,但是需要动态的传递参数(这里说的动态,是指根据上次子程序输入的结果来决定这次输入什 么),怎么办呢,不用慌,有subprocess!

下文我先介绍一个例子代码,以及他的输出结果!

继续阅读 »

Python 核心教程(第二版)读书笔记(二)

数 字类型

Python支持五种基本数字类型,其中三种是整形类型:

  1. 有符号整形
  2. 长整形 (表示的数字仅受限于用户计算机的虚拟内存总数,可以无限长,只要虚拟内存足够大)
  3. 布尔型(True和False)
  4. 浮点数型
  5. 复数(在其他语言中通常不被直接支持,一般通过类来实现)

字 符串

Python的字符串被定义为引号之间的字符集合。

Python支持使用成对的单引号、双引号、三个单引号、三个双引号来包含字符。

使 用索引操作符[]和切片操作符[:]可以得到子字符串

字符串的索引规则:第一个字符的索引是0,最后一个字符的索引是-1

加号(+)用于字符串连接运算,乘号(*)用于字符串的重复。

继续阅读 »

Python 核心教程(第二版)读书笔记(一)

第一章欢迎来到Python世界


文件扩展名

Python源文件通常用.py扩展。当源文件被解释器加载或者显式地进行字节码编译的时候会被编译成字节码。由于调用解释器的方式不同,源文件会被编译成带有.pyc或者.pyo扩展名的文件。

标 准库的路径

在ubuntu9.10中,Python2.6的库函数默认安装在/usr/lib/python2.6文件夹中。

Python文件的路径

在python中,可执行文件python被安装在/usr/bin文件夹中。

继续阅读 »

Python 核心教程(第二版)读书笔记(三)

第三章Python基础

2010-04-09

换行

一行过长的语句可以使用反斜杠‘\’分解成几行。有两种例外情况一个语句不使用反斜线也可以跨行。

1、在使用闭合操作符时,单一语句可以跨多行。例如:在含有小括号、 中括号、花括号时可以多行书写。

2、三引号包括下的字符串也可以跨行书写。

♣在python中,对象是引用传递的。在赋值时,不管这个对象是新建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。

继续阅读 »

python学习(1)-字典 (Dictionary)

字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成。字典的键必须是不可改变的类型,如:字符串,数字,tuple;值可以为任何python数据类型。

1、新建字典
>>> dict1={} #建立一个空字典
>>> type(dict1)
<type ‘dict’>

2、增加字典元素:两种方法
>>> dict1['a']=1 #第一种
>>> dict1
{‘a’: 1}
#第二种:setdefault方法
>>> dict1.setdefault(‘b’,2)
2
>>> dict1
{‘a’: 1, ‘b’: 2}

3、删除字典
#删除指定键-值对
>>> dict1
{‘a’: 1, ‘b’: 2}
>>> del dict1['a'] #也可以用pop方法,dict1.pop(‘a’)
>>> dict1
{‘b’: 2}
#清空字典
>>> dict1.clear()
>>> dict1 #字典变为空了
{}
#删除字典对象
>>> del dict1
>>> dict1
Traceback (most recent call last):
File “<interactive input>”, line 1, in <module>
NameError: name ‘dict1′ is not defined
继续阅读 »

Python随机函数

模 块:random
randint():接受起始终止位置的两个整数,返回其间的随机整数
randrange() :接受和range()函数一样的参数,随机返回range([start,]stop[,step])结果的一项
uniform() :几乎和randint()一样, 不过它返回的是二者之间的一个浮点数(不包括范围上限)
random() :类似 uniform() 只不过下限恒等于 0.0,上限恒等于 1.0
choice() :随机返回给定序列的一个元素

#!/usr/bin/python
“test python’s inner module random”
N=int(raw_input(‘Enter N: ‘))
n=int(raw_input(‘Enter n: ‘))
m=int(raw_input(‘Enter m: ‘))
继续阅读 »