输入
ret=raw_input('Type a value:')
ret=raw_input()
返回的是一整行字符串
输出print
print "%d is ok" % 12
print "%s is %d" % ("Maria",13)
print "%s %0.2f %d" % tuple(vec)
重定向
print >> sys.stderr, 'Error!'
logf=open('log.txt','a')
print >> logf, 'OK!'
logf.close()
类型转化
数字转字符串:str(123) str(0.126)
字符串转整数:int('123')
字符串转浮点数:float('0.332')
操作符
乘方:**;3**2的结果是9
双斜杠://;浮点除法(对结果四舍五入);有别于传统除法'/'
不等于:!=
变量范围:if 3 < x < 4;合法
不支持自增(减)1:改为x+=1或x-=1
基本数据类型
int: 0101 84 0x80 -0X92A
long: 289L 0XDEC
bool: True False
float: 3.14 4.2E-10 6.02e2
complex: 6.23+1.5j 0-1j
字符串
索引:pstr[0] pstr[-1](最后一个字符的索引是-1)
切片:pstr[0:3] pstr[:3] pstr[4:] (不包括结束索引的字符)
连接:pstr0 + pstr1
重复:pstr*2 '-'*20
三个单引号(或双引号):'''python is cool ''';引号的可以有特殊字符,可保持排版;一般用于注释和文档字符串
迭代:
for e in pstr:
print e
列表和元组
列表初始化:lst=[]
列表连接:lst1+lst2
列表可读可写,元组只读
都可使用切片操作符访问
字典
初始化:mp={} mp={'host':123,'port':80}
添加:mp['key']=value
遍历:
for key in mp:
print key,mp[key]
for
for接受可迭代对象(例如序列和迭代器)作为其参数
range:range(3);输出0-2。range(0:5);输出0-4。不包括上界索引
同时循环索引和元素:
for i,ch in enumerate(foo):
print ch,'(%d)' % i
列表解析:
sd=[x ** 2 for x in range(8) if not x % 2]
文件操作
按行读取文件:
fobj=open('test.txt')
for line in fobj:
print line
fobj.close()
错误和异常
while True:
try:
line=raw_input()
except EOFError:
break
函数
函数在调用前必须先定义
如果没有return语句,会自动返回None对象
函数通过引用调用的;函数内对参数的改变会影响到原始对象;不过,类似于元组的只读对象不受此影响
函数定义:
def addMe(x):
'add operation'
return x+x
默认参数:
def foo(debug=True):
'debug'
if debug:
print 'in debug'
print 'Done'
类
定义类:
class ClassName(base_class[es]):
'optional documentation string'
static_member_declarations
method_declarations
举例:
class FooClass():
'''foo'''
version=0.1
def __init__(self,nm='John'):
"""constructor"""
self.name=nm
def show(self):
print self.name
说明:静态变量version被所有实例和方法共享;当一个类实例被创建时,__init__(会自动执行);self是类实例自身的引用
模块
当你创建了一个python源文件,模块的名字就是不带.py的文件名。一个模块创建后,就可以从另一个模块用import导入
访问模块:
module.function()
module.variable