標籤:重寫 分數 name arch false inf lower api enc
練習題Vamei 出處:http://www.cnblogs.com/vameihttp://www.cnblogs.com/vamei/archive/2012/07/19/2600135.html#undefined
【實現】 #!/usr/bin/python# -*-coding:utf-8-*- #-------計算日期差‘‘‘import datetimefrom datetime import dated1=date(2008,1,1)d2=date(2008,10,1)t=abs(d2-d1)n=t.days+1print n #----判斷2008是否為閏年def leapyear(year): #判斷year是否為閏年,ture為閏年,false為非閏年 years=year*1 if(years%100): ##不能整除100進入條件陳述式 return not(years%4) #能整除4返回ture,不能整除4,返回false else: ##能整除100 return not(years%400) #能整除4返回ture,不能整除4,返回false #a=leapyear(2000)#print(leapyear(2000),leapyear(2008),leapyear(1900),leapyear(1833))‘‘‘##----檔案處理# 主要用的list的index和讀取字串split/strip及index讀取;另外可以使用zip將名字、年齡、分數組成元祖列表然後使用for(a,b)in s.numerate 讀取滿足條件類型的index再讀取需要輸出類型#因為需要更正錯誤的地方所有需要開啟兩次該檔案,一份用來讀取,一份用來重寫,故需要注意不需要更正的行+跳過的地方寫入原內容import os,sys#import linecachereload(sys)sys.setdefaultencoding(‘utf-8‘) filepath=‘E:\記錄.txt‘.decode(‘utf-8‘).encode(‘GB2312‘) ##開啟windows中文路徑解析 with open(filepath, ‘r+‘) as f1: f1.seek(0) l = f1.readlines() with open(filepath, ‘w+‘) as f: sum=0 n=0 a=0 f.seek(0) ##讀取檔案時游標位置重新回到頭部,否則容易讀到空 print ‘the all contents is:\n‘,f.read() f.seek(0) for line in l: if (line.isspace()): ##處理檔案為空白行的資料 line=line f.write(line) continue if (line[0]==‘#‘): ##忽略帶#開頭的行 或者使用 if(not line.startswith(‘#‘)) line=line f.write(line) continue a=a+1 l1=line.split(‘,‘) l1[2] = l1[2].strip(‘\n‘)#去除尾部的\n if (l1[2]*1<60): print ‘whose score is lower than 60:‘,l1[0] if(l1[0][0]==‘L‘): print ‘whose name begins with L:‘, l1[0] sum = sum + int(l1[2]) if(not l1[0].istitle()): n=n+1 line=line.capitalize() f.write(line) print‘the totalscore is‘, sumprint‘the name in the file is all title:‘,(n==0)
python練習題及實現--檔案處理、date日期