Head First Python学习笔记(2)

时间:2022-07-12 21:06:46

书上的例程分析

先上代码

!/usr/bin/env python
coding=utf-8
import sys
def print_lol(the_list,indent=False,level=0,fh=sys.stdout):
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item,indent,level+1,fh)
else:
if indent:
for tab_stop in range(level):
print("\t",end="",file=fh)
print(each_item,file=fh)
  • 首先,函数共四个参数,分别是一个列表;一个bool值,用来确定是否分级输出;一个level,用来确定缩进值;一个文件名,确定输出文件
  • 四个参数有3个是可选的,默认是不分级输出,缩进为0,输出到屏幕;当然也可以自己赋值
  • 函数中用到了递归,可以处理嵌套列表,注意迭代部分参数类型数量要和原函数一致
  • if isinstance(each_line ,list)用来判断参数是不是一个列表
  • print(“\t”,end=”“)作用等同于按下tab键,end=”“表示这次迭代不换行
  • file参数制定输出,不是文件名,而是open函数的左边,这个函数默认是sys.stdout(),标准输出至屏幕

python标准数据处理库pickle学习

  • 保存数据用pickle.dump(),读取数据用pickle.load(),通过以下例子加深认识

    import pickle
    with open("name.txt","wb") as save:
    pickle.dump([1,2,3],save)
    with open("name.txt","rb") as read:
    list=pickle.load(read)
    print(list)

    wb和rb中的b表示二进制

  • 如果中途出现问题,pickle模块会产生一个PickleError类型的异常

    except pickle.PickleEror as perr:
    print("pickleing error"+str(perr))