Head First Python学习笔记(2)

书上的例程分析

先上代码

!/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))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值