本站浏览须知
浏览须知
本站源站 IP 可能在香港/新加坡/德国/美国,所以推荐使用科学上网浏览本站,提高访问速度和稳定性。
推荐使用 PC 端/Pad 端等大屏设备浏览,以获得最佳阅读体验。
本站所有文章均为原创。
本站所有文章仅代表作者个人观点。
本站所有文章仅供学习交流,不得用于商业用途。
本站所有文章仅供个人学习交流,不得转载或用于任何商业用途。
隐私政策:
尊敬的用户:
感谢您访问我们的网站。我们非常重视您的隐私保护和个人信息安全。请在使用我们的服务之前仔细阅读本隐私政策,以了解我们收集、使用、存储和保护您的个人信息的方式。
信息收集与使用:
我们可能会收集您的部分个人信息,包括但不限于您的IP地址、浏览器类型、操作系统、访问时间、访问页面等信息,以优化网站性能并提供更好的服务。我们承诺不会将您的个人信息用于任何其他目的,也不会与任何第三方共享,除非经过您的明确授权或法律要求。
Cookie和数据分析:
我们可能会使用Cookie技术和第三方数据分析工具,来收集和分析用户的行为数据,以改善用户体验和网站服务质量。这些数据将被用于统计分析和用户行为研究,不会涉及个 ...
算法设计与分析实验
实验一 阶乘
一、实验目的和要求
熟悉一种编程环境及基础编程练习
二、实验内容
准备并熟悉后续实验项目所用的环境,熟悉一种编程语言的使用方式,并编写简单的求数的阶乘的程序,并通过输入 3、5、7、 10 等数值验证程序的正确性
三、主要仪器设备
计算机
编程语言:Python
四、实验方法与步骤
打开编程环境,编写程序
通过输入 3、5、7、 10 等数值验证程序的正确性
五、主要代码
1234567891011121314151617181920212223i = input("请输入一个整数:")i = int(i)def jiecheng(n): if n == 1: return 1 else: return n * jiecheng(n - 1)print("Powered by W1ndys")print("https://blog.w1ndys.top/")print(f"结果是:{jiecheng(i)}")print(&q ...
Python课后题
作业 1
编写程序,输入本金、年利率和年数、计算复利(结果保留两位小数)
代码
1234567891011121314def calculate_compound_interest(principal, rate, years): # 计算复利 amount = principal * (1 + rate / 100) ** years # 保留两位小数 return round(amount, 2)# 示例用法principal = float(input("请输入本金: "))rate = float(input("请输入年利率: "))years = int(input("请输入年数: "))compound_interest = calculate_compound_interest(principal, rate, years)print(f"本金利率和为: {compound_interest}")
输出结果
123456PS D:\Documents ...
数据挖掘实验1——Python环境搭建及基础练习
实验
环境搭建
配置镜像源
我一般直接是挂代理安装 pip 包,这里防止我本地环境搞乱不配置了,上面是 conda 的信息
代码
有现成的自己暑假写的项目,直接交了。
基于 Python 和 OneBot 11 的 QQ 机器人实现
开源地址:W1ndys-bot/W1ndys-bot: 基于 Python 和 OneBot 11 的 QQ 机器人实现 (github.com)
解释一下代码结构
根目录是放的一些常用的批处理脚本、docker-compose 索引文件、Git 配置文件、以及 pip 环境依赖索引文件
核心代码在 app 路径之下
app/main.py 是程序入口,是启动文件
app/menu.py 是菜单文件
app/secret.py 是秘钥存放文件
app/switch.py 是开关文件
app/config.py 是配置文件
app/bot.py 是机器人接收消息的核心代码
app/data 是数据存放目录
app/hanndle_event.py 是处理事件的核心代码
app/scripts 是所有功能模块的存放目录
app/api.py 是所有 AP ...
基于 Python 和 Onebot11 的QQ机器人开发——(NapCatQQ)猫猫的传参特性
前言
写群发功能的时候,发现猫猫的传参特性,特此记录。
事情的起因是,我写了一个群发功能,然后发现,发送的时候会从数据库读取群号,然后发送。读取到的群号是元组,然后我需要发送的群号是字符串,理论上来说,元组应该需要先转换成字符串,然后发送。
但是,我测试的时候,发现,如果我传入的是元组,猫猫会自动帮我转换成字符串,然后发送。
猫猫的传参特性
实测发现,猫猫的传参特性是,如果传入的参数是元组,那么猫猫会自动帮你转换成列表,然后发送。
一开始我还以为是 Python 的特性,后来发现并不是,而是猫猫的特性。
后来在群里问大佬,Z佬说猫猫的传参特性主要是可迭代对象就能转化发送。
测试代码
在发消息的 API 中,群号传入一个元组,然后猫猫会自动帮你转换成列表,然后发送。
1234567await websocket.send( json.dumps( { "action": "send_group_msg", "params": {"gro ...
基于 Python 和 Onebot11 的QQ机器人开发——对websocket响应消息的分离处理
前言
一直以来 websocket 相应消息的接收都是有问题,之前想过很多办法,包括设置 sleep 等待,设置标志等的来分离 recv 来处理正确的响应,但是始终都没成功,这次改变了一下思路成功了
修改前
1234567891011121314151617发送群消息并获取消息 IDasync def send_group_msg_with_reply(websocket, group_id, content): try: message = { "action": "send_group_msg", "params": {"group_id": group_id, "message": content}, } await websocket.send(json.dumps(message)) response = json.loads(awa ...
基于 Python 和 Onebot11 的QQ机器人开发——JSON消息的发送(消息段数组的运用)
什么是消息段数组
请看 onebot11 官方文档 onebot-11/message/array.md at master · botuniverse/onebot-11 (github.com)
以前我都是直接发的 CQ 码(什么是 CQ 码?onebot-11/message/string.md at master · botuniverse/onebot-11 (github.com))
今天突发奇想的想试试直接发推荐卡片,当我尝试发 CQ 码的时候失败了,然后我去找 NapCatQQ 开发者拾雪问了一下,大佬是这么说的,不能直接用 CQ 码,因为涉及到签名等东西,需要用扩展接口,让我去看文档。
去文档找了一下,确实找到了,我本以为能顺理成章的解决问题,但是不出意外的话出意外了。
下面内容基于 Python 和正向 Websocket 连接实现
说句题外话,小白的一个大误区,向别人提问题,尤其是计算机相关的问题,一定要一次性的把问题说全,可以分好几条发,被提问者一般不会因此嫌弃厌烦,反而会很喜欢,因为你把尽可能用到的信息全都提供出来了,有助于问题的解决
新手要学会的几件事,提 ...
docker部署GZCTF-QQBOT
环境要求
Linux 服务器
docker
docker compose
开始部署
相关链接:MoRan23/GZCTF-BOT-QQ: GZCTF 对接的 qq 机器人,基于 NapCat+Nonebot 框架 (github.com)
进入 GZBOTGithub 地址,由于服务器对于 Github 的网络连接会偶然连不上,这里使用 docker-compose 部署,Github 的 README 写的很详细了,这里多说几点易错点。
下方监听的赛事名是 GZCTF 的赛事名,不是赛事序号或赛事 ID,赛事名叫什么就写什么,比如下图中的赛事名就是 W1ndys的bot测试
把下面代码参数改好后保存为 docker-compose.yml
123456789101112131415161718192021222324252627version: "3.7"services: napcat: image: mlikiowa/napcat-docker:latest restart: always ports: - &quo ...
基于 Python 和 Onebot11 的QQ机器人开发——Python常用语法
背景
在写机器人的过程中不可避免的碰到语法的学习,本页梳理了常用的语法,以及记录开发机器人以来遇到的各种问题,需要注意的点。
。
函数调用
尽可能的分离函数,让某特殊功能的函数单独定义,以便于反复调用
异常处理
每个函数中尽量都要有异常处理,好处一个是方便快速调试报错点,第二个就是不会因为异常导致程序退出。
更详细的内容可以看 Python 异常处理 | 菜鸟教程 (runoob.com)
12345678try:<语句> #运行别的代码except <名字>:<语句> #如果在 try 部份 引发了'name'异常except <名字>,<数据>:<语句> #如果引发了'name'异常,获得附加的数据else:<语句> #如果没有异常发生
异常名称
描述
BaseException
所有异常的基类
SystemExit
解释器请求退出
KeyboardInterrupt
用户中断执行 ...
基于 Python 和 Onebot11 的QQ机器人开发——模块引用中环境变量的学习
先看一个例子
假设文件结构如下
1234567891011121314project/│├── app/│ ├── scripts/│ │ ├── GroupManager/│ │ │ ├── main.py│ │ │ ├── banned_words.py│ │ │ ├── group_status.py│ │ │ ├── invite_chain.py│ │ │ ├── welcome_farewell.py│ │ │ ├── group_management.py│ ├── api/│ ├── config.py
代码如下
12345678910111213141516171819202122# app/scripts/GroupManager/main.pyimport loggingimport reimport osimport syssys.path.append( os.path.dirname(os.path.dirname(os.path.dirname(os.path ...
基于 Python 和 Onebot11 的QQ机器人开发——群管系统
代码写完了,博客还没写
基于Python + OneBot 11的QQ机器人模块加载器的实现
源代码请看:W1ndys-bot/Module-Loader: 对接 OneBot 的 Python 模块加载器 (github.com)
对接 OneBot 的 Python 模块加载器
介绍及背景
Python 编写的模块加载器,使用 WebSocket 客户端模式对接上游服务,支持 OneBot 协议,如遇到问题请提 issue
本加载器不以插件的形式进行加载,而是以模块的形式进行加载。
这也就意味着,本加载器的功能增加,直接写代码即可,无需配置相关插件信息。
写这个加载器的原因是,了解到了 mf 师傅的插件式加载器,但我本人并不习惯这种方法,于是就写了这个模块式加载器,整个加载器的配置全部采用 Python 模块化编程,功能的开发模式完全基于原生 Onebot11。
有关插件式加载器的文档请参考:School-Robot/Plugin-Loader: 用于对接 OneBot 的 Python 插件加载器 (github.com)
加载器特色
模块化编程,易于维护
支持断线重连,无需手动重启
支持上线提醒(QQ),掉线提醒(钉钉)
支持 OneBot 11 标准,采用原生的 ...