From b2c2f1288eb5c27c67ba65c8e26176684ffba3b9 Mon Sep 17 00:00:00 2001 From: Kris0101 <479258134@qq.com> Date: Fri, 18 Aug 2017 21:16:14 +0800 Subject: [PATCH 1/3] add four files --- ...52\344\272\272\346\200\273\347\273\223.py" | 11 +++++ homeworks/A11109/homework1/homework1.py | 0 homeworks/A11109/homework2/homework2.py | 0 homeworks/A11109/homework3/homework3.py | 43 +++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 "homeworks/A11109/A11109-\344\272\214\350\212\261-\344\270\252\344\272\272\346\200\273\347\273\223.py" create mode 100644 homeworks/A11109/homework1/homework1.py create mode 100644 homeworks/A11109/homework2/homework2.py create mode 100644 homeworks/A11109/homework3/homework3.py diff --git "a/homeworks/A11109/A11109-\344\272\214\350\212\261-\344\270\252\344\272\272\346\200\273\347\273\223.py" "b/homeworks/A11109/A11109-\344\272\214\350\212\261-\344\270\252\344\272\272\346\200\273\347\273\223.py" new file mode 100644 index 0000000..6ee6b4e --- /dev/null +++ "b/homeworks/A11109/A11109-\344\272\214\350\212\261-\344\270\252\344\272\272\346\200\273\347\273\223.py" @@ -0,0 +1,11 @@ +#1. 碎碎念 +#吊车尾的学渣非要进入S2见见世面,结果不出所料地挂了。 +#2. 个人感受 +#课程安排生动有趣 +#但是自己仍是在编程门外,每次看视频心理都沉甸甸的 +#3. 课程建议 +#无,感觉s1没有的小组合作一步步走上正轨 +#4. 不足反思 +#投入时间不够,一步跟不上步步跟不上 +#总有bug来找我 + diff --git a/homeworks/A11109/homework1/homework1.py b/homeworks/A11109/homework1/homework1.py new file mode 100644 index 0000000..e69de29 diff --git a/homeworks/A11109/homework2/homework2.py b/homeworks/A11109/homework2/homework2.py new file mode 100644 index 0000000..e69de29 diff --git a/homeworks/A11109/homework3/homework3.py b/homeworks/A11109/homework3/homework3.py new file mode 100644 index 0000000..9b27fda --- /dev/null +++ b/homeworks/A11109/homework3/homework3.py @@ -0,0 +1,43 @@ +import json +from flask import Flask +from flask import render_template + +app = Flask(__name__) + +#read data from json +def read_json_file(filepath): + jsonfile = open(filepath, 'r+') + jsontext = jsonfile.read() + data = json.loads(jsontext, strict = False) + jsonfile.close() + return data + +@app.route('/') +def index(): + #read data from json + data = read_json_file('static/data/index.json') + + return render_template('index.html', data=data) + +@app.route('/details/') +def details(student_number): + data = read_json_file('static/data/index.json') + user_data = {} + for item in data: + if student_number == item['student_number']: + user_data = item + return render_template(student_number + '.html', data=user_data) + +@app.route('/details/_self_info') +def self_intro(student_number): + data = read_json_file('static/data/index.json') + user_data = {} + for item in data: + if student_number == item['student_number']: + user_data = item + break + return render_template(student_number + '-infopage.html', data=user_data) + + +if __name__ == '__main__': + app.run(debug = True) \ No newline at end of file From 14ad81793d67fd077a4d88b169eb7c66dca7583d Mon Sep 17 00:00:00 2001 From: Kris0101 <479258134@qq.com> Date: Fri, 18 Aug 2017 21:28:00 +0800 Subject: [PATCH 2/3] add two files --- homeworks/A11109/homework1/homework1.py | 227 ++++++++++++++++++++++++ homeworks/A11109/homework2/homework2.py | 99 +++++++++++ 2 files changed, 326 insertions(+) diff --git a/homeworks/A11109/homework1/homework1.py b/homeworks/A11109/homework1/homework1.py index e69de29..a4e6f6b 100644 --- a/homeworks/A11109/homework1/homework1.py +++ b/homeworks/A11109/homework1/homework1.py @@ -0,0 +1,227 @@ +# -*- coding: utf-8 -*- +# author:kudari + +import sys +import random +reload(sys) +sys.setdefaultencoding( "utf-8" ) +import codecs +import os +import csv + + + +#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_list): + standardList = [] + fmt = 'abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ' + for index, string in enumerate(word_list): + for char in string: + if char not in fmt: + string = string.replace(char, '') + if string != '': + standardList.append(string.lower()) + return standardList + + +#3. 统计单词数目 +# {'aa':4, 'bb':1} +def statictcs_words(words): + 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 sort_dict_reverse(s_word_dict,1) + +# 4.计算每个词的累计频率 +def calculate_rate(vocabulary_list, total_count): + new_vocabulary_list = {} + current_count = 0 + for val in vocabulary_list: + num = val[1] + current_count =current_count + num + word_rate = (float(current_count)/total_count) * 100 + new_vocabulary_list[val[0]] = word_rate + #排序 + return sort_dict_standard(new_vocabulary_list, 1) + +# 排序 +def sort_dict_standard(vocabulary_list, n): + sorted_dict = sorted(vocabulary_list.iteritems(), key=lambda d: d[n], reverse=False) + return sorted_dict + +def sort_dict_reverse(vocabulary_list, n): + sorted_dict = sorted(vocabulary_list.iteritems(), key=lambda d: d[n], reverse=True) + return sorted_dict + +# 筛选特定频率内的单词 +def select_vocab(vocabulary_list, range): + new_vocabulary_list = {} + for val in vocabulary_list: + rate = val[1] + if ((rate >= range[0]) and (rate <= range[1])): + new_vocabulary_list[val[0]] = val[1] + # 排序 + return sort_dict_standard(new_vocabulary_list,1) + +# 读取字典 +def read_dic(file_path): + dictionary = {} + + f = codecs.open(file_path, 'r', "utf-8") # 打开文件 + lines = f.readlines() + + for line in lines: + lineList=[] + all_words = line.split(" ") + for val in all_words: + if val != "": + lineList.append(val) + dictionary[lineList[0]] = lineList[1] + + return dictionary + +def translate_words(vocabulary_list, dictionary): + word_list = {} + for val in vocabulary_list: + vocab = str(val[0]) + if dictionary.has_key(vocab): + translation = dictionary[vocab] + word_list[vocab] = translation + return sort_dict_standard(word_list,0) + +#4.输出成csv +def print_to_csv(vocabulary_list, to_file_path): + nfile = open(to_file_path,'w+') + for val in vocabulary_list: + nfile.write("%s, %s\n" % (val[0], val[1])) + nfile.close() + +def how_many_words_a_day(word_list, plan): + number_of_words_a_day = len(word_list)/plan + return number_of_words_a_day + +def read_csv(file_path): + word_list = [] + csv_reader = csv.reader(open(file_path)) + for row in csv_reader: + word_list.append(row) + for index, list in enumerate(word_list): + if list == []: + del word_list[index] + return word_list + +# 分割单词表 +def splist(word_list, number_of_words_a_day,plan,shuffle): + if shuffle == True: + random.shuffle(word_list) + print_form = [] + i = 0 + while i < plan - 1: + #一个列表 + single_list = word_list[i*number_of_words_a_day:(i+1)*number_of_words_a_day] + print_form.append(single_list) + i = i+1 + # 最后一个一天多把多余的单词一起背掉 + single_list = word_list[i * number_of_words_a_day:(len(word_list)-1)] + print_form.append(single_list) + return print_form + +#输出多个csv +def print_to_csvs(vocabulary_list, to_file_path, plan): + for i in range(plan): + print_to_csv(vocabulary_list[i], to_file_path + '/day' + str(i+1) + '.csv') + +def main(): + # # day 1 + # #1. 读取文本 + # words = read_files(get_file_from_folder('data1')) + # print '获取了未格式化的单词 %d 个' % (len(words)) + # print words + # #2. 清洗文本 + # f_words = format_word(words) + # total_word_count = len(f_words) + # print '获取了已经格式化的单词 %d 个' %(len(f_words)) + # print f_words + # #3. 统计单词和排序 + # word_list = statictcs_words(f_words) + # print word_list + # #4. 计算单词累计频率 + # word_rate_list = calculate_rate(word_list, total_word_count) + # print '获取了带单词累计频率的单词表,共 %d 个' % (len(word_rate_list)) + # print word_rate_list + # #5. 按频率筛选单词 + # range = [50, 80] + # selected_vocab = select_vocab(word_rate_list, range) + # print selected_vocab + # # 输出文件 + # # print_to_csv(selected_vocab, 'output/test.csv') + # #day 2 + # dictionary = read_dic('data3/8000-words.txt') + # recommended_word_list = translate_words(selected_vocab,dictionary) + # print recommended_word_list + # print_to_csv(recommended_word_list, 'output/test2.csv') + # day 3 + + #读取csv单词表 + word_list = read_csv('output/test2.csv') + + #计划背50天 + plan = 50 + number_of_words_a_day = how_many_words_a_day(word_list, plan) + + # 顺序分割并输出 + list_for_print = splist(word_list, number_of_words_a_day, plan, shuffle = False) + print_to_csvs(list_for_print, 'test3', plan) + + # 乱序分割并输出 + list_for_print2 = splist(word_list, number_of_words_a_day, plan, shuffle = True) + print_to_csvs(list_for_print2, 'test4', plan) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/homeworks/A11109/homework2/homework2.py b/homeworks/A11109/homework2/homework2.py index e69de29..159eca3 100644 --- a/homeworks/A11109/homework2/homework2.py +++ b/homeworks/A11109/homework2/homework2.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +import pygame +import random + +SCALE = 20 +SIZE = 20 +WIDTH = SCALE * SIZE +HEIGHT = SCALE * SIZE + +DIRECT = [[0,-1],[-1,0], [0,1], [1,0]] +dirt = 1 + + +snake = [[4,3],[5,3],[6,3]] +apple = [3,1] + +def screen_show(screen): + screen.fill([255,255,255]) + for body in snake: + pygame.draw.rect(screen, [0, 255, 0], [body[0] * SIZE, body[1] * SIZE, SIZE - 1, SIZE - 1]) + pygame.draw.circle(screen, [255, 0, 0], [apple[0] * SIZE + SIZE / 2, apple[1] * SIZE + SIZE / 2], SIZE / 2) + pygame.display.flip() + +def snake_update(): + global dirt + new_body = [0,0] + new_body[0] = (snake [0][0] + DIRECT[dirt][0]) % SCALE + new_body[1] = (snake[0][1] + DIRECT[dirt][1]) % SCALE + if new_body == apple: + snake.insert(0, new_body) + return True + else: + snake.insert(0, new_body) + snake.pop() + return False + +def is_lose(): + if snake.count(snake[0]) >= 2: + return True + return False + + +def new_apple(): + apple[0] = random.randint(0, 19) + apple[1] = random.randint(0, 19) + + +def w_down_cb(): + global dirt + if dirt % 2 != 0: + dirt = 0 + +def s_down_cb(): + global dirt + if dirt % 2 != 0: + dirt = 2 + + +def a_down_cd(): + global dirt + if dirt % 2 != 1: + dirt = 1 + + +def d_down_cb(): + global dirt + if dirt % 2 != 1: + dirt = 3 + +def main(): + pygame.init() + screen = pygame.display.set_mode([WIDTH, HEIGHT]) + running = True + + while running: + pygame.time.delay(500) + if snake_update(): + new_apple() + + if is_lose(): + break + + screen_show(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() + elif event.key == pygame.K_s: + s_down_cb() + elif event.key == pygame.K_a: + a_down_cd() + elif event.key == pygame.K_d: + d_down_cb() + pygame.quit() + +if __name__ == '__main__': + main() \ No newline at end of file From df214edf43401523ddb3e4a348a340d29a874f47 Mon Sep 17 00:00:00 2001 From: Kris0101 <479258134@qq.com> Date: Fri, 18 Aug 2017 21:39:46 +0800 Subject: [PATCH 3/3] add two files --- homeworks/A11109/homework1/homework1.py | 2 +- homeworks/A11109/homework2/homework2.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeworks/A11109/homework1/homework1.py b/homeworks/A11109/homework1/homework1.py index a4e6f6b..1cebaf6 100644 --- a/homeworks/A11109/homework1/homework1.py +++ b/homeworks/A11109/homework1/homework1.py @@ -177,7 +177,7 @@ def print_to_csvs(vocabulary_list, to_file_path, plan): print_to_csv(vocabulary_list[i], to_file_path + '/day' + str(i+1) + '.csv') def main(): - # # day 1 + # day 1 # #1. 读取文本 # words = read_files(get_file_from_folder('data1')) # print '获取了未格式化的单词 %d 个' % (len(words)) diff --git a/homeworks/A11109/homework2/homework2.py b/homeworks/A11109/homework2/homework2.py index 159eca3..f9ffc9b 100644 --- a/homeworks/A11109/homework2/homework2.py +++ b/homeworks/A11109/homework2/homework2.py @@ -73,7 +73,7 @@ def main(): running = True while running: - pygame.time.delay(500) + pygame.time.delay(600) if snake_update(): new_apple()