猫史档案馆


展氏展悦

展氏展悦

Lv.1

半退休眠期,永远不会忘记自己的朋友以及他们带给自己的美好回忆

获赞:469收藏:274浏览:3395作品收藏:117

签名:保持死前的样子:左手拿极阴神剑,右手拿情绪魔琴,沉入死亡深渊。 生灵神光,黑暗圣光,阴冥极光,炽烈神光,紫极毁灭神光,极冰神光,时空圣光,神音灵光——复活,创神之光!

回复帖子评论
上一页10 页 / 共 10下一页

【故事收集】算是一个素材的采集吧 中回复

给你积累一句我的生活经验:某年某月某日,某人说:“想要超越一个人就是爱一个人,女人想跟男生做朋友就是爱他。”

2021-02-02T17:06:15 点赞:0

【我要上推荐】我的小说《神诡世界:我能无限契约鬼物》,@写作猫快来看看 中回复

我也推荐你,你的写作风格跟我也有点儿像

2021-02-03T22:37:50 点赞:0

谈谈自己看完猫站推荐小说标题后的感想 中回复

唐家三少写斗罗大陆不就是他自己写的吗,难道他也是用同人的吗?所以,你们如果想有超越别人就不要跟别人写一样的。并不是说你们写的不好,只是你们应该考虑一下写自创小说的人的感受,自创小说在推荐上的真的很少,浏览量也很少。其他人看见你们起的标题中有比较有名的小说就会点进去看,觉得你们写得好就会继续看,但我们这些自创小说没名气,就不会有太多人去关注。

2021-02-04T10:41:44 点赞:0

感动上苍!震撼我妈!我们二级啦! 中回复

恭喜emotion_编程猫_点赞

2021-02-05T19:58:01 点赞:0

小说推荐:《属性魔仙宇宙》 中回复

dd

2021-02-07T12:00:54 点赞:0

你的源码精灵等级 中回复

史诗

2021-02-07T12:03:33 点赞:0

赤星源码蛋太费晶石了…… 中回复

我觉得我应该知足了,我买的比你多,剩的却只是你的一半。我把除了普通源码但以外的源码但全买了

2021-02-08T17:18:24 点赞:0

哎,想退了,素质太低,朋友们,再见 中回复

星悦表示十分赞同!

2021-02-09T21:30:39 点赞:0

【关于图书馆】我发现图书馆的人现在越来越少了 中回复

嗯,我也想让图书馆升温,否则我的作品就烂在图书馆了。现在有部分作品还是不错的,但也有部分作品水品不够高

2021-02-10T11:32:00 点赞:2

【重开】一起进来聊天哇 中回复

hi,白糖你好,交个朋友吧

2021-02-10T11:49:08 点赞:0

论我自己在猫站的知名程度 中回复

44

2021-02-10T20:27:59 点赞:0

【重开】一起进来聊天哇 中回复

祝白糖除夕快乐!

2021-02-11T09:41:48 点赞:2

【活动】今天是霖白的13岁生日呀~ 中回复

生日快乐!(刚才在码字才看到)

2021-02-13T21:39:03 点赞:0

【岛3老活新整创作节】官方地图《赤碧城》限时送,报名时间已截止! 中回复

我要参赛,我的地址是:https://box3.codemao.cn/e/778f6af9db762c9409c0

2021-04-24T19:42:12 点赞:0

留下你姓名的音序,会发生神奇的事情 中回复

fxy

2021-06-04T21:05:36 点赞:0

兑换码的好与坏 中回复

但现在答题很难得到专属、赤星或星光这三种源码蛋,所以我建议官方把这个功能更新一下

2021-08-26T15:29:26 点赞:2

【深海·对决】瓢虫的武器投稿帖 中回复

武器名称:深海权杖

操作方法:空格键

伤害值:50~80不等

属性:水

击中效果:被击中玩家体内冲出暗蓝色粒子特效,身体闪烁一下

换弹时间:24秒

缺点:蓄力时间长,伤害不算特别大

其他:本武器属于【魔法类】

备注:本武器缺陷很大不到万不得已不建议使用

2021-08-27T15:44:16 点赞:0

python作品展示:三侠五义人物分类 中回复

温馨提示:本代码需要事先安装库:reportlab、webbrowser、os

如有版本问题,请在<深空G6_2教学环境>下用代码安装:

import platform
import sys
import os
import traceback
import turtle
import time

