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

python VS c++

一、语法特点

  • Python
    • 语法简洁、优雅,代码可读性极强,采用缩进来表示代码块,摒弃了像 C++ 那样使用大括号的传统方式,使得代码看上去十分清晰简洁。例如:

​
if 5 > 3:print("5大于3")
elif 5 == 3:print("5等于3")
else:print("5小于3")​

整个代码结构通过缩进来分层体现不同的逻辑分支,一目了然。

  • 变量无需事先声明类型,会依据赋值自动推断其类型,这一特性让代码编写变得极为灵活。例如:
​
x = 5  # 此时x被自动推断为整型
x = "Hello"  # 后续可以直接将x赋值为字符串类型,类型自动转变​

Python 支持多种编程范式,像面向对象编程、函数式编程等,并且可以很自然地在代码中融合运用这些范式。例如在面向对象编程方面:

class Dog:def __init__(self, name):self.name = namedef bark(self):print(self.name + " is barking")my_dog = Dog("旺财")
my_dog.bark()

这里定义了Dog类,体现了面向对象编程中类的定义、实例化以及方法调用等基本操作,代码简洁且易于理解。

  • C++
    • 语法相对严谨、复杂,代码结构通过大括号精准界定,逻辑清晰但格式上略显繁琐。比如:
if (5 > 3) {std::cout << "5大于3";
} else if (5 == 3) {std::cout << "5等于3";
} else {std::cout << "5小于3";
}

大括号明确划分了不同的条件执行块,有助于维护代码的结构完整性,尤其是在大型项目中,更能体现出其严谨性。

  • 变量需要在使用前明确声明其类型,像int num = 5; ,这里num被严格定义为整型,后续若要改变其类型,必须进行强制类型转换等符合语法规则的操作,否则会导致编译错误。例如:
int num = 5;
double result = (double)num / 2;  // 通过强制类型转换将整型num转换为double类型参与运算

C++ 同样支持多种编程范式,如面向对象编程、泛型编程等,在面向对象编程中,对于类的定义、继承、多态等机制有着严格且强大的实现方式,例如:

class Animal {
public:virtual void makeSound() {std::cout << "Animal makes a sound" << std;}
};class Dog : public Animal {
public:void makeSound() override {std::cout << "Dog is barking" << std::endl;}
};Animal* myAnimal = new Dog();
myAnimal->makeSound();

上述代码展示了类的继承关系,通过虚函数实现了多态性,即根据对象的实际类型来决定调用哪个类中重写后的函数,这在复杂的软件架构设计中有着重要作用。

二、执行效率

  • Python
    • Python 是解释型语言,其代码运行时依赖解释器逐行解释并执行,这个过程相对来说比较耗时,所以通常执行效率相对较低。不过,在很多实际应用场景中,比如一些小型的数据处理脚本、简单的自动化任务等,其效率已经足以满足需求。例如,使用 Python 编写一个脚本去读取一个文本文件中的数据,并进行简单的统计分析,代码如下:

data = []
with open('data.txt', 'r') as file:for line in file:data.append(int(line.strip()))
sum_data = sum(data)
print("数据总和为:", sum_data)

尽管 Python 执行这段代码的速度可能比不上 C++,但它凭借简洁的代码结构能让开发者快速实现功能,节省开发时间。而且随着技术发展,Python 也有一些优化手段,比如使用PyPy等即时编译器可以在一定程度上提高执行效率。

  • C++
    • C++ 是编译型语言,代码经过编译器编译生成特定平台的机器码后直接运行,执行效率非常高,能够充分利用计算机硬件资源,实现高性能的运算和复杂逻辑处理。适合开发对性能要求苛刻的应用,像操作系统内核部分,它需要在极短时间内处理大量的硬件中断、进程调度等复杂任务,C++ 的高效性能保证了系统的稳定运行。再比如大型 3D 游戏引擎,需要实时渲染复杂的图形场景、处理海量的游戏逻辑运算,以每秒几十甚至上百帧的速度呈现给玩家流畅的游戏画面,C++ 的高效执行在这里起到了关键作用,如下是一个简单的 C++ 示例,计算斐波那契数列:

