Python3程序设计实验二
文章摘自:Python3程序设计实验|PengWill
排序
程序设计说明
不使用python中的提供的sort/sorted,自己实现3种排序方法,随机产生100000个[1,1000]之间的整数,各进行10次,对比三种方法的执行速度。
程序设计思路
按照排序算法首先定义好三个函数,之后用random模块随机产生一个list,通过shuffle在其内部进行打乱,同时调用函数执行排序。最后用time模块记录时间输出即可。
程序代码
import random
import time
def bubble_sort(lst):
for i in range(0,len(lst)):
for j in range(i):
if lst[j] > lst[j+1]:
lst[j],lst[j+1] = lst[j+1],lst[j]
return lst
def qsort(lst):
if len(lst) <= 1:
return lst
else:
temp1 = [i for i in lst[1:] if i < lst[0]]
temp2 = [i for i in lst[1:] if i >= lst[0]]
return qsort(temp1) + lst[:1] + qsort(temp2)
def select_sort(lst):
for i in range(0,len(lst)):
min = i
for j in range(i+1,len(lst)):
if lst[min] > lst[j]:
min = j
lst[min],lst[i] = lst[i], lst[min]
return lst
lst = list()
for i in range(1,10001):
lst.append(random.randrange(1,1001))
########################################
# Bubble_sort
print("Bubble_Sorting, Please wait……")
t1 = time.clock()
for i in range(1,2):
random.shuffle(lst)
bubble_sort(lst)
t2 = time.clock()
print('Bubble_sort ' + str(t2 - t1))
########################################
# Select_sort
print("Select_Sorting, Please wait……")
t1 = time.clock()
for i in range(1,2):
random.shuffle(lst)
select_sort(lst)
t2 = time.clock()
print('Select_sort ' + str(t2 - t1))
########################################
# Quick_sort
print("Quick_Sorting, Please wait……")
t1 = time.clock()
for i in range(1,11):
random.shuffle(lst)
qsort(lst)
t2 = time.clock()
print('Quik_sort ' + str(t2 - t1))
我爱记单词
程序设计说明
实现一个简单的记生词软件,基本功能包括:添加新的生词及中文含义,浏览已经记录的单词,随机选择部分单词进行复习。可考虑其他拓展的功能。
程序设计思路
程序分为两个界面。第一个界面添加生词,查看已经记录的单词,同时可以对记录的单词就行修改和删除,还可以设置打算复习的单词的数目。第二个界面为复习单词的界面,给出当前选择单词是否选对和正确率等等情况。
程序代码
Main.py
#-*- coding:utf-8 -*-
import os, sys
import json
import random
import words
from tkinter import *
from tkinter.font import Font
from tkinter.ttk import *
from tkinter.messagebox import *
class Application_ui(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.master.title('Lovely Words-Main')
self.master.geometry('575x204')
self.createWidgets()
def createWidgets(self):
self.top = self.winfo_toplevel()
self.style = Style()
self.style.configure('Delete.TButton',font=('宋体',9))
self.Delete = Button(self.top, text='删除单词', command=self.Delete_Cmd, style='Delete.TButton')
self.Delete.place(relx=0.042, rely=0.51, relwidth=0.252, relheight=0.123)
self.style.configure('Start.TButton'