From 45b527999ec2acb6929a563913b9866507930c6c Mon Sep 17 00:00:00 2001 From: JinxiaoRen Date: Fri, 18 Aug 2017 23:31:10 +0800 Subject: [PATCH] A11121 --- ...\344\272\272\346\200\273\347\273\223.docx" | Bin 0 -> 12460 bytes .../A11121/homework1/homework2-A11121.py | 212 ++++++++++++++++++ homeworks/A11121/homework2/pygame1.py | 17 ++ homeworks/A11121/homework2/pygame2.py | 80 +++++++ homeworks/A11121/homework3/run.py | 105 +++++++++ 5 files changed, 414 insertions(+) create mode 100644 "homeworks/A11121/A11121-\345\260\217\351\207\221\344\272\272-S2-\347\217\255\347\272\247\344\270\252\344\272\272\346\200\273\347\273\223.docx" create mode 100644 homeworks/A11121/homework1/homework2-A11121.py create mode 100644 homeworks/A11121/homework2/pygame1.py create mode 100644 homeworks/A11121/homework2/pygame2.py create mode 100644 homeworks/A11121/homework3/run.py diff --git "a/homeworks/A11121/A11121-\345\260\217\351\207\221\344\272\272-S2-\347\217\255\347\272\247\344\270\252\344\272\272\346\200\273\347\273\223.docx" "b/homeworks/A11121/A11121-\345\260\217\351\207\221\344\272\272-S2-\347\217\255\347\272\247\344\270\252\344\272\272\346\200\273\347\273\223.docx" new file mode 100644 index 0000000000000000000000000000000000000000..5652b77721d9fd4511f4e8507981226cffbba2e8 GIT binary patch literal 12460 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 literal 0 HcmV?d00001 diff --git a/homeworks/A11121/homework1/homework2-A11121.py b/homeworks/A11121/homework1/homework2-A11121.py new file mode 100644 index 0000000..35978e8 --- /dev/null +++ b/homeworks/A11121/homework1/homework2-A11121.py @@ -0,0 +1,212 @@ +# -*- coding: utf-8 -*- + +import codecs +import os +import sys +reload(sys) +sys.setdefaultencoding('utf8') + +#1. 读取文件 +#['aa', 'aaa-bbb-sds'] => ['aa', 'aaa', 'bbb', 'sds'] +def word_split(words): + new_list = [] + for word in words: + if '-' not in word: + new_list.append(word) + else: + lst = word.split('-') + new_list.extend(lst) + return new_list + + +def read_file(file_path): + f = codecs.open(file_path, 'r', "utf-8") #打开文件 + lines = f.readlines() + word_list = [] + for line in lines: + line = line.strip() + words = line.split(" ") #用空格分割 + words = word_split(words) #用-分割 + word_list.extend(words) + return word_list + +def get_file_from_folder(folder_path): + file_paths = [] + for root, dirs, files in os.walk(folder_path): + for file in files: + file_path = os.path.join(root, file) + file_paths.append(file_path) + return file_paths + +#读取多文件里的单词 +def read_files(file_paths): + final_words = [] + for path in file_paths: + final_words.extend(read_file(path)) + return final_words + + +#2.获取格式化之后的单词 +def format_word(word): + fmt = 'abcdefghijklmnopqrstuvwxyz-' + for char in word: + if char not in fmt: + word = word.replace(char, '') + return word.lower() + +def format_words(words): + word_list = [] + for word in words: + wd = format_word(word) + if wd: + word_list.append(wd) + return word_list + +#3. 统计单词数目 +# {'aa':4, 'bb':1} +def statistics_words(words): + # type: (object) -> object + s_word_dict = {} + for word in words: + if s_word_dict.has_key(word): + s_word_dict[word] = s_word_dict[word] + 1 + else: + s_word_dict[word] = 1 + return s_word_dict + #排序 +def sort_words(s_word_dict): + sorted_dict = sorted(s_word_dict.iteritems(), key=lambda d: d[1], reverse=True) + return sorted_dict + + +#4.输出成csv +def print_to_csv(intercepted_word_dict, to_file_path): + nfile = open(to_file_path,'w+') + for val in intercepted_word_dict: + if len(val) == 4: + nfile.write("%s,%s,%0.2f,%s \n" % (val[0], str(val[1]), val[2], val[3])) + elif len(val) == 3: + nfile.write("%s,%s,%0.2f\n" % (val[0], str(val[1]), val[2])) + nfile.close() + +#5 获取累积百分数 +def word_percent(volcabulary_list_lst, total_count): + word_percent_list = [] + current_count = 0 + for val in volcabulary_list_lst: + num = val[1] + current_count = current_count + num + word_perct = (float(current_count)/total_count) * 100 + val.append(word_perct) + word_percent_list.append(val) + return word_percent_list + +def select_word(word_percent_list, rate_range): + word_list_recite = [] + start = rate_range[0] * 100 + end = rate_range[1] * 100 + for val in word_percent_list: + if val[2] >= start and val[2] <= end: + word_list_recite.append(val) + return word_list_recite + +def explanation_file(file_path): + f = codecs.open(file_path, 'r', "utf-8") #打开文件 + lines = f.readlines() + word_list = [] + word_list_utf = [] + for line in lines: + line = line.strip() + words = line.split(" ") #用空格分割 + words = word_split(words) #用-分割 + word_list.append(words) + for word in word_list: + word_utf = [] + for index in word: + word_new = index.encode("utf-8") + word_utf.append(word_new) + word_list_utf.append(word_utf) + return word_list_utf + +def add_explanation(word_list_recite, explanation_list): + words_list = [] + explanation = [] + fword_list_recite =[] + fword_list_noExp =[] + for words in explanation_list: + if len(words) == 2: + words_list.append(words[0]) + explanation.append(words[1]) + for word in word_list_recite: + if word[0] in words_list: + idx = words_list.index(word[0]) + word.append(explanation[idx]) + fword_list_recite.append(word) + else: + fword_list_noExp.append(word) + return fword_list_recite, fword_list_noExp + +def tup2list(volcabulary_list_tup): + volcabulary_list_lst = [] + for val in volcabulary_list_tup: + volcabulary_list_lst.append(list(val)) + return volcabulary_list_lst + +def get_daily_task(daily_task, total_list, num): + daily_task_list =[] + for index,val in enumerate(total_list):#有问题!为什么一定要加上val?以及注意下enumerate的用法 + daily_task_list.append(total_list[index + daily_task * (num - 1)]) + if len(daily_task_list) >= daily_task: + break + return daily_task_list + + + + +def main(): + daily_task = 100 #设置每日单词量 + day_No = 1 #当前天数 + if_sort = True #顺序/乱序 + if_intercept = True #是否截取 + #1. 读取文本 + words = read_files(get_file_from_folder('data1')) + print '获取了未格式化的单词 %d 个' % (len(words)) + + #2. 清洗文本 + f_words = format_words(words) + total_word_count = len(f_words) + print '获取了已经格式化的单词 %d 个' %(len(f_words)) + + #3. 统计单词 + word_list = statistics_words(f_words) + #4. 排序 + if if_sort: + sorted_dict = sort_words(word_list) + else: + sorted_dict = word_list + + #5. 将tuple格式转为可变的list格式 + volcabulary_list_lst = tup2list(sorted_dict) + + #6.计算得到单词频次 + intercepted_word_dict = word_percent(volcabulary_list_lst, total_word_count) + if if_intercept: + start_and_end = [0.5, 0.7] # 截取这一部分的单词 + word_list_recite = select_word(intercepted_word_dict, start_and_end) + else: + word_list_recite = intercepted_word_dict + print '需要背诵的单词有%d个' % len(word_list_recite) + explanation_list = explanation_file('8000-words.txt') + fword_list_recite, fword_list_noExp = add_explanation(word_list_recite, explanation_list) + + #7. 输出文件 + print_to_csv(fword_list_recite, 'output/Day5.csv') + print_to_csv(fword_list_noExp, 'output/Day5_2.csv') + + #8.获取每日任务 + daily_task_list = get_daily_task(daily_task, fword_list_recite, day_No) + + print_to_csv(daily_task_list,'output/'+str(day_No)+'.csv') + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/homeworks/A11121/homework2/pygame1.py b/homeworks/A11121/homework2/pygame1.py new file mode 100644 index 0000000..544b516 --- /dev/null +++ b/homeworks/A11121/homework2/pygame1.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +import pygame +def main(): + pygame.init() + screen = pygame.display.set_mode([640,480]) #分辨率 返回screen操作变量 + running = True + while running: + screen.fill([255,255,255]) + pygame.draw.circle(screen, [255,0,0], [100,100], 10, 0) #0球 1圆环 + pygame.draw.rect(screen, [0,255,255],[280,400,80,5],0) #0实心 1或其他边框厚度 + pygame.display.flip() + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + pygame.quit() +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/homeworks/A11121/homework2/pygame2.py b/homeworks/A11121/homework2/pygame2.py new file mode 100644 index 0000000..31bbdfd --- /dev/null +++ b/homeworks/A11121/homework2/pygame2.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +import pygame +MON_CON = True +width = 180 +height = 5 +board = pygame.Rect(280,400,width,height) #弹球方块 + +circle = [100,100] #圆心位置 +RADIUS = 10 #球半径 +SPEED = [5,5] #每个单位时间走5个像素点 +WIDTH = 640 +HEIGHT = 480 + +def update_ball(): + if circle[1] - RADIUS == 0: + SPEED[1] *= -1 + if (circle[0] +RADIUS == WIDTH) or (circle[0] - RADIUS ==0): + SPEED[0] *=-1 + if (circle[1]+RADIUS +height/2 ==board.centery) and ((-width/2) < (circle[0]-board.centerx) < (width/2)): + SPEED[1] *= -1 + + circle[0] += SPEED[0] + circle[1] -= SPEED[1] + + + +def draw_surface(screen): + screen.fill([255, 255, 255]) #R G B white 每一次都要重新填充否则就变成每一帧的叠加 + pygame.draw.circle(screen, [255, 0, 0], circle, RADIUS) # 0球 1圆环 默认0 + pygame.draw.rect(screen, [0, 255, 255], board) # 0实心 1或其他边框厚度 + pygame.display.flip() #显示到界面上 +def update_board(): + if MON_CON: + (x,y) = pygame.mouse.get_pos() #获取鼠标的位置信息 + board.centerx = x #板的x随鼠标移动 + #board.centery = y +def w_down_cb(): + if not MON_CON: + (x,y) = pygame.mouse.get_pos() + # board.centery -= 5 #pygame的坐标系和传统的是反向的 第四象限。 + pass +def a_down_cb(): + if not MON_CON: + (x,y) = pygame.mouse.get_pos() + board.centerx -= 15 +def s_down_cb(): + if not MON_CON: + (x,y) = pygame.mouse.get_pos() + # board.centery += 5 + pass +def d_down_cb(): + if not MON_CON: + (x,y) = pygame.mouse.get_pos() + board.centerx += 15 + +def main(): + pygame.init() + screen = pygame.display.set_mode([WIDTH,HEIGHT]) #分辨率 返回screen操作变量 + running = True + + while running: + pygame.time.delay(50) + update_board() #根据鼠标的输入更新弹球的位置 + update_ball() + draw_surface(screen) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_w: + w_down_cb()#call back 回调函数 对按键的相应 + elif event.key == pygame.K_s: + s_down_cb() + elif event.key == pygame.K_a: + a_down_cb() + elif event.key == pygame.K_d: + d_down_cb() + pygame.quit() +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/homeworks/A11121/homework3/run.py b/homeworks/A11121/homework3/run.py new file mode 100644 index 0000000..3244946 --- /dev/null +++ b/homeworks/A11121/homework3/run.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +from flask import Flask +from flask_wtf import Form +from wtforms import StringField,SubmitField +from wtforms.validators import Required +from flask import render_template +import json +import time +import codecs +import os +from flask import request,redirect + +app = Flask(__name__) +# 加载配置文件 +app.config.from_object('config') + +# 初始化form +class MockCreate(Form): + note = StringField("note",[Required()]) + student = StringField("student",[Required()]) + submit = SubmitField("Submit") + +# 读取留言文件信息 +def read_note_txt(file_path): + BASE_DIR = os.path.dirname(__file__) + nfile = codecs.open(file_path, 'r', 'utf-8') + lines=nfile.readlines() + datas=[] + for line in lines: + line = line.strip() + data = line.split(",") + datas.append(data) + return datas + nfile.close() + +def read_json_file(filepath): + file=open(filepath,"r+") + file_text=file.read() + data=json.loads(file_text) + return data + +@app.route('/') +def index(): + BASE_DIR = os.path.dirname(__file__) + data=read_json_file(BASE_DIR+'/static/data/index.json') + return render_template('index.html',data=data) + + +# 获取页面传过来的留言信息,写入文件并且返回首页 +@app.route("/notes",methods=['GET','POST']) +def MockController(): + form = MockCreate() + note = form.note.data + student=form.student.data + now=time.strftime("%Y-%m-%d", time.localtime()) + data = {} + BASE_DIR = os.path.dirname(__file__) + data["note_time"] =now + data["note"] =note + file_path=BASE_DIR+'/static/data/'+student+'.txt' + nfile = codecs.open(file_path, 'a+', 'utf-8') + nfile.write("%s,%s\n" % (data["note"], data["note_time"])) + note=request.url_root + return redirect(note+'details/'+student) + + +@app.route('/details/') +def details(student_number): + BASE_DIR = os.path.dirname(__file__) + data=read_json_file(BASE_DIR+'/static/data/index.json') + user_data={} + for item in data: + if student_number==item['student_number']: + file_path = BASE_DIR + '/static/data/' + item['student_number'] + '.txt' + notes = read_note_txt(file_path) + user_data=item + break + data = read_json_file(BASE_DIR + '/static/data/project.json') + pro_data = [] + for item in data: + if student_number==item['student_number']: + pro_data=item["project_info"] + break + return render_template('details.html',data=user_data,note=notes,pro_data=pro_data) + +# 跳转至项目信息页面 +@app.route('//project/') +def project(student_number,number): + BASE_DIR = os.path.dirname(__file__) + data = read_json_file(BASE_DIR + '/static/data/project.json') + project_data = {} + per_data={} + for item in data: + if student_number == item['student_number']: + project_data["project"]=item["project"][number] + per_data=item + break + return render_template('essay.html',data=per_data,pro_data=project_data) + + + + + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file