易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

转:Python的sort()

之前学习第九章的排序小结的时候,对sort()排序方法不理解,因为括号里面带了自定义的比较函数。
后来查手册,才发现sort()里面本来就带了这样的参数。能够自定义比较方法,确实很灵活。
不仅如此,在网上查到一个博客,作者不单停留在这表面,还查究了sort()的排序算法,确实有意思。
全文抄录如下:
http://blog.donews.com/maverick/archive/2006/07/09/951101.aspx
学习笔记:Python的排序
Python语言内置了sort方法,可以很方便地对某个List进行排序:
L = [6, 5, 1, 3, 4, 2]
L.sort()
print L
---------- Run Python Program ----------
[1, 2, 3, 4, 5, 6]
某些时候,我们希望按照自己定义的排序规则来排序(例如,按关键词的权重排序,按人的年龄排序,等等)。在Java语言中,我们可以自定义Comparator来实现,Python中也提供了类似的办法。
若List中每个元素都是2-tuple,tuple中第一个元素为String类型的keyword,第二个元素为该字符串对应的权重(int类型),希望按照权重排序(从高到低),则可以这样:
def my_cmp(E1, E2):
    return -cmp(E1[1], E2[1])    #compare weight of each 2-tuple
   &nb ......

[Python 学习]2.5版yield之学习心得

(转)[Python 学习]2.5版yield之学习心得
 
在 shhgs 发布了关于《 Py 2.5 what's new 之 yield》之后,原来我不是特别关注 yield 的用法,因为对于2.3中加入的yield相对来说功能简单,它是作为一个 generator 不可缺少的一条语句,只要包含它的函数即是一个 generator 。但在2.3中,generator 不能重入,不能在运行过程中修改,不能引发异常,你要么是顺序调用,要么就创建一个新的 generator。而且 generator 中的 yield 只是一个语句。但到了 2.5 版之后,情况发生了很在的变化。
在 shhgs 的文章中对于 yield 并没有做太多的描述,也因此让我在理解上产生了许多问题,于是我仔细地研究了 What's new 和 PEP 342 文档,有了一些体会,描述在下面。
这里不说为什么要对 yield 进行修改,只说功能。
1. yield 成为了表达式,它不再是语句,但可以放在单独的行上。原文:
Redefine "yield" to be an expression, rather than a statement. The current yield statement would become a yield expression whose value is thrown away.
可以看到,如果你还是写成语句形式的话,其实还是一个表达式,只是它的值被扔掉了。
那么一个 yield 表达式可以这样写:
x = yi ......

python学习

3. Dictionaries 字典类型
     Python中,字典类型并不是顺序容器,而类似c++中的关联容器(map),Dictionaries中存储的是键/值 对,和map不同的是,Python的Dictionaries中可以存任意对象类型。Dictionaries类型也是可变的,和Lists一样,可以原地修改(通过下标修改)。
    下面通过例子看Dictionaries如何定义的:
 
    可以看出键可以是任何类型,类似我们在c++中用hash取值一样,另外可以看到键值不能有重复的,负责后面的元素会覆盖前面的,而其赋值时,...
   Dictionaries支持嵌套定义,即它的键/值对中,值还可以使Dictionaries类型或者是Lists类型。
   另外,我们可以通过把一个Dictionaries对象设置为0,来释放内存。
比如设置:Dict = 0,则释放Dict占用的资源,此时Python会调用垃圾处理机制来释放资源。
  字典类型不是序列,并不维持从左到右的顺序,比如:
>>> D = {'a':1, 'b':2, 'c':3}
>>> D
{'a': 1, 'c': 3, 'b': 2}
那么我们怎么按顺序打印出键/值对呢?
>>> for key in sorted(D):
print key,'=>', D[key]
......

python学习

 4、Tuples 元组
     元组和Lists相似,但它是immutable,初始化后不能改变其内容,这在程序中有时候很有用,可以用来防止定义的变量内容被意外改变。
5、Files 文件
    文件操作和c语言比较接近,下面只通过代码演示:
>>> f = open('data.txt','w')
>>> f.write('mike\n')
>>> f.write('wolf\n')
>>> f.close()
>>> f = open('data.txt')
>>> bytes = f.read()
>>> bytes
'mike\nwolf\n'
>>> print bytes
mike
wolf
>>> bytes.split()
['mike', 'wolf']
>>> bytes
'mike\nwolf\n'
6、其他数据类型
Set(集合),fixed prescion floating number (固定精度的浮点数),Boolean(布尔变量),placehold(占位符)等。
下面看下使用的一些代码:
>>> x = set([1, 2, 3,4])
>>> y = set([3,4, 5,6])
>>> x|y
set([1, 2, 3, 4, 5, 6])
>>> x+y
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
x+y
TypeError: unsuppor ......

用ACCESS的视图导数据到EXCEL

从ACCESS中导数据到EXCEL高效的方法,借鉴了网上的一种导表的方法,
尝试了下用视图也是可以的:
但这种方法有缺陷的地方是可能弹出两个对话框,
一个是在access有密码的情况下,弹出让输入密码的对话框
另一个是安全对话框,这个要改变access的宏安全级别到低才不弹出
改变宏安全级别可以在access中手工设置,用程序设置的要修改注册表
感觉都不是很好解决办法,但偶也没有想出更好的办法。
在假设已经设置了宏安全级别的情况下,导出实现修正如下:
Access.ApplicationClass oAccess = new Access.ApplicationClass();
oAccess.Visible = false;
// 没有密码,可以设置成空
string sDBPassword = "MyPassword"; //database password
DAO._DBEngine oDBEngine = oAccess.DBEngine;
DAO.Database oDB = oDBEngine.OpenDatabase("c:\\mydb.mdb",
false, false, ";PWD=" + sDBPassword);
oAccess.OpenCurrentDatabase("d:\\test.mdb",false,"");
oDB.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDB);
oDB = null;
System.Runtime.InteropServices.Marshal.ReleaseComObject(oDBEngine);
oDBEngine = null;
oAccess.DoCmd.Trans ......

csv 导入 sqlserver 的数据类型问题

遇到一个问题,把scv导入数据库时,数字的被自动认为是int,然而超过int范围的值统统被读成null进表。
解决办法是在csv文件下,创建一个名为Schema.ini的文件。格式如下:
Schema.ini格式如下(参考:MSDN主题 Schema.ini File):
Schema.ini用于提供文本数据中的记录规格信息。每个Schema.ini的条目用于指明表的5个特征之一:
文本文件名
文件名有方括号括起来,例如如果要对Sample.txt使用Schema,那么它的对应的Schema条目应该是
[Sample.txt]
文件格式
指令如下:
Format=Value
Value可以取下面的值之一:
TabDelimited 用Tab分隔
CSVDelimited 用逗号分隔
FixedLength 固定长度
Delimited(C) 指定字符,其中C可以为除了双引号(")外的任何字符,也可以为空
字段名、字段宽度和类型
格式为:Coln=字段名 数据类型 [width 宽度]
字段名可以是任意字符,如果字段名包含空格,请使用双引号括起来。
数据类型可以为:
Bit
Byte
Short(Integer)
Long
Currency
Single
Double(Float)
DateTime(Date DateFormat)
Text(Char)
Memo(LongChar)
其中DateFormat是日期的格式字符串例如:Date YYYY-MM-DD
字符集
格式:CharacterSet=ANSI | OEM
格 ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [5924] [5925] [5926] [5927] 5928 [5929] [5930] [5931] [5932] [5933]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号