Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions homeworks/1/economist
Original file line number Diff line number Diff line change
@@ -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()
88 changes: 88 additions & 0 deletions homeworks/2/pygame_ball
Original file line number Diff line number Diff line change
@@ -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()
104 changes: 104 additions & 0 deletions homeworks/2/pygame_snake
Original file line number Diff line number Diff line change
@@ -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()
71 changes: 71 additions & 0 deletions homeworks/3/run
Original file line number Diff line number Diff line change
@@ -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('/<string:student_number>/'+'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('/<string:student_number>/'+'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('/<string:student_number>/'+'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('/<string:student_number>/'+'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)
1 change: 1 addition & 0 deletions homeworks/A10509
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@