#include <iostream>
using namespace std;int fibonacci(int n) {if (n <= 1)return n;return fibonacci(n - 1) + fibonacci(n - 2);
}int main() {int n = 10;cout << "第" << n << "个斐波那契数为: " << fibonacci(n) << endl;return 0;
}

在这个示例中,虽然只是简单的数列计算,但当数列规模增大时,C++ 能够凭借其高效的执行快速得出结果,而同样的功能若用 Python 实现,随着计算规模增大,执行时间会明显变长。

三、应用领域

  • Python
    • 数据科学与分析:Python 在数据科学领域占据着主导地位,拥有强大的数据分析库,如Pandas,它提供了高效的数据结构和数据处理方法,能方便地对结构化数据进行读取、清洗、转换和分析操作。例如,可以轻松地将一个 CSV 格式的数据文件读取为DataFrame数据结构,并进行各种统计分析:

import pandas as pddata = pd.read_csv('sales_data.csv')
average_sales = data['sales'].mean()
print("平均销售额:", average_sales)

NumPy则是专注于数值计算的基础库,为高效的数组运算提供了支持,很多复杂的数学计算、矩阵运算等都依赖它。在机器学习方面,TensorFlowPyTorch等库更是让 Python 成为了人工智能开发的热门语言,无论是图像识别、自然语言处理还是语音识别等领域,研究人员和开发者都广泛使用 Python 搭建模型、训练数据和部署应用。

  • 网络爬虫:凭借简单易用的网络请求库(如Requests)和强大的解析库(如BeautifulSoup),Python 可以方便地编写爬虫程序获取网页信息。例如,以下是一个简单的爬虫示例,用于获取某个网页上的所有链接:

import requests
from bs4 import BeautifulSoupurl = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = [link.get('href') for link in soup.find_all('a')]
for link in links:print(link)

  • 自动化脚本与运维:常用于编写自动化测试脚本、系统运维脚本等,帮助简化很多重复性的操作任务。比如,使用 Python 的Paramiko库可以实现通过 SSH 协议远程连接服务器,并执行命令,方便管理员对多台服务器进行批量操作,代码示例如下:

import paramikossh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='server_ip', username='username', password='password')
stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read().decode())
ssh.close()

  • Web 开发:有FlaskDjango等框架支持,可以快速搭建 Web 应用。Flask是一个轻量级的 Web 框架,适合初学者快速上手构建简单的 Web 服务,示例代码如下:

from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello_world():return 'Hello, World!'if __name__ == '__main__':app.run()

Django则相对更加全面、功能强大,内置了数据库管理、用户认证、表单处理等诸多模块,能帮助开发者高效地开发大型复杂的 Web 项目。

  • C++
    • 系统开发:常用于开发操作系统(如 Windows、Linux 部分内核代码是 C++ 编写)、设备驱动程序等底层系统相关的软件。在操作系统开发中,C++ 需要直接与硬件打交道,对内存、中断、进程等底层资源进行精准的管理和调度。例如,在编写一个简单的设备驱动程序时,要按照硬件的规范去初始化设备、处理设备中断以及实现数据的读写操作,代码需要严格遵循底层硬件的接口要求,对性能和稳定性要求极高。
    • 游戏开发:很多大型 3D 游戏的引擎(如Unreal Engine)是基于 C++ 开发的,它能够很好地控制硬件资源,实现高性能的图形渲染和复杂的游戏逻辑。在游戏开发中,C++ 要处理图形的渲染管线,从顶点数据的处理、纹理映射到光照计算等一系列复杂的图形学运算,同时还要管理游戏中的各种实体对象、物理碰撞检测、人工智能行为等逻辑,像著名的《堡垒之夜》等大型游戏,其核心的游戏引擎部分大量运用了 C++ 来保障游戏的流畅性和高质量的视觉效果。
    • 高性能计算与金融领域:在对计算速度和资源精准控制要求高的高性能计算、量化金融交易系统等场景中发挥重要作用,以保障快速准确地处理大量数据和复杂的业务逻辑。在高性能计算中,比如科学计算模拟(如气象模拟、流体力学模拟等),需要对大规模的数据进行快速迭代运算,C++ 可以利用多核处理器、并行计算等技术优化计算过程,提高运算效率。在金融领域,量化交易系统需要实时处理市场行情数据、进行复杂的算法交易策略计算,C++ 凭借其高效的执行能力和对内存等资源的精细控制,能在极短时间内完成交易决策,降低交易延迟,提高交易的成功率和收益。

