第四次作业——吴有恒
设计题1:
设计一个本月份日历,输出格式如下:
要求:
1.初始化start_day,end_day两个日期
from datetime import datetime
start_day=datetime(2019,4,1)
end_day=datetime(2019,4,30)
其它时间数据生成要用datetime或date模块的方法编程实现
2.不能使用calendar模块生成
'''设计一个本月份日历,输出格式如下: 要求: 1.初始化start_day,end_day两个日期 from datetime import datetime start_day=datetime(2019,4,1) end_day=datetime(2019,4,30) 其它时间数据生成要用datetime或date模块的方法编程实现''' from datetime import datetime from datetime import timedelta i=1 start_day=datetime(2019,4,2) end_day=datetime(2019,4,30) si=end_day.day-start_day.day+1 a=start_day.day b=start_day.year c=start_day.month first=start_day.isoweekday() print("\t\t\t{}年{}月\t\t\t".format(b,c)) print("\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期天\t") while i<first: print("\t",end="") i=i+1 if((i%7)==0): print("\n") for i in range(0,si): print("\t{}".format(a),end=" ") a=a+1 if((first%7)==0): print("\n") first=first+1
设计题2:
1.参考“三国演义”词频统计程序,实现对红楼梦出场人物的频次统计。
import jieba exculdes={"一个","我们","什么","那里","你们","如今","说道","知道","起来","姑娘","这里", "出来","他们","众人","自己","一面","只见","怎么","两个","没有","不是","不知","这个","听见","这样", "进来","咱们","告诉","就是"} txt=open("红楼梦.txt","r",encoding='utf-8').read() words=jieba.lcut(txt) #文字到列表 #精确模式的分词函数,返回一个列表数据类型 counts={} for word in words: if len(word)==1: continue elif word=="贾宝玉" or word=="宝玉哥哥" or word=="宝玉" or word=="混世魔王"or word=="怡红公子"or word=="富贵闲人"or word=="情哥哥" or word=="神瑛侍者": rword="贾宝玉" elif word=="林黛玉" or word=="林妹妹" or word=="颦颦"or word=="潇湘妃子"or word=="林姑娘"or word=="颦儿"or word=="黛玉": rword="林黛玉" elif word=="薛宝钗" or word=="宝钗"or word=="蘅芜君": rword="薛宝钗" elif word=="王熙凤" or word=="凤姐" or word=="琏二奶奶"or word=="凤姐儿": rword="王熙凤" elif word=="王夫人" or word=="太太": rword="王夫人" elif word=="贾琏" or word=="老爷": rword="贾琏" elif word=="贾母" or word=="老太太"or word=="老祖宗"or word=="奶奶": rword="贾母" else : rword=word counts[rword]=counts.get(rword,0)+1 for word in exculdes: del(counts[word]) items=list(counts.items()) #字典到列表 items.sort(key=lambda x:x[1], reverse=True) ##lambda是一个隐函数,是固定写法,以下命令的意思就是按照记录的第2列排序 for i in range(10): word,count=items[i] print("{0:<10}{1:>5}".format(word,count)) #0:<10左对齐,宽度10,”>5"右对齐