首页 > 代码库 > python 基本内容

python 基本内容

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")中放入提示信息



python 基本内容