概述

在开始大模型RAG实战之旅前,一个正确且高效的开发环境是成功的基石。本文将手把手指导您完成从零开始的环境配置过程,涵盖Python环境设置、关键库安装、DeepSeek API配置以及开发工具优化。通过详细的步骤说明、常见问题解答和最佳实践分享,您将获得一个完全准备就绪的开发环境,为后续的RAG应用开发打下坚实基础。

本文将分为以下几个核心部分:系统要求与准备、Python环境配置、依赖库安装与管理、DeepSeek API访问设置、开发环境优化、故障排除与验证,以及环境维护与最佳实践。每个部分都包含详细的操作指导和原理说明,确保您不仅能完成配置,还能理解每个步骤背后的原因和意义。

一、系统要求与准备

1.1 硬件要求

在开始环境配置前,确保您的系统满足以下最低硬件要求:

在这里插入图片描述

1.2 操作系统支持

DeepSeek开发环境支持以下操作系统:

  • Windows: Windows 10或更高版本(64位)

  • macOS: macOS 10.15 (Catalina) 或更高版本

  • Linux: Ubuntu 18.04+/CentOS 7+ 或其他主流发行版

1.3 必要准备

在开始安装前,请确保:

  1. 拥有管理员或sudo权限

  2. 已更新操作系统到最新版本

  3. 关闭所有可能干扰安装的安全软件(临时)

  4. 准备至少20GB的磁盘空间

二、Python环境配置

2.1 Python版本选择

对于AI开发,Python版本的选择至关重要:

在这里插入图片描述

2.2 Python安装步骤

Windows系统安装
1. 下载Python安装包

访问Python官网下载3.10.x版本

https://www.python.org/downloads/windows/

2. 运行安装程序
  • 勾选"Add Python to PATH"选项

  • 选择"Customize installation"

  • 确保安装pip和所有可选功能

3. 验证安装
python --version
# 应该显示: Python 3.10.xpip --version
# 应该显示: pip 23.x.x
macOS系统安装
1. 使用Homebrew安装(推荐)
# 安装Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 安装Python
brew install python@3.10# 添加到PATH
echo 'export PATH="/usr/local/opt/python@3.10/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
2. 验证安装
python3 --version
pip3 --version
Linux系统安装(以Ubuntu为例)
# 更新包列表
sudo apt update# 安装依赖
sudo apt install -y software-properties-common# 添加Deadsnakes PPA(提供更新的Python版本)
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update# 安装Python 3.10
sudo apt install -y python3.10 python3.10-venv python3.10-dev# 设置替代版本
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1# 安装pip
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

2.3 虚拟环境配置

使用虚拟环境是Python开发的最佳实践,可以避免包冲突。

创建虚拟环境
# 创建项目目录
mkdir rag-tutorial
cd rag-tutorial# 创建虚拟环境(Windows)
python -m venv .venv# 创建虚拟环境(macOS/Linux)
python3 -m venv .venv
激活虚拟环境
Windows (PowerShell):
.\.venv\Scripts\Activate.ps1
Windows (CMD):
.\.venv\Scripts\activate.bat
macOS/Linux:
source .venv/bin/activate

激活后,命令行提示符前会出现(.venv)标识。

虚拟环境管理命令
# 停用虚拟环境
deactivate# 删除虚拟环境(先停用)
rm -rf .venv# 导出环境配置
pip freeze > requirements.txt# 从文件安装
pip install -r requirements.txt

三、依赖库安装与管理

3.1 核心库介绍

RAG开发需要以下核心库:

在这里插入图片描述

3.2 批量安装依赖库

创建requirements.txt文件:

# Core RAG Libraries
langchain==0.0.350
llama-index==0.9.0
openai==1.0.0
chromadb==0.4.0# Embedding & Utilities
sentence-transformers==2.2.2
transformers==4.35.0
torch==2.0.1
tokenizers==0.14.0# Web & UI
fastapi==0.104.0
uvicorn==0.24.0
gradio==4.0.0# Data Processing
unstructured==0.10.0
pypdf==3.15.0
python-docx==1.0.0# Utilities
python-dotenv==1.0.0
tqdm==4.66.0
numpy==1.24.0
pandas==2.0.0