common_version = {
    'pyecharts': ['pyecharts==0.5.10', 'pyecharts-snapshot==0.1.8'],
    'pyecharts-snapshot': ['pyecharts==0.5.10', 'pyecharts-snapshot==0.1.8'],
    'pillow': ['pillow==6.1.0'],
    'matplotlib': ['matplotlib==3.1.2'],
    'pyside2': ['PySide2==5.12.3'],
    'arcade': ['arcade==2.0.9'],
    'dataclasses': ['dataclasses==0.7'],
    'snownlp': ['snownlp==0.12.3'],
    'nltk': ['nltk==3.4.5'],
    'echarts-countries-pypkg': ['echarts-countries-pypkg==0.1.6'],
    'jieba': ['jieba==0.39'],
    'reportlab': ['reportlab==3.5.23'],
    'wordcloud': ['wordcloud==1.5.0'],
    'imageio': ['imageio==2.5.0'],
    'pygame': ['pygame==1.9.6'],
    'sympy': ['sympy==1.4'],
    'vpython': ['vpython==7.5.2'],
    'requests': ['requests==2.18.1'],
    'psutil': ['psutil==5.6.7'],
    'opencv-python': ['opencv-python==4.1.2'],
    'beautifulsoup4': ['beautifulsoup4==4.8.1'],
    'numpy': ['numpy==1.17.2'],
    'pandas': ['pandas==0.25.1'],
    'seaborn': ['seaborn==0.9.0'],
    'scikit-learn': ['scikit-learn==0.22'],
}
py_path, py_exe = sys.executable.rsplit(os.sep, 1)  # 获取python可执行环境路径,以及可执行环境名称
os.chdir(py_path)  # 切换到对应的路径下,方便执行命令
pypi_source = "https://pypi.tuna.tsinghua.edu.cn/simple/"  # pypi源,可以根据自己的喜好进行更改

screen = turtle.Screen()
turtle.setup(800, 600)
screen.title("课程库管理(安装完成后 3 秒后自动退出)")
pen = turtle.Pen()
pen.speed(0)
pen.hideturtle()
pen.up()
pen.goto(-380, -260)
show_text = ""


def print_info(msg):
    screen.clear()
    pen.write(msg, font=("Arial", 20))


def get_LD(string_a, string_b):
    diff_start = -1
    diff_end = -1
    len_a = len(string_a)
    len_b = len(string_b)
    short = min(len_a, len_b)

    # 寻找开头和结尾的共同字符串,并记录位置
    for i in range(0, short):
        if string_a[i] != string_b[i]:
            diff_start = i
            break
    if diff_start == -1:
        return abs(len_b - len_a)
    for i in range(0, short):
        if string_a[len_a - i - 1] != string_b[len_b - i - 1]:
            diff_end = i
            break
    if diff_end == -1:
        return abs(len_b - len_a)

    # L(A+C, B+C) = LD(A, B)
    # 除去开头以及结尾相同的字符串,构建新的字符串
    long_str = str(string_a[diff_start: len_a - diff_end] if len_a >=
                   len_b else string_b[diff_start: len_b - diff_end])
    short_str = str(string_a[diff_start: len_a - diff_end] if len_a <
                    len_b else string_b[diff_start: len_b - diff_end])

    long_len = len(long_str)
    short_len = len(short_str)

    # store保存迭代过程中每次计算的结果
    store = range(0, long_len + 1)

    for i in range(short_len):
        temp = [i + 1] * (long_len + 1)
        for j in range(long_len):
            if long_str[j] == short_str[i]:
                temp[j + 1] = store[j]
            else:
                # 注意这时各个位置数据的对应关系
                temp[j + 1] = min(store[j], store[j + 1], temp[j]) + 1
        store = temp
    # 最右下角即为编辑距离
    return store[-1]


def get_osname():
    """获取操作系统名称"""
    plt = platform.platform()
    if "Darwin" in plt:
        return "Mac"
    elif "Windows" in plt:
        return "Windows"
    else:
        pass


def get_package():
    global show_text
    # 获取输入的库名及版本
    package_ = screen.textinput(
        "库管理", "请输入库名\n\n注意:指定版本时--<库名和版本中间需要加上空格>--!!!").lower()
    try:
        # 判断是否输入版本号
        if len(package_.split()) > 1:
            package_name, package_version = package_.split()
        else:
            package_name, package_version = package_, "None"
        return package_name, package_version
    except:
        show_text += "------ -> 请输入库名后,用点击Ok(或按回车)方式关闭弹窗....\n\n"
        print_info(show_text)
        print("\n------ -> 请输入库名后,用点击Ok(或按回车)方式关闭弹窗....\n\n")
        time.sleep(3)


