易截截图软件、单文件、免安装、纯绿色、仅160KB

被疏忽的一段Python语法

    python提供了有序(sequence)类型(字符串,元组,列表都是有序类型),并且提供了特殊的语法来方便对这些类型进行操作,最常用的有切片操作。同一有序类型的对象之间支持”+”操作符,用来连成一个新的有序对象,有序对象也可以与一个整数进行相乘,得到一个新的有序对象。在调试的时候,我经常使用这样的语句来打印一个分割行:print ‘-‘ * 50。在对有序类型进行“*” 或者 “+”操作的时候,要千万小心。今天,我的同事就遇到了非常郁闷的问题。看下面一段代码: #coding=gbk
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return '(%d, %d)' % (self.x, self.y)
itemList = [Point(-1, -1)] * 5
# 对列表元素进行赋值
for i in range(5):
itemList[i].x = i
itemList[i].y = i

print itemList
上面的代码创建一个包含5个Point对象的列表,然后在一个for循环中对列表中的每个对象的属性进行赋值。运行上面的代码,在屏幕上显示的结果是什么?是 [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)] 吗? 这段代码把我们都欺骗了。结果是:[(4, 4), (4, 4), (4, 4), (4, 4), (4, 4)]。为什么会这样呢?答案在于引用类型与值类型。[Point(-1, –1)] * 5,返回一个包含五个元素的列表,列表中的元素其实引用的是同一个对象,使用for循环在对列表进行初始化的时候,修改的其实是同一个对象的值。所以,结果就…… 一开始,我们郁闷了很长时候,谁也没意识到这个问题。在调试了许久之后才发现,哦,原来上帝在这里。只要作简单的修改,结果就会是我们想要的:
# ...
# itemList = [Point(-1, -1)] * 5
itemList = [Point(-1, -1) for i in range(5)]
# ...


相关文档:

转:Python的sort()

之前学习第九章的排序小结的时候,对sort()排序方法不理解,因为括号里面带了自定义的比较函数。
后来查手册,才发现sort()里面本来就带了这样的参数。能够自定义比较方法,确实很灵活。
不仅如此,在网上查到一个博客,作者不单停留在这表面,还查究了sort()的排序算法,确实有意思。
全文抄录如下:
http://blog.done ......

python学习

 4、Tuples 元组
     元组和Lists相似,但它是immutable,初始化后不能改变其内容,这在程序中有时候很有用,可以用来防止定义的变量内容被意外改变。
5、Files 文件
    文件操作和c语言比较接近,下面只通过代码演示:
>>> f = open('data.txt','w')
>>> ......

python如何连接MySQL数据库

 
#!/usr/bin/env python
# -*-coding:UTF-8-*-#这一句告诉python用UTF-8编码
#=========================================================================
#
# NAME: Python MySQL test
#
# AUTHOR: benyur
# DATE  : 2004-12-28
#
# COMMENT: 这是一个python连接mysql的例子
#
#================ ......

一个大牛整理的python资源

 Python基本安装:
    * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站;
    * http://www.activestate.com/ 集成多个有用插件的强大非官方版本,特别是针对Windows环境有不少改进;
Python文档:
    * http://www.pyth ......

python快捷键汇集


Ctrl+3            行注释
Ctr+\               去行注释
Ctrl+Shift+3   去行注释
Ctrl+4            块注释
Ctrl+5         & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号