Python 内存管理
对象自己有引用计数,计变量的数。
引用计数增加,
引用计数减少。del
垃圾回收。
obj == eval(repr(obj))
内置函数 cmp 调用类的 __cmp__
方法
类型的分类维度:
存储模型
更新模型
访问模型
在整型值后面加一个L(大写小写都可以),就可以表示这个整型是长整型。
复数称为 Python的一种类型
print (0.0+1.0j) * (0.0+1.0j)
两头牛背上的架子称为轭,轭让两头牛同步行走。
地板除 和 真正的除法
1/2 如果 == 0.5 就是真的除法
1/2 如果=0, 就是 底板除。 //
coerce 函数 ,返回 两个数 类型一致后的元祖
divmod 同时返回 除法 和 取余 的结果。
round() 四舍五入
由于程序不能正确地表示 0.1 ,Python有专门的十进制类型
from decimal import Decimal
用string来初始化这个类。
高级的数字科学计算 访问下面两个网站
http://scipy.org/
随机数模块random
常用的函数
randint
randrange
uniform
random
choice
s="abcde"
for i in [None] + range(-1,-5, -1):
string 模块中有一些预定义的字符。
比如
string.digits
string.uppercase
把重复操作放到 循环里, 效率是非常低的。
for else 不知道什么情况下用到这个, 当for中 没有遇到 break时, 就执行else
for a in range(6):
if a == 3:
print a
break
else:
print "3 not exist"
–
编译时字符串连接
字符串的连接,也可以不用加号, 只要连写一起就可以。
s = "fupeng" " is" " me"
格式字符串的两种方式
age = 15
s1 = "I am %s % age
print s1
d = {"age":15}
s2 = "I am %(age)s years old" % d
原始字符串, 不会对反斜杠有特殊的对待
s = "a\n"
print s
s = r"a\n"
string的 split 和 join 方法。
chr(), ord()
print chr(65)
print ord('a')
列表中删除元素,如果知道索引,可以用del删除。
默认集合类型就是元组
,你用逗号,分开几个对象,就是一个元组。
单元素 元组 (a, )
作为字典的键值, 必须是可hash的对象。
当想要拷贝一个列表时候,就会遇到 浅拷贝 还是 深拷贝的问题。
为什么字典的 健 必须是可哈希的。
解释器调用哈希函数,根据键的值来计算你的数据存储的位置。
如果是处理简单的命令行参数 用 getopt 模块 ,复杂的时候用 optparse