四、内存管理

  • Python
    • 有自动的垃圾回收机制(GC),开发者不需要手动去释放不再使用的内存空间,Python 的解释器会自动检测并回收这些内存。例如,在一个函数中创建了一个列表对象:

def create_list():my_list = [1, 2, 3]return my_listnew_list = create_list()

create_list函数执行完毕后,函数内部的my_list对象原本占用的内存空间,会由 Python 的垃圾回收机制自动判断并在合适的时候回收,开发者无需操心内存释放的问题,大大降低了内存管理的复杂度。不过,垃圾回收机制运行的时间和频率可能会对程序性能产生一定影响,比如在一些对实时性要求极高的应用场景中,可能需要对 GC 的参数进行优化调整,以避免出现因 GC 运行导致的短暂卡顿等情况。

  • C++
    • 需要开发者手动进行内存管理,通过newdelete操作符来分配和释放堆内存,使用不当很容易出现内存泄漏(比如忘记释放内存)或者悬空指针(访问已释放的内存)等问题。例如:

int* ptr = new int;  // 在堆上分配一个整型内存空间
*ptr = 5;
// 如果这里忘记使用delete ptr; 来释放内存,就会造成内存泄漏
delete ptr;  // 正确释放内存

在更复杂的场景中,比如创建一个动态大小的数组:

int* arr = new int[10];  // 分配包含10个整型元素的数组内存空间
for (int i = 0; i < 10; i++) {arr[i] = i;
}
delete[] arr;  // 需要使用delete[]来正确释放数组内存

但也正因如此,开发者可以根据具体需求精确地控制内存使用,实现高效的内存利用,比如在内存资源有限的嵌入式系统开发中,合理地分配和释放内存能够保障系统的稳定运行,避免因内存不足导致的系统故障。

五、学习难度

  • Python
    • 语法简单易懂,容易上手,对于初学者非常友好,往往可以快速掌握基本的编程技能并开始编写一些实用的小程序,很适合编程零基础的人入门学习编程和快速验证一些想法。Python 的代码结构简洁,没有太多复杂的语法规则束缚,例如,一个简单的打印 “Hello, World!” 的程序,只需要一行代码:

print("Hello, World!")

而且 Python 有着丰富的学习资源,无论是网上的教程、文档还是开源的示例代码,都能帮助初学者快速理解和掌握编程概念,通过编写简单的小游戏、数据处理脚本等实践活动,不断提升编程能力。

  • C++
    • 由于其语法的复杂性、需要掌握较多的底层知识(如内存管理等),学习曲线相对较陡,不过掌握 C++ 后,对理解计算机系统底层原理以及学习其他编程语言都有很大的帮助。学习者一开始就要面对诸如指针、引用、类的复杂继承关系、模板等相对较难理解的概念,例如理解指针的概念:

int num = 5;
int* ptr = &num;  // ptr指向num的地址
*ptr = 10;  // 通过指针修改num的值

这里涉及到取地址、通过指针访问和修改值等操作,对于初学者来说可能比较抽象,需要花费更多时间和精力去深入学习和实践,才能熟练运用 C++ 进行编程,但一旦掌握扎实,就能更好地驾驭底层开发以及复杂软件架构的设计。

六、代码可移植性

  • Python
    • 只要目标平台安装了相应版本的 Python 解释器,Python 代码通常可以很方便地跨平台运行,几乎不需要做太多修改,在 Windows、Linux、macOS 等系统上都能很好地兼容。例如,一个简单的 Python 脚本用于读取文件并打印内容:

with open('test.txt', 'r') as file:content = file.read()print(content)

无论在 Windows 系统下还是 Linux 系统下,只要确保 Python 解释器安装正确,且文件路径等相关设置合理(如在不同系统中文件路径的表示方式可能略有不同,但可以通过简单调整解决),这个脚本就能正常运行,这使得 Python 在跨平台开发一些通用的工具、脚本等应用场景中有着很大的优势。

  • C++
    • 虽然 C++ 代码理论上也可以跨平台,但是由于不同操作系统的底层差异(如不同系统的 API 不同等),在进行跨平台开发时,往往需要针对不同平台编写一些特定的代码或者进行相应的配置调整,相对来说要复杂一些。比如,在 Windows 系统中,使用CreateFile函数来创建文件,而在 Linux 系统中,则通常使用open函数,代码示例如下:
      Windows 平台

