1. 包
import 模块名
这个包首先在当前文件夹找。
每一个模块中能够用__name__推断是否为__main__来执行程序
创建包pack,建立一个目录然后创建__init__.py
import pack.filename
pack.filename.f()
引用包重命名 import pack as newname
from cal import * #这样使用不用加包名
from sys import args #仅仅有args不用加包名
pickle
将对象打包存入文件
out=open("myindex.dat","wb")
pickle.dump(myindex,out)#存入
a=pickle.load(out)#读出
pprint 包中pprint方法能够美观打印对象
2. 文件操作
a=open(‘‘).readlines()
a[4]#能够定位任何位置
len(open(‘data.sql‘).readlines())#确定有多少行
read是把全部数据读成一个字符串,readline是读一行,readlines是把全部行读成一个列表,xreadlines是假装读取全部行 。但当你用到时才把数据从硬盘里读出来
fp.seek(offset[, whence])来定位偏移。fp.read([size])能够给出可选參数size来指定读取字节的长度
from __future__ import with_statement with open(‘/path/to/file‘, ‘rb‘) as fp: for line in fp: do_something_with(line)#速度更快
3.存在,遍历
存在使用in操作就可以
当在python中遍历一个序列时,我们通常採用例如以下的方法:
for item in sequence:
process(item)
假设要取到某个item的位置,能够这样写:
for index in range(len(sequence)):
process(sequence[index])
还有一个比較好的方式是使用python内建的enumerate函数:
enumerate(sequence,start=0)
上述函数中,sequence是一个可迭代的对象,能够是列表。字典。文件对象等等。
enumerate返回的是下标和item组成的元组:
>>> seasons = [‘Spring‘, ‘Summer‘, ‘Fall‘, ‘Winter‘]
>>> list(enumerate(seasons)) [(0, ‘Spring‘), (1, ‘Summer‘), (2, ‘Fall‘), (3, ‘Winter‘)]
>>> list(enumerate(seasons, start=1)) [(1, ‘Spring‘), (2, ‘Summer‘), (3, ‘Fall‘), (4, ‘Winter‘)]
文章最開始的样例于是能够写写成这样:
for index,item in enumerate(sequence):
print index,item
想找哪个元素 index 哪个元素有多少个 count 添加 append insert,排序 sort 删除 pop(index) remove(ele)
for iterating_var in sequence:
do
若是数字 range(i;j:步长)前闭后开 i默觉得0 步长默觉得1
xrange
for i(迭代器) in “pathon”(序列)
迭代器是内容不是下标,若用下标则使用for i int range(len()):
遍历字典 for k,v in dict.items():
sum 求和 Len 求长
结构体数组的使用
class item:
def __init__(self):
self.name=‘‘
self.size=10
self.list=[]
a=[]
a.append(item())
a[0].name=‘cup‘
a[0].size=8
print len(a)
定义1000长度的a。初始值全为0
a = [0 for x in range(0, 1000)]
定义二维数组
a=[[0 for x in range(10)] for y in range(10)],若使用变长则用a.append([])
for i in range(0, 10): arraylist.append([]) for j in range(0, 5): arraylist.append([])
4. 字典
字典
items() 返回包括键值对的元组
keys() values()
5.函数使用
from sys import argv #包,即模组 script,first,second,third = argv #script为文件名称。后面依次为3 个參数 print script,first,second,third
基本函数使用 def print_two(*args): #if while for都有个冒号要注意,指针參数接受也不一样 arg1,arg2,arg3=args print "arg1:%r,arg2:%r,arg3:%r"%(arg1,arg2,arg3) print_two("argument","implument","interface") ‘‘‘ <span style="font-size:12px;">默认參数(自右至左写),强制參数m(x=3) 函数中定义全局变量 global 该变量必须在函数调用后才干用。若重名则是改动 默认返回值是None。返回值能够是随意类型 用元组传參,接受返回值 函数传參 实为字典</span> ‘‘‘
多类型传值
使用元组传值f(*t) 将元组中的数据分别传给形參
若须要相应传值使用字典f(**d)
传值冗余
def f(x,*args): args是个元组
def f(x,**kword): 处理冗余字典传參
6.
lambda 表达式lambda x,y:x*y 冒号左边參数右边返回值
reduce(f,l) 将函数f作用于后面的列表 reduce(lambda x,y:x*y,range(1,7)) 720
字典也看实现函数指针的效果和switch的效果。
dict={‘+‘:add,‘-‘:sub};
dict[‘+‘]() 使用或 dict.get("+")()
7.输入
输入raw_input()若要其它类型则是int(raw_input())
raw_input("your name")中放入提示信息