diff --git a/homeworks/1/economist b/homeworks/1/economist new file mode 100644 index 0000000..c975035 --- /dev/null +++ b/homeworks/1/economist @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- + +import codecs +import os +import sys + +reload(sys) +sys.setdefaultencoding('utf8') + + +def read_file(file_path): + f = codecs.open(file_path, 'r') #打开文件 + 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 + +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 + +#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 + +#统计单词数目好和排序 +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 + #排序 + sorted_dict = sorted(s_word_dict.iteritems(), key=lambda d: d[1], reverse=True) + return sorted_dict + + +#读取词典文件 +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 + + + +#输出成csv +def print_to_csv(volcaulay_list, word_dict, to_file_path, total_count, start_and_end): + nfile = codecs.open(to_file_path, 'w+', "utf-8") + current_count = 0 + for val in volcaulay_list: + num = val[1] + current_count = current_count + num + word_rate = (float(current_count)/total_count) * 100 + meaning = u'未找到释义' + if val[0] in word_dict: + meaning = word_dict[val[0]] + if (word_rate/100 >= start_and_end[0]) and (word_rate/100 <=start_and_end[1]): + nfile.write("%s,%d,%0.2f,%s\n" % (val[0], val[1], word_rate, meaning)) + nfile.close() + + +def main(): + #1. 读取文本 + words = read_files(get_file_from_folder('data1')) + + #2. 清洗文本 + f_words = format_words(words) + total_word_count = len(f_words) + + #3. 统计单词和排序 + word_list = statictcs_words(f_words) + + start_and_end = [0.5, 0.7] + + word_dict = read_dict("8000-words.txt") + + #4. 输出文件 + print_to_csv(word_list, word_dict, 'output/test.csv', total_word_count, start_and_end) + +if __name__ == "__main__": + main() diff --git a/homeworks/2/pygame_ball b/homeworks/2/pygame_ball new file mode 100644 index 0000000..5dc81c2 --- /dev/null +++ b/homeworks/2/pygame_ball @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +import pygame + +MOU_CON = True + +board = pygame.Rect(280, 400, 80, 5) +circle = [100, 100] +RADIUS = 10 +SPEED = [5, -5] +WIDTH = 640 +HEIGHT = 480 + + +def renew_ball(): + if circle[1] > HEIGHT: + circle[0] = 100 + circle[1] = 100 + +def update_ball(): + #zuo + if circle[1] - RADIUS == 0: + SPEED[1] *= -1 + + #right&top + if circle[0] + RADIUS == WIDTH or circle[0] - RADIUS == 0: + SPEED[0] *= -1 + + #board + if circle[1] + RADIUS == board.top and circle[0] > board.left and circle[0] < board.right: + SPEED[1] *= -1 + + circle[0] += SPEED[0] + circle[1] += SPEED[1] + + +def draw_surface(screen): + screen.fill([255, 255, 255]) #white + pygame.draw.circle(screen, [255, 0, 0], circle, RADIUS) + pygame.draw.rect(screen, [0, 255, 255], board) + pygame.display.flip() + +def update_board(): + if MOU_CON: + (x, y) = pygame.mouse.get_pos() + board.centerx = x + + +def w_down_cb(): + pass + +def s_down_cb(): + pass + +def a_down_cb(): + if not MOU_CON: + board.centerx -= 5 + +def d_down_cb(): + if not MOU_CON: + board.centerx += 5 + +def main(): + pygame.init() + screen = pygame.display.set_mode([WIDTH, HEIGHT]) + running = True + + while running: + pygame.time.delay(50) # 50ms + update_board() + update_ball() + renew_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() + 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/2/pygame_snake b/homeworks/2/pygame_snake new file mode 100644 index 0000000..6534cfe --- /dev/null +++ b/homeworks/2/pygame_snake @@ -0,0 +1,104 @@ +# -*- 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 = [10,2] + +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 lose(): + 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]) + img = pygame.image.load("beach_ball.png") + screen.blit(img, [0, 0]) + 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 eat(): + 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_cb(): + 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(200) # 200ms + if snake_update(): + new_apple() + + if eat(): + lose() + + 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_cb() + elif event.key == pygame.K_d: + d_down_cb() + + pygame.quit() + +if __name__ == '__main__': + main() diff --git a/homeworks/3/run b/homeworks/3/run new file mode 100644 index 0000000..53018ad --- /dev/null +++ b/homeworks/3/run @@ -0,0 +1,71 @@ +from flask import Flask +from flask import render_template +import json + +app = Flask(__name__) + +#def number(student_number): +# folder = "static/json" +# file =open(folder+"/"+str(student_number)+'.json',"r+") +# text = file.read() +# text = dict(json.loads(text)) +# return text + + +def read(): + file =open("static/json/index.json","r+") + text = file.read() + text = json.loads(text) + file.close() + return text + +@app.route('/') +def homepage(): + text = read() + return render_template('index.html', data = text) + +@app.route('//'+'details/page1') +def intro(student_number): + text = read() + data = {} + for i in text: + if i["num"] == student_number: + data = i + break + return render_template("page1.html",data=data) + +@app.route('//'+'details/page2') +def page2(student_number): + text = read() + data = {} + for i in text: + if i["num"] == student_number: + data = i + break + return render_template("page2.html",data=data) + + +@app.route('//'+'details/page3') +def page3(student_number): + text = read() + data = {} + for i in text: + if i["num"] == student_number: + data = i + break + return render_template("page3.html",data=data) + + +@app.route('//'+'details/page4') +def page4(student_number): + text = read() + data = {} + for i in text: + if i["num"] == student_number: + data = i + break + return render_template("page4.html",data=data) + + +if __name__ == '__main__': + app.run(debug=True) diff --git a/homeworks/A10509 b/homeworks/A10509 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/homeworks/A10509 @@ -0,0 +1 @@ +