安装所有依赖:

pip install -r requirements.txt

3.3 分步安装和验证

如果遇到依赖冲突,可以分步安装:

# 首先安装基础依赖
pip install "langchain>=0.0.350" "llama-index>=0.9.0" "openai>=1.0.0"# 安装向量数据库
pip install "chromadb>=0.4.0"# 安装数据处理库
pip install "unstructured>=0.10.0" "pypdf>=3.15.0"# 安装工具库
pip install "python-dotenv>=1.0.0" "tqdm>=4.66.0"

3.4 依赖冲突解决

常见的依赖冲突及解决方案:

冲突1: Pydantic版本冲突
# 解决方法:指定兼容版本
pip install "pydantic>=1.10.0,<2.0.0"
冲突2: NumPy版本冲突
# 解决方法:先安装NumPy再安装其他库
pip install "numpy==1.24.0"
冲突3: Protobuf版本问题
# 解决方法:指定protobuf版本
pip install "protobuf>=3.20.0,<4.0.0"

3.5 验证安装

创建验证脚本verify_installation.py

import importlib
import sysdef check_package(package_name, min_version=None):try:module = importlib.import_module(package_name.split('-')[0].replace('_', '-'))if min_version:version = getattr(module, '__version__', '0.0.0')if version < min_version:print(f"❌ {package_name} 版本过低: 当前 {version}, 需要 {min_version}")return Falseprint(f"✅ {package_name} 安装正确")return Trueexcept ImportError:print(f"❌ {package_name} 未安装")return False# 检查核心包
packages = [("langchain", "0.0.350"),("llama_index", "0.9.0"),("openai", "1.0.0"),("chromadb", "0.4.0"),("sentence_transformers", "2.2.2"),
]all_ok = True
for package, version in packages:if not check_package(package, version):all_ok = Falseif all_ok:print("\n🎉 所有核心包安装成功!")
else:print("\n⚠️  有些包安装有问题,请检查")sys.exit(1)

运行验证:

python verify_installation.py

四、DeepSeek API访问设置

4.1 获取API密钥

  1. 访问DeepSeek平台
  • 打开 DeepSeek官方网站

  • 点击"Sign Up"注册新账户或"Login"登录

  1. 创建API密钥
  • 登录后进入Dashboard

  • 导航到"API Keys" section

  • 点击"Create new API key"

  • 设置密钥名称(如"rag-tutorial")

  • 复制生成的API密钥(重要:此时复制,之后无法查看完整密钥)

  1. 查看使用限额
  • 在Billing页面查看免费额度和使用情况

  • 注意API调用限制和速率限制

4.2 环境变量配置

方法1: 使用python-dotenv(推荐)

创建.env文件:

# DeepSeek API Configuration
DEEPSEEK_API_KEY=your_actual_api_key_here
DEEPSEEK_API_BASE=https://api.deepseek.com
DEEPSEEK_API_VERSION=v1# Application Settings
MODEL_NAME=deepseek-chat
EMBEDDING_MODEL=deepseek-embedding
MAX_TOKENS=4096
TEMPERATURE=0.1

安装python-dotenv:

pip install python-dotenv

在代码中加载环境变量:

import os
from dotenv import load_dotenv# 加载.env文件
load_dotenv()# 获取API密钥
api_key = os.getenv('DEEPSEEK_API_KEY')
api_base = os.getenv('DEEPSEEK_API_BASE', 'https://api.deepseek.com')
方法2: 系统环境变量
Windows:
# 设置环境变量
[System.Environment]::SetEnvironmentVariable('DEEPSEEK_API_KEY', 'your_api_key', [System.EnvironmentVariableTarget]::User)# 重启终端后生效
macOS/Linux:
# 添加到shell配置文件 (~/.bashrc, ~/.zshrc, 等)
echo 'export DEEPSEEK_API_KEY="your_api_key"' >> ~/.zshrc
echo 'export DEEPSEEK_API_BASE="https://api.deepseek.com"' >> ~/.zshrc
source ~/.zshrc

