首页 > 代码库 > 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 基本内容