From 2148fad04adaf3d20cc3e83f3f26971b6addada7 Mon Sep 17 00:00:00 2001 From: nataliexh Date: Fri, 18 Aug 2017 23:32:31 +0800 Subject: [PATCH] add s2 homework --- ...\347\217\255\346\200\273\347\273\223.docx" | Bin 0 -> 15571 bytes ...355_\346\226\260\346\254\242_homework1.py" | 212 ++++++++++++++++++ ...355_\346\226\260\346\254\242_homework2.py" | 119 ++++++++++ ...A10355_\346\226\260\346\254\242_homework3" | 1 + 4 files changed, 332 insertions(+) create mode 100644 "homeworks/A10355/A10355-\346\226\260\346\254\242-S2\345\210\233\346\204\217\347\274\226\347\250\213\347\217\255\346\200\273\347\273\223.docx" create mode 100644 "homeworks/A10355/A10355_\346\226\260\346\254\242_homework1/A10355_\346\226\260\346\254\242_homework1.py" create mode 100644 "homeworks/A10355/A10355_\346\226\260\346\254\242_homework2/A10355_\346\226\260\346\254\242_homework2.py" create mode 160000 "homeworks/A10355/A10355_\346\226\260\346\254\242_homework3" diff --git "a/homeworks/A10355/A10355-\346\226\260\346\254\242-S2\345\210\233\346\204\217\347\274\226\347\250\213\347\217\255\346\200\273\347\273\223.docx" "b/homeworks/A10355/A10355-\346\226\260\346\254\242-S2\345\210\233\346\204\217\347\274\226\347\250\213\347\217\255\346\200\273\347\273\223.docx" new file mode 100644 index 0000000000000000000000000000000000000000..6e33d95abccca7430e433168f0aa850e118e160d GIT binary patch literal 15571 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 ['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 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-' + 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 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 s_word_dict + +#4.排序 +def sort_words(s_word_dict): + sorted_dict = sorted(s_word_dict.iteritems(), key=lambda d: d[1], reverse=True) + return sorted_dict #返回列表,每个元素是一个元祖 + +#5.计算词频 +def rate_words(volcaulay_list,total_count): + rate_list = [] + current_count = 0 + for val in volcaulay_list: + num = val[1] + current_count = current_count + num + word_rate = float(current_count)/total_count + rate_list.append(word_rate) + return rate_list + +#6.截取词频 +def part_words(volcaulay_list,rate_list,rate_range): + part_word_list = [] + for index in range(len(volcaulay_list)): + if (rate_list[index] >= rate_range[0]) & (rate_list[index] <= rate_range[1]): + part_word_list.append(volcaulay_list[index]) + return part_word_list + +#7.截取相应的频率列表 +def part_rate(rate_list,rate_range): + part_rate_list = [] + for rate in rate_list: + if (rate >= rate_range[0]) & (rate <= rate_range[1]): + part_rate_list.append(rate) + return part_rate_list + +#8.输出成csv +def print_to_csv(volcaulay_list, to_file_path, rate_list): + nfile = open(to_file_path,'w+') + for index in range(len(volcaulay_list)): + nfile.write("%s,%s,%s\n" % (volcaulay_list[index][0], str(volcaulay_list[index][1]),rate_list[index]*100)) + nfile.close() + +def print_def_to_csv(volcaulay_list, to_file_path, rate_list, def_list): + nfile = open(to_file_path,'w+') + for index in range(len(volcaulay_list)): + nfile.write("%s,%s,%s,%s\n" % (volcaulay_list[index][0], str(volcaulay_list[index][1]),rate_list[index]*100,def_list[index])) + nfile.close() + + #9.读取字典 +def read_dict(file_path): + f = codecs.open(file_path, 'r', "utf-8") #打开文件 + lines = f.readlines() + word_dict = {} + for line in lines: + line = line.strip() + word, space, meaning = line.partition(' ') #以空格区分单词与释义 + meaning = meaning.strip() + if word: + word_dict[word] = meaning + return word_dict + + #10.找到单词释义 +def find_defination(words_list,def_dict): + def_list = [] + for word in words_list: + if def_dict.has_key(word[0]): + def_list.append(def_dict[word[0]]) + else: + def_list.append('no defination found') + return def_list + +#12.生成每日单词表 +def day_word_list(num_vol_day,word_list,word_rate_list,defination_list): + num_day = len(word_list)/num_vol_day + for num in range(1,num_day+1): + day_word_list = word_list[(num-1) * num_vol_day:num * num_vol_day] + day_word_rate_list = word_rate_list[(num-1) * num_vol_day:num * num_vol_day] + day_word_def_list = defination_list[(num-1) * num_vol_day:num * num_vol_day] + file_name = 'output/word_%d.csv' %num + # print file_name + print_def_to_csv(day_word_list,file_name,day_word_rate_list,day_word_def_list) + if_left = len(word_list)%num_vol_day + if if_left: + day_word_list = word_list[-if_left:] + day_word_rate_list = word_rate_list[-if_left:] + day_word_def_list = defination_list[-if_left:] + file_name = 'output/word_%d.csv' %(num_day+1) + # print file_name + print_def_to_csv(day_word_list,file_name,day_word_rate_list,day_word_def_list) + + +def main(): + + #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_dict = statictcs_words(f_words) + + #4.排序 + word_list = sort_words(word_dict) + + #5.统计词频 + word_rate_list = rate_words(word_list,total_word_count) + # print word_rate_list + + #6.截取单词 + start_and_end = [0.5, 0.7] #截取这一部分的单词 + parted_words_list = part_words(word_list,word_rate_list,start_and_end) + + #7.截取相应词频列表 + parted_words_rate_list = part_rate(word_rate_list,start_and_end) + + #8. 输出文件 + # print_to_csv(word_list, 'output/total_words.csv', word_rate_list) + # print_to_csv(parted_words_list,'output/part_words.csv',parted_words_rate_list) + + #9.读取字典 + defination_dict = read_dict('8000-words.txt') + + #10.找到单词释义 + defination_list = find_defination(parted_words_list,defination_dict) + + #11.输出释义文件 + print_def_to_csv(parted_words_list,'output/defination.csv',word_rate_list,defination_list) + + #12.生成背单词表 + num_vol_day = 10 + day_word_list(num_vol_day,parted_words_list,word_rate_list,defination_list) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git "a/homeworks/A10355/A10355_\346\226\260\346\254\242_homework2/A10355_\346\226\260\346\254\242_homework2.py" "b/homeworks/A10355/A10355_\346\226\260\346\254\242_homework2/A10355_\346\226\260\346\254\242_homework2.py" new file mode 100644 index 0000000..02c61b8 --- /dev/null +++ "b/homeworks/A10355/A10355_\346\226\260\346\254\242_homework2/A10355_\346\226\260\346\254\242_homework2.py" @@ -0,0 +1,119 @@ +# -*- 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 #蛇前进的方向 +dirt_old = 1 + +snake = [[4,3],[5,3],[6,3]] +apple = [3,1] + +def screen_show(screen): + screen.fill([255,255,255]) + + # lose_show(screen) + + for index,body in enumerate(snake): + if index == 0: + pygame.draw.rect(screen, [0, 100, 0], [body[0] * SIZE, body[1] * SIZE, SIZE - 1, SIZE - 1]) + else: + pygame.draw.rect(screen, [0, 255,0], [body[0]*SIZE,body[1]*SIZE, SIZE - 1, SIZE - 1]) + # 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) + img = pygame.image.load("beach_ball.png") + img = pygame.transform.scale(img,(SIZE,SIZE)) + screen.blit(img, [apple[0]*SIZE, apple[1]*SIZE]) + pygame.display.flip() + +def lose_show(screen): + screen.fill([255,255,255]) + font = pygame.font.Font(None, 100) + text = font.render("Game Over", True, [255,0,0]) + screen.blit(text, [0,100]) + pygame.display.flip() + +def snake_update(): + global dirt + global dirt_old + if dirt_old - dirt == 2 or dirt_old - dirt == -2: #禁止掉头 + dirt = dirt_old + 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) + else: + snake.insert(0, new_body) + snake.pop() + + dirt_old = dirt + +def snake_if_die(): + for num in range(1,len(snake)): + if snake[0] == snake[num]: + return True + return False + +def snake_if_eat(): + if snake[0] == apple: + return True + +def apple_update(): + if snake_if_eat(): + apple[0] = random.randint(0,19) + apple[1] = random.randint(0,19) + +def w_down_cb(): + global dirt + dirt = 0 + +def s_down_cb(): + global dirt + dirt = 2 + +def a_down_cb(): + global dirt + dirt = 1 + +def d_down_cb(): + global dirt + dirt = 3 + +def main(): + pygame.init() + screen = pygame.display.set_mode([WIDTH, HEIGHT]) + running = True + + while running: + pygame.time.delay(200) # 50ms + snake_update() + apple_update() + screen_show(screen) + + if snake_if_die(): + lose_show(screen) + running = False + + 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_cb() + elif event.key == pygame.K_d: + d_down_cb() + pygame.quit() + +if __name__ == '__main__': + main() diff --git "a/homeworks/A10355/A10355_\346\226\260\346\254\242_homework3" "b/homeworks/A10355/A10355_\346\226\260\346\254\242_homework3" new file mode 160000 index 0000000..a2b993e --- /dev/null +++ "b/homeworks/A10355/A10355_\346\226\260\346\254\242_homework3" @@ -0,0 +1 @@ +Subproject commit a2b993eedc109b8614eb5b3e47681aba8b57ed73