第四次作业——吴有恒

设计题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"右对齐

 

posted on 2019-05-09 22:31  Kovrry  阅读(160)  评论(0编辑  收藏  举报

导航