4.3 API客户端配置

配置OpenAI客户端以使用DeepSeek API:

from openai import OpenAI
import os
from dotenv import load_dotenv# 加载环境变量
load_dotenv()# 配置客户端
client = OpenAI(api_key=os.getenv('DEEPSEEK_API_KEY'),base_url=os.getenv('DEEPSEEK_API_BASE', 'https://api.deepseek.com')
)# 测试API连接
def test_api_connection():try:response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "user", "content": "Hello"}],max_tokens=10)print("✅ API连接成功")return Trueexcept Exception as e:print(f"❌ API连接失败: {e}")return Falseif __name__ == "__main__":test_api_connection()

4.4 速率限制和错误处理

实现带重试机制的API调用:

import time
from tenacity import retry, stop_after_attempt, wait_exponentialclass DeepSeekClient:def __init__(self):self.client = OpenAI(api_key=os.getenv('DEEPSEEK_API_KEY'),base_url=os.getenv('DEEPSEEK_API_BASE'))@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))def chat_completion(self, messages, model="deepseek-chat", **kwargs):try:response = self.client.chat.completions.create(model=model,messages=messages,**kwargs)return response.choices[0].message.contentexcept Exception as e:print(f"API调用失败: {e}")raise

五、开发环境优化

5.1 IDE配置(VS Code推荐)

必备扩展
  • Python: Microsoft官方Python扩展

  • Pylance: 高性能语言服务器

  • Jupyter: Jupyter笔记本支持

  • GitLens: Git增强功能

  • Docker: Docker容器支持

配置设置 (.vscode/settings.json)
{"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python","python.analysis.typeCheckingMode": "basic","python.analysis.autoImportCompletions": true,"python.formatting.provider": "black","editor.formatOnSave": true,"editor.codeActionsOnSave": {"source.organizeImports": true},"files.exclude": {"**/__pycache__": true,"**/.pytest_cache": true,"**/.mypy_cache": true}
}

5.2 Jupyter环境配置

配置Jupyter使用虚拟环境:

# 安装ipykernel
pip install ipykernel# 添加虚拟环境到Jupyter
python -m ipykernel install --user --name=rag-tutorial --display-name="Python (RAG Tutorial)"# 创建Jupyter配置文件(如果不存在)
jupyter notebook --generate-config

5.3 代码质量工具

安装代码质量和格式化工具:

# 代码格式化
pip install black isort# 代码检查
pip install flake8 pylint mypy# 类型检查
pip install types-requests types-PyYAML# 安全检查
pip install bandit safety

创建预提交钩子 (.pre-commit-config.yaml):

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooksrev: v4.4.0hooks:-   id: trailing-whitespace-   id: end-of-file-fixer-   id: check-yaml-   id: check-added-large-files-   repo: https://github.com/psf/blackrev: 23.7.0hooks:-   id: black-   repo: https://github.com/pycqa/isortrev: 5.12.0hooks:-   id: isort-   repo: https://github.com/pycqa/flake8rev: 6.0.0hooks:-   id: flake8

六、故障排除与验证

6.1 常见问题解决

问题1: 网络连接超时

症状: ConnectTimeoutErrorConnectionError

解决方案:

