# 20192228 2019-2020-2 《Python程序设计》实验四报告

课程:《Python程序设计》
班级: 1922
姓名: 郭昊
学号:20192228
实验教师:王志强
实验日期:2020年6月1日
必修/选修: 公选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
我做的是b站的bv号转av号的程序。

2. 实验过程及结果

以下是源码↓
import wx
import math
def BvToAv(Bv):
BvNo1 = Bv[2:]
keys = {
'1': '13', '2': '12', '3': '46', '4': '31', '5': '43', '6': '18', '7': '40', '8': '28', '9': '5',
'A': '54', 'B': '20', 'C': '15', 'D': '8', 'E': '39', 'F': '57', 'G': '45', 'H': '36', 'J': '38', 'K': '51',
'L': '42', 'M': '49', 'N': '52', 'P': '53', 'Q': '7', 'R': '4', 'S': '9', 'T': '50', 'U': '10', 'V': '44',
'W': '34', 'X': '6', 'Y': '25', 'Z': '1',
'a': '26', 'b': '29', 'c': '56', 'd': '3', 'e': '24', 'f': '0', 'g': '47', 'h': '27', 'i': '22', 'j': '41',
'k': '16', 'm': '11', 'n': '37', 'o': '2',
'p': '35', 'q': '21', 'r': '17', 's': '33', 't': '30', 'u': '48', 'v': '23', 'w': '55', 'x': '32', 'y': '14',
'z': '19'

}
BvNo2 = []
for index, ch in enumerate(BvNo1):
    BvNo2.append(int(str(keys[ch])))
BvNo2[0] = int(BvNo2[0] * math.pow(58, 6));
BvNo2[1] = int(BvNo2[1] * math.pow(58, 2));
BvNo2[2] = int(BvNo2[2] * math.pow(58, 4));
BvNo2[3] = int(BvNo2[3] * math.pow(58, 8));
BvNo2[4] = int(BvNo2[4] * math.pow(58, 5));
BvNo2[5] = int(BvNo2[5] * math.pow(58, 9));
BvNo2[6] = int(BvNo2[6] * math.pow(58, 3));
BvNo2[7] = int(BvNo2[7] * math.pow(58, 7));
BvNo2[8] = int(BvNo2[8] * math.pow(58, 1));
BvNo2[9] = int(BvNo2[9] * math.pow(58, 0));
sum = 0
for i in BvNo2:
    sum += i
sum -= 100618342136696320
temp = 177451812
return sum ^ temp

def BvToAv1(event):
Bv= path_text.GetValue()
content_text.SetValue(Bv+" 转换后的链接地址为:http://www.bilibili.com/video/av" +str(BvToAv(Bv)))
def OnClose(event):
global frame
r = wx.MessageBox("作者:呵h呵h哒d,感谢你的使用。", "点击确认后关闭程序", wx.CANCEL | wx.OK | wx.ICON_QUESTION)
if r == wx.OK:
frame.Destroy()

app = wx.App()
frame = wx.Frame(None, title="bv转av", pos=(1000, 200), size=(500, 400))

path_text = wx.TextCtrl(frame, pos=(5, 5), size=(350, 24))
open_button = wx.Button(frame, label="点击转换", pos=(370, 5), size=(100, 24))
open_button.Bind(wx.EVT_BUTTON, BvToAv1)
content_text = wx.TextCtrl(frame, pos=(5, 39), size=(475, 300), style=wx.TE_MULTILINE)
frame.Bind(wx.EVT_CLOSE, OnClose)
frame.Show()
app.MainLoop()
代码截图↓

运行结果截图↓

3. 实验过程中遇到的问题和解决过程

  • 问题1:无法import wx
  • 问题1解决方案:尝试重装python后失败,选择在虚拟机内新建python环境,并下载pycharm,这次尝试很成功。
  • 问题2:wxpython的gui有点难
  • 问题2解决方案:使用百度,查看wxpython的教程。
posted @ 2020-06-14 20:47  呵呵哒。  阅读(130)  评论(0编辑  收藏