def handle(package_name, version):
    """卸载并安装"""
    global show_text
    py_env = ".{}{}".format(os.sep, py_exe)

    os.system("{} -m pip uninstall {} -y".format(py_env, package_name))
    if version == "None":
        print("开始为您安装{} 版本!".format(package_name))
        show_text += "开始为您安装{}版本!\n\n".format(package_name)
        print_info(show_text)
        result = os.system("{} -m pip install {} -i {}".format(py_env,
                                                               package_name, pypi_source))
    else:
        print("开始为您安装{} {} 版本!".format(package_name, version))
        show_text += "开始为您安装{} {} 版本!\n\n".format(package_name, version)
        print_info(show_text)
        result = os.system("{} -m pip install {}=={} -i {}".format(py_env,
                                                                   package_name, version, pypi_source))
    if result == 0:
        if version == "None":
            print("------->  {}  版本安装成功!3 秒后自动退出...\n\n".format(package_name))
            show_text += "\n\n{}  版本安装成功! 3 秒后自动退出...\n\n".format(
                package_name)
            print_info(show_text)
            time.sleep(3)

        else:
            print("------ ->  {} {} 版本安装成功!3 秒后自动退出...\n\n".format(package_name, version))
            show_text += "\n\n{} {} 版本安装成功! 3 秒后自动退出...\n\n".format(
                package_name, version)
            print_info(show_text)
            time.sleep(3)

    else:
        # print("------ -> 安装失败,请检查名字 或 版本 是否有误 <------ -")
        # show_text += "------ -> 安装失败,请检查名字 或 版本 是否有误 <------ -\n\n"
        # print_info(show_text)
        # time.sleep(3)
        raise ValueError


def manual(package_name, package_version, common_version, osname):
    """手动安装"""
    global show_text
    # 增加判断,Mac不能用终端方式安装pyside2
    if package_name == "pyside2" and osname == "Mac":
        print("Mac系统,请在海龟编辑器的库管理中,卸载旧版,再重新安装pyside2 5.12.3")
        print_info(
            "Mac系统,请在海龟编辑器的库管理中,卸载旧版,再重新安装pyside2 5.12.3\n\n 3秒后,自动退出安装...")
        return
    print("正在卸载您电脑中已经存在的{}版本,请稍后...".format(package_name))
    show_text += "正在卸载您电脑中已经存在的{}版本,请稍后...\n\n".format(package_name)
    print_info(show_text)
    temp = []
    # 计算所有的相似度
    for i in common_version:
        temp.append([i, get_LD(package_name, i)])
    temp = sorted(temp, reverse=False, key=lambda x: x[1])
    # 如果相似度完全一致,则使用预置版本
    print(temp)
    if temp[0][1] == 0:
        print("------ ->强制指定版本")
        for i in common_version[temp[0][0]]:
            package_name, package_version = i.split("==")
            handle(package_name, package_version)
    else:
        handle(package_name, package_version)


def preset(package_name, common_version, osname):
    """预置指定版本"""
    global show_text
    # 增加判断,Mac不能用终端方式安装pyside2
    if package_name == "pyside2" and osname == "Mac":
        print("Mac系统,请在海龟编辑器的库管理中,卸载旧版,再重新安装pyside2 5.12.3")
        print_info(
            "Mac系统,请在海龟编辑器的库管理中,卸载旧版,再重新安装pyside2 5.12.3\n\n 3秒后,自动退出安装...")
        return
    print("------ -> 您输入库名或版本有误,现在开始检测是否有相似的.....")
    show_text += "您输入库名或版本有误,现在开始检测是否有相似的.....\n\n"
    print_info(show_text)
    temp = []
    # 计算所有的相似度
    for i in common_version:
        temp.append([i, get_LD(package_name, i)])
    temp = sorted(temp, reverse=False, key=lambda x: x[1])
    if temp[0][1] < 2:
        # 安装这个
        print("------ -> 存在相似的,开始重新安装...\n\n")
        show_text += "------ -> 存在相似的,开始重新安装...\n\n"
        print_info(show_text)
        print("\n存在:".format_map(common_version[temp[0][0]]))
        show_text += "\n存在:{}\n\n".format(common_version[temp[0][0]])
        print_info(show_text)
        for i in common_version[temp[0][0]]:
            package_name, package_version = i.split("==")
            manual(package_name, package_version, common_version, osname)
    else:
        print("------ -> 库名不存在,请重新运行代码,并输入正确的库名 <- ------")
        pen.goto(-380, 0)
        print_info("库名不存在,请重新运行代码,并输入正确的库名 \n\n3秒后 自动退出...")
        time.sleep(3)


if __name__ == "__main__":
    try:
        osname = get_osname()
        print("您的电脑系统为:{}".format(osname))
        show_text += "您的电脑系统为:{}\n\n".format(osname)
        print_info(show_text)
        package_name, package_version = get_package()
        try:
            manual(package_name, package_version, common_version, osname)
        except:
            preset(package_name, common_version, osname)
    except Exception as e:
        # print("安装过程出现了异常,异常信息如下:")
        # traceback.print_exc()
        show_text += "\n安装失败了\n\n"
        print_info(show_text)
        print("安装失败了,3秒后自动退出...")
        time.sleep(3)

 

2022-10-07T16:17:33 点赞:0