# 设置超时和重试
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retrysession = requests.Session()
retry_strategy = Retry(total=3,backoff_factor=0.5,status_forcelist=[429, 500, 502, 503, 504],
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("https://", adapter)
session.mount("http://", adapter)# 在OpenAI客户端中使用自定义session
client = OpenAI(api_key=api_key, http_client=session)
问题2: 认证失败

症状: AuthenticationError401 Unauthorized

检查步骤:

  1. 验证API密钥是否正确

  2. 检查环境变量是否加载

  3. 确认账户是否有足够配额

问题3: 依赖冲突

症状: ImportError 或版本冲突错误

解决方案:

# 清理并重新安装
pip uninstall -y -r <(pip freeze)
pip install -r requirements.txt# 或者使用pip-tools管理依赖
pip install pip-tools
pip-compile requirements.in
pip-sync

6.2 完整环境验证

创建完整的验证脚本validate_environment.py

import sys
import os
from dotenv import load_dotenv
from openai import OpenAIdef validate_environment():"""验证整个开发环境"""print("🔍 开始环境验证...\n")# 1. 检查Python版本print("1. 检查Python版本")python_version = sys.version_infoif python_version.major == 3 and python_version.minor >= 10:print(f"   ✅ Python {python_version.major}.{python_version.minor}.{python_version.micro}")else:print(f"   ❌ 需要Python 3.10+,当前版本: {python_version.major}.{python_version.minor}")return False# 2. 检查虚拟环境print("2. 检查虚拟环境")if hasattr(sys, 'real_prefix') or (hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix):print("   ✅ 在虚拟环境中运行")else:print("   ⚠️  不在虚拟环境中运行(建议使用虚拟环境)")# 3. 检查环境变量print("3. 检查环境变量")load_dotenv()api_key = os.getenv('DEEPSEEK_API_KEY')if api_key and api_key != 'your_actual_api_key_here':print("   ✅ DEEPSEEK_API_KEY 已设置")else:print("   ❌ DEEPSEEK_API_KEY 未正确设置")return False# 4. 测试API连接print("4. 测试API连接")try:client = OpenAI(api_key=api_key,base_url=os.getenv('DEEPSEEK_API_BASE', 'https://api.deepseek.com'))response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "user", "content": "测试连接"}],max_tokens=5)print("   ✅ API连接成功")except Exception as e:print(f"   ❌ API连接失败: {e}")return False# 5. 检查核心包print("5. 检查核心包")packages = [("langchain", "0.0.350"),("llama_index", "0.9.0"),("openai", "1.0.0"),("chromadb", "0.4.0"),]all_ok = Truefor package, min_version in packages:try:module = __import__(package.replace('-', '_'))version = getattr(module, '__version__', '0.0.0')if version >= min_version:print(f"   ✅ {package} {version}")else:print(f"   ❌ {package} 版本过低: {version} < {min_version}")all_ok = Falseexcept ImportError:print(f"   ❌ {package} 未安装")all_ok = Falseprint("\n" + "="*50)if all_ok:print("🎉 环境验证通过!可以开始RAG开发了。")return Trueelse:print("❌ 环境验证失败,请检查上述问题。")return Falseif __name__ == "__main__":success = validate_environment()sys.exit(0 if success else 1)

七、环境维护与最佳实践

7.1 日常维护命令

# 更新所有包到最新版本
pip install --upgrade -r requirements.txt# 检查安全漏洞
safety check# 清理缓存
pip cache purge# 检查过时的包
pip list --outdated

7.2 备份和恢复

备份环境配置
# 导出精确的依赖版本
pip freeze > requirements.lock# 备份环境变量
cp .env .env.backup# 备份Jupyter配置
jupyter --paths
恢复环境
# 从requirements.lock恢复
pip install -r requirements.lock# 恢复环境变量
cp .env.backup .env

7.3 监控和优化

资源监控脚本
import psutil
import resourcedef check_system_resources():"""检查系统资源使用情况"""memory = psutil.virtual_memory()print(f"内存使用: {memory.percent}%")disk = psutil.disk_usage('/')print(f"磁盘使用: {disk.percent}%")# 设置内存限制(Linux/macOS)soft, hard = resource.getrlimit(resource.RLIMIT_AS)print(f"内存限制: Soft={soft}, Hard={hard}")# 在内存密集型操作前调用
check_system_resources()

结语

通过本文的详细指导,您已经成功搭建了一个完整的DeepSeek RAG开发环境。这个环境不仅包含了所有必要的软件和库,还配置了优化设置和故障处理机制,为后续的实战开发奠定了坚实基础。

记住,良好的开发环境是高效编程的前提。定期维护和更新您的环境,保持依赖库的版本兼容性,并遵循最佳实践,将确保您的开发过程顺畅无阻。

在下一篇文章中,我们将利用这个配置好的环境,开始构建第一个基于DeepSeek的RAG应用,探索如何将理论转化为实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95881.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95881.shtml
英文地址,请注明出处:http://en.pswp.cn/web/95881.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Boost电路:稳态和小信号分析

稳态分析 参考张卫平的《开关变换器的建模与控制》的1.3章节内容&#xff1b;伏秒平衡&#xff1a;在稳态下&#xff0c;一个开关周期内电感电流的增量是0&#xff0c;即 dIL(t)dt0\frac{dI_{L}(t)}{dt} 0dtdIL​(t)​0。电荷平衡&#xff1a;在稳态下&#xff0c;一个开关周期…

Vue-25-利用Vue3大模型对话框设计之前端和后端的基础实现

文章目录 1 设计思路 1.1 核心布局与组件 1.2 交互设计(Interaction Design) 1.3 视觉与用户体验 1.4 高级功能与创新设计 2 vue3前端设计 2.1 项目启动 2.1.1 创建和启动项目(vite+vue) 2.1.2 清理不需要的代码 2.1.3 下载必备的依赖(element-plus) 2.1.4 完整引入并注册(main…

Elasticsearch面试精讲 Day 7:全文搜索与相关性评分

【Elasticsearch面试精讲 Day 7】全文搜索与相关性评分 文章标签&#xff1a;Elasticsearch, 全文搜索, 相关性评分, TF-IDF, BM25, 面试, 搜索引擎, 后端开发, 大数据 文章简述&#xff1a; 本文是“Elasticsearch面试精讲”系列的第7天&#xff0c;聚焦于全文搜索与相关性评…

Vllm-0.10.1:vllm bench serve参数说明

一、KVM 虚拟机环境 GPU:4张英伟达A6000(48G) 内存&#xff1a;128G 海光Cpu:128核 大模型&#xff1a;DeepSeek-R1-Distill-Qwen-32B 推理框架Vllm:0.10.1 二、测试命令&#xff08;random &#xff09; vllm bench serve \ --backend vllm \ --base-url http://127.0.…

B.50.10.11-Spring框架核心与电商应用

Spring框架核心原理与电商应用实战 核心理念: 本文是Spring框架深度指南。我们将从Spring的两大基石——IoC和AOP的底层原理出发&#xff0c;详细拆解一个Bean从定义到销毁的完整生命周期&#xff0c;并深入探讨Spring事务管理的实现机制。随后&#xff0c;我们将聚焦于Spring …

雅菲奥朗SRE知识墙分享(六):『混沌工程的定义与实践』

混沌工程不再追求“永不宕机”的童话&#xff0c;而是主动在系统中注入可控的“混乱”&#xff0c;通过实验验证系统在真实故障场景下的弹性与自我修复能力。混沌工程不是简单的“搞破坏”&#xff0c;也不是运维团队的专属游戏。它是一种以实验为导向、以度量为核心、以文化为…

从0死磕全栈第五天:React 使用zustand实现To-Do List项目

代码世界是现实的镜像,状态管理教会我们:真正的控制不在于凝固不变,而在于优雅地引导变化。 这是「从0死磕全栈」系列的第5篇文章,前面我们已经完成了环境搭建、路由配置和基础功能开发。今天,我们将引入一个轻量级但强大的状态管理工具 —— Zustand,来实现一个完整的 T…

力扣29. 两数相除题解

原题链接29. 两数相除 - 力扣&#xff08;LeetCode&#xff09; 主要不能用乘除取余&#xff0c;于是用位运算代替&#xff1a; Java题解 class Solution {public int divide(int dividend, int divisor) {//全都转为负数计算, 避免溢出, flag记录结果的符号int flag 1;if(…

【工具类】Nuclei YAML POC 编写以及批量检测

Nuclei YAML POC 编写以及批量检测法律与道德使用声明前言Nuclei 下载地址下载对应版本的文件关于检查cpu架构关于hkws的未授权访问参考资料关于 Neclei Yaml 脚本编写BP Nuclei Template 插件下载并安装利用插件编写 POC YAML 文件1、找到有漏洞的页面抓包发送给插件2、同时将…

自动化运维之ansible

一、认识自动化运维假如管理很多台服务器&#xff0c;主要关注以下几个方面“1.管理机与被管理机的连接&#xff08;管理机如何将管理指令发送给被管理机&#xff09;2.服务器信息收集&#xff08;如果被管理的服务器有centos7.5外还有其它linux发行版&#xff0c;如suse,ubunt…

【温室气体数据集】亚洲地区长期空气污染物和温室气体排放数据 REAS

目录 REAS 数据集概述 REAS 数据版本及特点 数据内容(以 REASv3.2.1 为例) 数据形式 数据下载 参考 REAS 数据集(Regional Emission inventory in ASia,亚洲区域排放清单)是由日本国立环境研究所(NIES)及相关研究人员开发的一个覆盖亚洲地区长期空气污染物和温室气体排放…

中州养老项目:利用Redis解决权限接口响应慢的问题

目录 在Java中使用Redis缓存 项目中集成SpringCache 在Java中使用Redis缓存 Redis作为缓存,想要在Java中操作Redis,需要 Java中的客户端操纵Redis就像JDBC操作数据库一样,实际底层封装了对Redis的基础操作 如何在Java中使用Redis呢?先导入Redis的依赖,这个依赖导入后相当于把…

MathJax - LaTeX:WordPress 公式精准呈现方案

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录前言安装 MathJax-LaTeX 插件修改插件文件效果总结互动致谢参考前言 在当今知识传播与…

详细解读Docker

1.概述Docker是一种优秀的开源的容器化平台。用于部署、运行应用程序&#xff0c;它通过将应用及其依赖打包成轻量级、可移植的容器&#xff0c;实现高效一致的运行效果&#xff0c;简单来说&#xff0c;Docker就是一种轻量级的虚拟技术。2.核心概念2.1.容器&#xff08;Contai…

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文记录了使用自己的年度时序数据集,进行 LandTrendr 变化检测的代码。结果输出变化年份、变化幅度以及变化持续时间。 结果如下图所示, 文章目录 一、核心函数 二、代码 三、代码链接 一、核心函数 var eeltgcm = require(users/949384116/lib:LandTrendr/getChangeMap)v…

PostgreSQL收集pg_stat_activity记录的shell工具pg_collect_pgsa

这是一个纯脚本工具&#xff0c;用于从PostgreSQL的pg_stat_activity视图中定期收集数据并保存到本地日志文件。 相关背景&#xff1a; 某个慢SQL打满内存&#xff0c;导致系统kill掉postgres的某个进程&#xff0c;进而导致postgres进程重启&#xff0c;没有现场排查不了具体…

通俗的话语解读《银行保险机构信息科技外包风险监管办法》

这份文件不是 “纸上规矩”&#xff0c;而是银行保险机构做信息科技外包的 “实操手册”—— 从要不要外包、选谁合作&#xff0c;到怎么管过程、防风险&#xff0c;再到出问题怎么应对&#xff0c;都给了明确方向。作为管理者&#xff0c;核心是把这些要求落地到日常决策和系统…

芯片ATE测试PAT(Part Average Testing)学习总结-20250916

目录 一、基本概念 二、静态PAT 三、动态PAT 四、参考链接: 一、基本概念 零件平均测试(Part Average Testing,PAT)是一种基于统计学的质量控制方法,主要用于半导体制造中筛选出与正常参数范围偏差较大的“异常值”芯片,以提高产品质量和可靠性; 二、静态PAT 静态…

【数据结构、java学习】数组(Array)

1&#xff0c;概念 数组一旦定义&#xff0c;其维数和维界就不再改变。 因此除了结构的初始化和销毁之外&#xff0c;数组只有存取元素和修改元素值的操作。Array可以存放对象类型、基本数据类型的数据。数组中元素在内存中按顺序线性存放&#xff0c;通过第一个元素就能访问随…

58-正则表达式

1. 概念正则表达式是一种用来匹配字符串的强有力的武器.设计思想&#xff1a;用一种描述性的语言来给字符串定义一个规则&#xff0c;凡是符合规则的字符串&#xff0c;就认为它"匹配"【合法】否则就是不匹配[不合法]举例&#xff1a;beijinglishao163.com2. 规则 1.…