标签:
print ‘hello world!‘
print "%s is hello world %d" % ("Python",1)
logfile = open(‘/tmp/mylog.txt‘,‘a‘)
print >> logfile, ‘Fatal error: invalid input!‘
logfile.close()
raw_input()函数
操作符:+ - * / //(地板除) % **(幂运算)
比较操作符:< <= > >= == != <>(不推荐)
逻辑操作符:and or not
基本数字类型: int long:10000000000L bool float:3.14159 complex:6.2 + 1.5j
for 和 range()
列表解析:
[x ** 2 for x in range(4)]
>>>0 1 4 9
文件内建函数:open(filename ,access_mode=<?>),file()
access_mode参数选择:r,r+,w,w+,a,a+,rb,r+b,wb,wb+,ab,ab+
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
异常:
try:
代码块
except 错误类型,e:
print e
函数:
def name(参数):
代码块
类:
class name():
ver = 1
def __init__(self,n = ‘a‘):
self.name = n
def haha(self):
return ‘haha‘
self:必须,指向类实例.
ver:静态属性
__init__:构造方法,类实例创建完成后执行,可以完成初始化工作。
haha:自定义方法.
模块
使用函数:
int(obj):转换成int
len(obj):对象长度
type(obj):返回类型(元类)
str(obj):对人友好的转换成string
help(obj):文档
dir(obj):有obj:obj属性,无obj:全局变量名字
#!/usr/bin/env python 为了可以直接用名字运行文件。可加这句话
特殊符号:# \(继续,换行代码) ;(把多个语句写在同一行)
理解变量赋值:
python变量赋值是地址赋值
x = 1
y = (x = x+1)
出错,赋值语句不是合法表达式,没有返回值,c语言中完全ok,然而python不行
y = x = x+1
完全没问题.
‘hello‘*2
‘hellohello‘
+= -= *= /= %= **=
<<= >>= &= ^= |=
多元赋值:
x=y=z=1
x,y,z = 1, 1, 1
下划线:
_xxx:私有
__xx__:系统的
#/usr/bin/env python #开始 “test module” #模块文档 import sys #模块导入 debug = Ture #全局变量 class A(object): #类 pass def b(): #函数 pass if __main__ == ‘__main__‘ #主程序
引用计数:
x = 1
1对象被引用。
y = x
1对象又被引用
x = 2
1对象引用减少
y = x
1对象引用减少
1对象被回收。
del 删除引用。
以上是python的垃圾回收
os.lineseq:根据平台不同得到不同结束符
python对象:三个特征,可更改或不可更改。
1。唯一标示符,身份证
2。类型
3.值
标准类型:整型,布尔型,长整,浮点,复数,字符串,列表list,元祖tuple,dictionary
Null,文件,集合,函数,模块,类。
内部类型:代码对象(源代码),帧对象(不懂),跟踪记录,切片,省略,Xrange
对象比较:
字符串按照序列值比较
3<4<5
相当于
3<4 and 4<5
a is b : 对象身份比较,地址是否相同
a == b : 对象值比较,值是否相同
id(a) : 获得身份证
有时候能用对象比较就不用值比较了,这样可能更快更好
*对于一些对象,python会缓存
例如:a =1
b =1
可能一看会以为指向不同的1
但是python,会把这种常见的1缓存,故你用id(a),id(b)会获得相同的地址,这种机制不稳定。实际没啥用。
内建函数:
cmp(a,b)
比较a,b大小,小返回负数,大正数,等于 0
str()和repr()(``操作符)
str面向玩家的友好转换。
repr()面向机器的友好转换。``(应该抛弃)和repr等价
type()和isinstance(a,b)
type过于复杂,返回一个类型的type类型类
type.IntType 可以得到一个相同的int 的type对象,这意味着,所有int类型会公用这一个对象,既然如此,尽量减少函数调用可以提高效率
同时,用 type(a) is type.IntType比较效率也会比,type(a) == type.IntType更高。
对这些类型类做一个总结就是:
标准类型类:基本,内建,数据(数据存储),对象(对数据和功能的高度抽象),原始(颗粒),类型(是一种类型)
按存储模型分类:原子类型(数值,字符串),容器类型(列表,元祖,字典)
按更新类型分类:可变(列表,字典)不可变(数字,字符串,元祖)
按访问类型分类:直接访问(数值)顺序访问(字符串,列表,元祖)映射访问(字典)
这样分类可以帮助理解,不可变理解是,里面对象占用了地址,他是不会离开的。直到被回收,所以一般我们觉得我们赋值,好像改变了,实际不过是变量换了一个地址罢了。
类型转换:
复数,浮点,长整,整。(这个顺序是默认类型转换,系统会把右边的转换成左边的)
地板除:// 把小数去掉
import __future__ import division会实现真正的除法,默认是传统的除法。
标签:
原文地址:http://www.cnblogs.com/wuweixin/p/4924520.html