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))
發佈了34 篇原創文章 · 獲贊 360 · 訪問量 73萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章