#include <windows.h>
#include <iostream>int main() {HANDLE hFile = CreateFile("test.txt", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);if (hFile == INVALID_HANDLE_VALUE) {std::cout << "文件创建失败" << std::endl;return 1;}CloseHandle(hFile);return 0;
}

Linux 平台

#include <fcntl.h>
#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>int main() {int fd = open("test.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);if (fd == -1) {std::cout << "文件创建失败" << std::endl;return 1;}close(fd);return 0;
}

从上面的例子可以看出,同样是创建文件的功能,在不同平台上需要使用不同的函数,这就要求开发者在进行跨平台 C++ 开发时,要充分考虑这些差异,做好代码的适配工作。

七、生态系统与社区支持

  • Python
    • 拥有庞大且活跃的开源社区,各种第三方库层出不穷,几乎涵盖了各个领域的应用需求,通过包管理工具(如pip)可以方便地安装和使用这些库,加速项目的开发进程。例如,想要进行图像识别开发,只需要通过pip安装opencv-python库,就能快速使用其提供的丰富的图像处理函数,代码示例如下:

import cv2img = cv2.imread('image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

此外,Python 社区的交流氛围也非常好,有很多论坛(如 Stack Overflow 上关于 Python 的板块)、开源项目托管平台(如 GitHub 上众多 Python 开源项目)等,开发者可以方便地在上面提问、分享经验、获取最新的开发资源等,推动 Python 生态不断发展壮大。

  • 在 C++ 社区中,虽然也有像 Stack Overflow 上的 C++ 板块、GitHub 上众多优秀的 C++ 开源项目等交流和资源分享的平台,但整体上在库的使用便捷性、快速上手等方面不如 Python 那样简单直接。不过,C++ 社区对于一些底层技术、高性能优化以及复杂架构设计等方面有着深入的探讨和经验积累,很多大型的企业级项目、对性能和稳定性要求极高的系统开发中,开发者们会基于 C++ 的特点去深入交流、分享和协作,推动 C++ 在特定领域持续发展和应用。

    总之,Python 和 C++ 各有优劣,选择使用哪种语言要根据具体的项目需求、开发效率、性能要求等多方面因素来综合考虑。如果更注重快速开发、代码简洁以及在数据科学、网络爬虫等领域开展工作,Python 会是一个很好的选择;而要是聚焦于高性能计算、系统底层开发、大型游戏引擎构建等对性能和资源精细控制要求严苛的场景,C++ 则能更好地发挥其价值。

相关文章:

python VS c++

一、语法特点 Python&#xff1a; 语法简洁、优雅&#xff0c;代码可读性极强&#xff0c;采用缩进来表示代码块&#xff0c;摒弃了像 C 那样使用大括号的传统方式&#xff0c;使得代码看上去十分清晰简洁。例如&#xff1a; ​ if 5 > 3:print("5大于3") elif 5 …...

windows C#-属性

属性提供了一种将元数据或声明性信息与代码(程序集、类型、方法、属性等)关联的强大方法。将属性与程序实体关联后&#xff0c;可以使用称为反射的技术在运行时查询该属性。 属性具有以下属性&#xff1a; 属性将元数据添加到您的程序中。元数据是有关程序中定义的类型的信息…...

Redis常见面试题总结(上)

Redis 基础 什么是 Redis&#xff1f; Redis &#xff08;REmote DIctionary Server&#xff09;是一个基于 C 语言开发的开源 NoSQL 数据库&#xff08;BSD 许可&#xff09;。与传统数据库不同的是&#xff0c;Redis 的数据是保存在内存中的&#xff08;内存数据库&#xf…...

小鹏汽车智慧材料数据库系统项目总成数据同步

1、定时任务处理 2、提供了接口 小鹏方面提供的推送的数据表结构&#xff1a; 这几个表总数为100多万&#xff0c;经过条件筛选过滤后大概2万多条数据 小鹏的人给的示例图&#xff1a; 界面&#xff1a; SQL: -- 查询车型 select bmm.md_material_id, bmm.material_num, bm…...

风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计

风尚云网前端学习&#xff1a;一个简易前端新手友好的HTML5页面布局与样式设计 简介 在前端开发的世界里&#xff0c;HTML5和CSS3是构建现代网页的基石。本文将通过一个简单的HTML5页面模板&#xff0c;展示如何使用HTML5的结构化元素和CSS3的样式特性&#xff0c;来创建一个…...

论文阅读:A fast, scalable and versatile tool for analysis of single-cell omics data

Zhang, K., Zemke, N.R., Armand, E.J. et al. A fast, scalable and versatile tool for analysis of single-cell omics data. Nat Methods 21, 217–227 (2024). 论文地址&#xff1a;https://doi.org/10.1038/s41592-023-02139-9 代码地址&#xff1a;https://github.com…...

【从零开始的LeetCode-算法】43. 网络延迟时间

有 n 个网络节点&#xff0c;标记为 1 到 n。 给你一个列表 times&#xff0c;表示信号经过 有向 边的传递时间。 times[i] (ui, vi, wi)&#xff0c;其中 ui 是源节点&#xff0c;vi 是目标节点&#xff0c; wi 是一个信号从源节点传递到目标节点的时间。 现在&#xff0c;…...

一文理解 Python 编程语言中的 .strip() 方法

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ Python 中的 strip() 方法&#xff1a;初学者友好指南 在 Python 中&#xff0c;strip() 是一个极为实用的字符串方法&#xff0c;主要用于移除字符串首尾的特定字符。默认情况下&#xff0c;它会清除…...

solr 远程命令执行 (CVE-2019-17558)

漏洞描述 Apache Velocity是一个基于Java的模板引擎&#xff0c;它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目&#xff0c;旨在确保Web应用程序在表示层和业务逻辑层之间的隔离&#xff08;即MVC设计模式&#xff09;。 Apa…...

【cocos creator】下拉框

https://download.csdn.net/download/K86338236/90038176 const { ccclass, property } cc._decorator;type DropDownOptionData {optionString?: string,optionSf?: cc.SpriteFrame } type DropDownItemData {label: cc.Label,sprite: cc.Sprite,toggle: cc.Toggle }cccl…...

从 Llama 1 到 3.1:Llama 模型架构演进详解

编者按&#xff1a; 面对 Llama 模型家族的持续更新&#xff0c;您是否想要了解它们之间的关键区别和实际性能表现&#xff1f;本文将探讨 Llama 系列模型的架构演变&#xff0c;梳理了 Llama 模型从 1.0 到 3.1 的完整演进历程&#xff0c;深入剖析了每个版本的技术创新&#…...

电话机器人的最佳应用

电话机器人的最佳应用 作者&#xff1a;开源呼叫中心系统 FreeIPCC&#xff0c;Github地址&#xff1a;https://github.com/lihaiya/freeipcc 电话机器人在多个领域中都展现出了其独特的优势和广泛的应用前景。以下是对电话机器人最佳应用的详细归纳&#xff1a; 一、销售与营…...

[面试]-golang基础面试题总结

文章目录 panic 和 recover**注意事项**使用 pprof、trace 和 race 进行性能调试。**Go Module**&#xff1a;Go中new和make的区别 Channel什么是 Channel 的方向性&#xff1f;如何对 Channel 进行方向限制&#xff1f;Channel 的缓冲区大小对于 Channel 和 Goroutine 的通信有…...

Fakelocation Server服务器/专业版 ubuntu

前言:需要Ubuntu系统 Fakelocation开源文件系统需求 Ubuntu | Fakelocation | 任务一 任务一 更新Ubuntu&#xff08;安装下载不再赘述&#xff09; sudo -i # 提权 sudo apt update # 更新软件包列表 sudo apt upgrade # 升级已安装的软…...

Node.js的http模块:创建HTTP服务器、客户端示例

新书速览|Vue.jsNode.js全栈开发实战-CSDN博客 《Vue.jsNode.js全栈开发实战&#xff08;第2版&#xff09;&#xff08;Web前端技术丛书&#xff09;》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 要使用http模块&#xff0c;只需要在文件中通过require(http)引入即可。…...

Jackson 对象与json数据互转工具类JacksonUtil

下面是一个基于 Jackson 的工具类 JacksonUtil&#xff0c;用于在 Java 项目中实现对象与 JSON 数据之间的互相转换。该工具类具有简洁、易用、通用的特点。 package com.fy.common.util;import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core…...

【ArcGISPro】根据yaml构建原始Pro的conda环境

使用场景 我们不小心把原始arcgispro-py3的conda环境破坏了,我们就可以使用以下方法进行修复 查找文件 在arcgis目录下找到yaml文件 如果没找到请复制以下内容到新的yaml文件 channels: - esri - defaults dependencies: - anyio=4.2.0=py311haa95532_0 - appdirs=1.4.4=p…...

对撞双指针(七)三数之和

15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…...

反向代理服务器的用途

代理服务器在网络中扮演着重要的角色&#xff0c;它们可以优化流量、保护服务器以及提高安全性。在代理服务器中&#xff0c;反向代理服务器是一种特殊类型&#xff0c;常用于Web服务器前&#xff0c;它具备多种功能&#xff0c;能够确保网络流量的顺畅传输。那么&#xff0c;让…...

一些好的AI技术学习平台和资料(动态更新)

1. 大模型 1.1 提示词&#xff08;Prompt&#xff09; 目前&#xff0c;大模型技术已经深入到工作生活的方方面面&#xff0c;各技术大厂的大模型也层出不穷&#xff0c;从开始的OpenAI一家独大&#xff0c;到当今世界的“百模大战”。从一些日常使用的角度来说&#xff0c;模…...

wireshark抓包分析HTTP协议,HTTP协议执行流程,

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 使用WireShark工具抓取「HTTP协议」的数据包&#…...

路由缓存后跳转到新路由时,上一路由中的tip信息框不销毁问题解决

上一路由tip信息框不销毁问题解决 路由缓存篇问题描述及截图解决思路关键代码 路由缓存篇 传送门 问题描述及截图 路由缓存后跳转新路由时&#xff0c;上一个路由的tip信息框没销毁。 解决思路 在全局路由守卫中获取DOM元素&#xff0c;通过css去控制 关键代码 修改文…...

【Angular】async详解

在 Angular 中&#xff0c;async 关键字用于定义异步函数&#xff0c;通常与 await 一起使用来处理 Promise。这使得异步代码看起来更像同步代码&#xff0c;从而更容易理解和维护。 基本用法 定义异步函数&#xff1a;使用 async 关键字。等待 Promise 解析&#xff1a;使用…...

springboot/ssm综合小区管理系统Java社区物业停车缴费系统web物业源码

springboot/ssm综合小区管理系统Java社区物业停车缴费系统web物业源码 基于springboot(可改ssm)htmlvue项目 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&…...

【51单片机】程序实验56.独立按键-矩阵按键

主要参考学习资料&#xff1a;B站【普中官方】51单片机手把手教学视频 前置知识&#xff1a;C语言 单片机套装&#xff1a;普中STC51单片机开发板A4标准版套餐7 码字不易&#xff0c;求点赞收藏加关注(•ω•̥) 有问题欢迎评论区讨论~ 目录 独立按键按键介绍实验5 独立按键 矩…...

SAP 零售方案 CAR 系统的介绍与研究

前言 当今时代&#xff0c;零售业务是充满活力和活力的业务领域之一。每天&#xff0c;由于销售运营和客户行为&#xff0c;它都会生成大量数据。因此&#xff0c;公司迫切需要管理数据并从中检索见解。它将帮助公司朝着正确的方向发展他们的业务。 这就是为什么公司用来处理…...

2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略 完整参考论文(2)

5.2 问题一模型的建立与求解 5.2.1 分析发展情况 为了更好地理解数据的变化趋势,利用matlab通过六个子图对宠物行业中的关键变量进行了可视化展示。 图 1. 宠物数量变化展示了 猫数量、狗数量 和 总宠物数量 在 2019-2023 年间的变化趋势。结果显示:猫的数量呈逐年上升的趋…...

嵌入式的C/C++:深入理解 static、const 与 volatile 的用法与特点

目录 一、static 1、static 修饰局部变量 2、 static 修饰全局变量 3、static 修饰函数 4、static 修饰类成员 5、小结 二、const 1、const 修饰普通变量 2、const 修饰指针 3、const 修饰函数参数 4. const 修饰函数返回值 5. const 修饰类成员 6. const 与 #defi…...

【数据库设计】软件系统需要同时设计注册日志表和登录日志表吗

是的&#xff0c;通常情况下&#xff0c;注册日志表和登录日志表是分别设计的&#xff0c;分别记录不同类型的事件信息。 注册日志表 记录用户的注册信息、注册方式以及是否成功等内容。登录日志表 记录用户每次登录的时间、IP 地址、设备信息、登录状态等内容。 尽管这两者看…...

vim 一次注释多行 的几种方法

在 Vim 中一次注释多行是一个常见操作。可以使用以下方法根据你的具体需求选择合适的方式&#xff1a; 方法 1&#xff1a;手动插入注释符 进入正常模式&#xff1a; 按 Esc 确保进入正常模式。 选择需要注释的多行&#xff1a; 移动到第一行&#xff0c;按下 Ctrlv 进入可视块…...

手机无法连接服务器1302什么意思?

你有没有遇到过手机无法连接服务器&#xff0c;屏幕上显示“1302”这样的错误代码&#xff1f;尤其是在急需使用手机进行工作或联系朋友时&#xff0c;突然出现的连接问题无疑会带来不少麻烦。那么&#xff0c;什么是1302错误&#xff0c;它又意味着什么呢&#xff1f; 1302错…...

Git(一)基本使用

目录 一、使用git -v 查看安装git版本 二、使用mkdir 创建一个文件&#xff0c;并使用 git init 在该目录下创建一个本地仓库&#xff0c; 三、通过git clone命令接入线上仓库 四、使用git status查看仓库状态信息 五、利用echo写入一个文件 并使用cat进行查看 【Linux】e…...

sklearn中常用数据集简介

scikit-learn库中提供了包括分类、回归、聚类、降维等多种机器学习任务所需的常用数据集&#xff0c;方便进行实验和研究&#xff0c;它们主要被封装在sklearn.datasets中&#xff0c;本文对其中一些常用的数据集进行简单的介绍。 1.Iris&#xff08;鸢尾花&#xff09;数据集…...

LRU缓存

什么是LRU缓存? LRU&#xff08;Least Recently Used&#xff09;是最近最少使用算法&#xff0c;是操作系统中用于分页置换的算法&#xff0c;如果要向内存中添加分页&#xff0c;并且内存分页已满的情况下&#xff0c;就选出最近一段时间最不常用的分页进行置换&#xff08;…...

.net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署

FreeSpire.XLS && Aspose.Cells包都可以实现。实现过程中发现如下问题&#xff1a; 本地测试通过&#xff0c; docker部署服务器后报错&#xff1a; The type initializer for Spire.Xls.Core.Spreadsheet.XlsPageSetupBase threw an exception. 由于缺少依赖&#xf…...

HttpServletRequest req和前端的关系,req.getParameter详细解释,req.getParameter和前端的关系

HttpServletRequest 对象在后端和前端之间起到了桥梁的作用&#xff0c;它包含了来自客户端的所有请求信息。通过 HttpServletRequest 对象&#xff0c;后端可以获取前端发送的请求参数、请求头、请求方法等信息&#xff0c;并根据这些信息进行相应的处理。以下是对 HttpServle…...

[Python3] Sanic 框架构建高并发的 Web 服务

在 Python3 中使用 Sanic 框架来构建高并发的 Web 服务时&#xff0c;Sanic 因其异步和基于事件驱动的架构能够很好地处理高并发请求。下面是如何使用 Sanic 的一些要点和示例代码。 1. 安装 Sanic 首先确保你安装了 Sanic&#xff0c;可以通过以下命令安装&#xff1a; pip…...

5.5 W5500 TCP服务端与客户端

文章目录 1、TCP介绍2、W5500简介2.1 关键函数socketlistensendgetSn_RX_RSRrecv自动心跳包检测getSn_SR 1、TCP介绍 TCP 服务端&#xff1a; 创建套接字[socket]&#xff1a;服务器首先创建一个套接字&#xff0c;这是网络通信的端点。绑定套接字[bind]&#xff1a;服务器将…...

【Flutter】搭建Flutter开发环境,安卓开发

Flutter是谷歌开源的一个跨平台开发的框架&#xff0c;方便好用&#xff0c;这里以Windows 上构建 Flutter Android 应用为例&#xff0c;记录下我搭建环境时碰到的一些问题以及解决。 第一步&#xff1a;参考官网&#xff1a;开发 Android 应用 | Flutter 中文文档 - Flutter …...

【机器学习】——朴素贝叶斯模型

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…...

k8s rainbond centos7/win10 -20241124

参考 https://www.rainbond.com/ 国内一站式云原生平台 对centos7环境支持不太行 [lighthouseVM-16-5-centos ~]$ curl -o install.sh https://get.rainbond.com && bash ./install.sh 2024-11-24 09:56:57 ERROR: Ops! Docker daemon is not running. Start docke…...

ctfshow单身杯2024wp

文章目录 ctfshow单身杯2024wp签到好玩的PHPezzz_sstiez_inject ctfshow单身杯2024wp 签到好玩的PHP 考点&#xff1a;序列化反序列化 <?phperror_reporting(0);highlight_file(__FILE__);class ctfshow {private $d ;private $s ;private $b ;private $ctf ;public …...

深入解密 K 均值聚类:从理论基础到 Python 实践

1. 引言 在机器学习领域&#xff0c;聚类是一种无监督学习的技术&#xff0c;用于将数据集分组成若干个类别&#xff0c;使得同组数据之间具有更高的相似性。这种技术在各个领域都有广泛的应用&#xff0c;比如客户细分、图像压缩和市场分析等。聚类的目标是使得同类样本之间的…...

【代码pycharm】动手学深度学习v2-08 线性回归 + 基础优化算法

课程链接 线性回归的从零开始实现 import random import torch from d2l import torch as d2l# 人造数据集 def synthetic_data(w,b,num_examples):Xtorch.normal(0,1,(num_examples,len(w)))ytorch.matmul(X,w)bytorch.normal(0,0.01,y.shape) # 加入噪声return X,y.reshape…...

Python绘制太极八卦

文章目录 系列目录写在前面技术需求1. 图形绘制库的支持2. 图形绘制功能3. 参数化设计4. 绘制控制5. 数据处理6. 用户界面 完整代码代码分析1. rset() 函数2. offset() 函数3. taiji() 函数4. bagua() 函数5. 绘制过程6. 技术亮点 写在后面 系列目录 序号直达链接爱心系列1Pyth…...

sklearn学习

介绍&#xff1a;scaler&#xff1a;换算的意思 1. 归一化MinMaxScaler() 归一化的意思是将一堆数&#xff0c;如果比较离散&#xff0c;为了让数据更适合模型训练&#xff0c;将离散的数据压缩到0到1之间&#xff0c;以方便模型更高效优质的学习&#xff0c;而对数据的预处理…...

# [Unity] 【游戏开发】Unity开发基础2-Unity脚本编程基础详解

Unity脚本编程是创建互动式游戏体验的核心技能之一。本文将详细讲解Unity脚本编程的基础知识,包括变量和数据类型、程序逻辑、方法等方面,并通过实例展示如何使用这些基本知识完成简单功能的实现。 1. 新建Unity脚本的基本结构 当在Unity中创建一个脚本时,Unity会生成如下基…...

【强化学习的数学原理】第02课-贝尔曼公式-笔记

学习资料&#xff1a;bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接&#xff1a;强化学习的数学原理 西湖大学 赵世钰 文章目录 一、为什么return重要&#xff1f;如何计算return&#xff1f;二、state value的定义三、Bellman公式的详细推导四、公式向量形式…...

C语言-数学基础问题

一.奇数、偶数问题 1.从键盘上输入一个整数&#xff0c;判断并输出它是奇数还是偶数。 //从键盘上输入一个整数&#xff0c;判断并输出它是奇数还是偶数。 main() {int i;printf("输入一个整数:\n");scanf("%d",&i);if(i%20)printf("它是偶数\n…...

2024算法基础公选课练习四(综合2)

一、前言 最后几个题确实有难度&#xff0c;这次有两题没整出来 二、题目总览 三、具体题目 3.1 问题 A: 水题系列1-B(班级排位) 思路 最暴力的思路是写线段树&#xff0c;然后暴力枚举两个端点&#xff0c;总体时间复杂度为O(n^2*logn)最坏会到1e9的数量级&#xff0c;可能…...