深入浅出:Python 编程语言的学习之路
文章目录
- 1. Python 简介
- 2. Python 的安装与环境配置
- 2.1 安装 Python
- 2.2 配置开发环境
- 3. Python 基础语法
- 3.1 变量与数据类型
- 示例代码:定义变量
- 3.2 控制结构
- 示例代码:条件语句
- 示例代码:循环语句
- 3.3 函数与模块
- 示例代码:定义函数
- 示例代码:导入模块
- 4. 面向对象编程
- 4.1 类与对象
- 示例代码:定义类
- 4.2 继承与多态
- 示例代码:继承与多态
- 5. 文件操作与异常处理
- 5.1 文件读写
- 示例代码:文件读写
- 5.2 异常处理
- 示例代码:异常处理
- 6. 标准库与第三方库
- 6.1 标准库
- 示例代码:使用标准库
- 6.2 第三方库
- 示例代码:安装和使用第三方库
- 7. 数据结构与算法
- 7.1 列表、字典与集合
- 示例代码:列表操作
- 示例代码:字典操作
- 示例代码:集合操作
- 7.2 排序与查找算法
- 示例代码:排序算法
- 示例代码:查找算法
- 8. 并发编程
- 8.1 多线程
- 示例代码:多线程
- 8.2 多进程
- 示例代码:多进程
- 8.3 异步编程
- 示例代码:异步编程
- 9. 实际应用案例
- 案例一:Web 开发
- 示例代码:Flask Web 应用
- 案例二:数据分析
- 示例代码:数据分析
- 案例三:自动化脚本
- 示例代码:自动化脚本
- 10. 学习资源与进阶指南
- 10.1 在线课程
- 10.2 书籍
- 10.3 社区与论坛
- 参考资料
1. Python 简介
Python 是一种高级编程语言,由 Guido van Rossum 于 1991 年首次发布。它以简洁、易读的语法著称,广泛应用于 Web 开发、数据分析、人工智能、自动化脚本等领域。Python 的设计理念是“代码可读性优先”,这使得它成为初学者和专业开发者的理想选择。
Python 的特点包括:
- 简单易学:Python 的语法非常接近自然语言,易于理解和掌握。
- 跨平台:Python 可以在 Windows、macOS 和 Linux 等多个操作系统上运行。
- 丰富的库:Python 拥有庞大的标准库和第三方库,涵盖了几乎所有领域的开发需求。
- 社区支持:Python 拥有一个活跃的全球开发者社区,提供了大量的教程、文档和支持。
2. Python 的安装与环境配置
要开始学习 Python,首先需要安装 Python 解释器并配置开发环境。以下是详细的步骤:
2.1 安装 Python
- 访问 Python 官方网站,下载适合你操作系统的最新版本。
- 按照安装向导的提示完成安装。建议勾选“Add Python to PATH”选项,以便在命令行中直接使用 Python。
- 安装完成后,打开命令行或终端,输入
python --version
或python3 --version
来验证安装是否成功。
2.2 配置开发环境
你可以选择使用以下几种方式来编写和运行 Python 代码:
- 命令行/终端:直接在命令行中输入 Python 代码并执行。
- 文本编辑器:如 VS Code、Sublime Text 或 Atom,这些编辑器支持 Python 语法高亮和调试功能。
- 集成开发环境 (IDE):如 PyCharm、Jupyter Notebook 或 Thonny,这些工具提供了更强大的开发功能,如代码补全、调试器和项目管理。
3. Python 基础语法
3.1 变量与数据类型
Python 是一种动态类型语言,这意味着你不需要显式声明变量的类型。Python 支持多种内置数据类型,包括整数、浮点数、字符串、布尔值等。
示例代码:定义变量
# 整数
age = 25# 浮点数
height = 1.75# 字符串
name = "Alice"# 布尔值
is_student = Trueprint(f"Name: {name}, Age: {age}, Height: {height}, Is Student: {is_student}")
3.2 控制结构
Python 提供了多种控制结构,用于控制程序的执行流程。常见的控制结构包括条件语句和循环语句。
示例代码:条件语句
age = 18if age >= 18:print("You are an adult.")
else:print("You are a minor.")
示例代码:循环语句
# for 循环
for i in range(5):print(i)# while 循环
count = 0
while count < 5:print(count)count += 1
3.3 函数与模块
函数是组织代码的基本单元,可以将一段代码封装起来,便于重复使用。模块则是包含多个函数和变量的文件,可以通过 import
语句引入到其他代码中。
示例代码:定义函数
def greet(name):return f"Hello, {name}!"print(greet("Alice"))
示例代码:导入模块
import mathprint(math.sqrt(16)) # 输出 4.0
4. 面向对象编程
面向对象编程(OOP)是一种编程范式,通过类和对象来组织代码。Python 是一种完全支持 OOP 的语言,允许你创建类、实例化对象,并实现继承和多态等特性。
4.1 类与对象
类是对象的蓝图,定义了对象的属性和行为。对象是类的实例,表示具体的实体。
示例代码:定义类
class Person:def __init__(self, name, age):self.name = nameself.age = agedef greet(self):return f"Hello, my name is {self.name} and I am {self.age} years old."# 创建对象
person = Person("Alice", 25)
print(person.greet())
4.2 继承与多态
继承是指一个类可以从另一个类继承属性和方法,从而实现代码复用。多态是指不同类的对象可以通过相同的接口调用不同的实现。
示例代码:继承与多态
class Animal:def speak(self):passclass Dog(Animal):def speak(self):return "Woof!"class Cat(Animal):def speak(self):return "Meow!"# 创建对象
dog = Dog()
cat = Cat()# 调用相同的方法
print(dog.speak()) # 输出 "Woof!"
print(cat.speak()) # 输出 "Meow!"
5. 文件操作与异常处理
5.1 文件读写
Python 提供了内置的文件操作功能,可以轻松地读取和写入文件。常用的文件操作模式包括读取 (r
)、写入 (w
) 和追加 (a
)。
示例代码:文件读写
# 写入文件
with open("example.txt", "w") as file:file.write("Hello, World!")# 读取文件
with open("example.txt", "r") as file:content = file.read()print(content)
5.2 异常处理
在编程过程中,可能会遇到各种错误或异常情况。Python 提供了 try-except
语句来捕获和处理异常,确保程序不会因为错误而崩溃。
示例代码:异常处理
try:result = 10 / 0
except ZeroDivisionError:print("Cannot divide by zero!")
finally:print("This will always execute.")
6. 标准库与第三方库
6.1 标准库
Python 标准库包含了大量有用的模块和函数,涵盖了文件操作、网络编程、正则表达式、日期时间处理等多个领域。常用的模块包括 os
、sys
、datetime
和 re
等。
示例代码:使用标准库
import os
import datetime# 获取当前工作目录
current_dir = os.getcwd()
print(f"Current directory: {current_dir}")# 获取当前日期和时间
now = datetime.datetime.now()
print(f"Current time: {now}")
6.2 第三方库
除了标准库,Python 还拥有丰富的第三方库,可以帮助你快速实现复杂的功能。常用的第三方库包括 requests
(HTTP 请求)、numpy
(数值计算)、pandas
(数据分析)和 matplotlib
(绘图)等。
示例代码:安装和使用第三方库
# 安装第三方库
pip install requests# 使用第三方库
import requestsresponse = requests.get("https://api.github.com")
print(response.status_code)
7. 数据结构与算法
7.1 列表、字典与集合
Python 提供了多种内置的数据结构,包括列表、字典和集合。这些数据结构可以帮助你高效地存储和操作数据。
示例代码:列表操作
# 创建列表
fruits = ["apple", "banana", "orange"]# 添加元素
fruits.append("grape")# 删除元素
fruits.remove("banana")# 遍历列表
for fruit in fruits:print(fruit)
示例代码:字典操作
# 创建字典
person = {"name": "Alice","age": 25,"city": "New York"
}# 获取值
print(person["name"])# 更新值
person["age"] = 26# 遍历字典
for key, value in person.items():print(f"{key}: {value}")
示例代码:集合操作
# 创建集合
numbers = {1, 2, 3, 4, 5}# 添加元素
numbers.add(6)# 删除元素
numbers.remove(1)# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union = set1.union(set2) # 并集
intersection = set1.intersection(set2) # 交集
difference = set1.difference(set2) # 差集print(f"Union: {union}")
print(f"Intersection: {intersection}")
print(f"Difference: {difference}")
7.2 排序与查找算法
排序和查找是编程中常见的操作。Python 提供了内置的排序和查找函数,同时也支持自定义算法。
示例代码:排序算法
# 内置排序
numbers = [5, 2, 8, 1, 9]
sorted_numbers = sorted(numbers)
print(sorted_numbers)# 自定义排序
students = [{"name": "Alice", "score": 85},{"name": "Bob", "score": 92},{"name": "Charlie", "score": 78}
]sorted_students = sorted(students, key=lambda x: x["score"], reverse=True)
for student in sorted_students:print(f"{student['name']}: {student['score']}")
示例代码:查找算法
# 线性查找
def linear_search(arr, target):for i, num in enumerate(arr):if num == target:return ireturn -1# 二分查找
def binary_search(arr, target):low, high = 0, len(arr) - 1while low <= high:mid = (low + high) // 2if arr[mid] == target:return midelif arr[mid] < target:low = mid + 1else:high = mid - 1return -1# 示例
arr = [1, 3, 5, 7, 9]
print(linear_search(arr, 5)) # 输出 2
print(binary_search(arr, 5)) # 输出 2
8. 并发编程
并发编程是指同时执行多个任务的能力。Python 提供了多种并发编程的方式,包括多线程、多进程和异步编程。
8.1 多线程
多线程适用于 I/O 密集型任务,如网络请求和文件操作。Python 的 threading
模块可以帮助你创建和管理线程。
示例代码:多线程
import threading
import timedef task(name, delay):print(f"Thread {name} started.")time.sleep(delay)print(f"Thread {name} finished.")# 创建线程
thread1 = threading.Thread(target=task, args=("A", 2))
thread2 = threading.Thread(target=task, args=("B", 4))# 启动线程
thread1.start()
thread2.start()# 等待线程结束
thread1.join()
thread2.join()print("All threads completed.")
8.2 多进程
多进程适用于 CPU 密集型任务,如图像处理和科学计算。Python 的 multiprocessing
模块可以帮助你创建和管理进程。
示例代码:多进程
import multiprocessing
import timedef task(name, delay):print(f"Process {name} started.")time.sleep(delay)print(f"Process {name} finished.")# 创建进程
process1 = multiprocessing.Process(target=task, args=("A", 2))
process2 = multiprocessing.Process(target=task, args=("B", 4))# 启动进程
process1.start()
process2.start()# 等待进程结束
process1.join()
process2.join()print("All processes completed.")
8.3 异步编程
异步编程适用于 I/O 密集型任务,尤其是网络请求和数据库操作。Python 的 asyncio
模块可以帮助你编写异步代码。
示例代码:异步编程
import asyncioasync def task(name, delay):print(f"Task {name} started.")await asyncio.sleep(delay)print(f"Task {name} finished.")async def main():task1 = asyncio.create_task(task("A", 2))task2 = asyncio.create_task(task("B", 4))await task1await task2print("All tasks completed.")# 运行异步函数
asyncio.run(main())
9. 实际应用案例
案例一:Web 开发
Python 在 Web 开发领域有着广泛的应用,尤其是在 Django 和 Flask 等框架的支持下,开发者可以快速构建功能强大的 Web 应用。
示例代码:Flask Web 应用
from flask import Flaskapp = Flask(__name__)@app.route("/")
def home():return "Hello, World!"if __name__ == "__main__":app.run(debug=True)
案例二:数据分析
Python 是数据分析领域的首选语言之一,借助 pandas
和 matplotlib
等库,可以轻松处理和可视化数据。
示例代码:数据分析
import pandas as pd
import matplotlib.pyplot as plt# 读取 CSV 文件
data = pd.read_csv("data.csv")# 统计分析
mean_age = data["age"].mean()
max_salary = data["salary"].max()print(f"Mean age: {mean_age}")
print(f"Max salary: {max_salary}")# 数据可视化
plt.plot(data["age"], data["salary"])
plt.xlabel("Age")
plt.ylabel("Salary")
plt.title("Age vs Salary")
plt.show()
案例三:自动化脚本
Python 可以编写自动化脚本,帮助你完成日常任务,如文件备份、邮件发送和系统监控。
示例代码:自动化脚本
import os
import shutil
import smtplib
from email.mime.text import MIMEText# 文件备份
source_dir = "source_folder"
backup_dir = "backup_folder"
shutil.copytree(source_dir, backup_dir)# 发送邮件通知
def send_email(subject, body, to_email):msg = MIMEText(body)msg["Subject"] = subjectmsg["From"] = "your_email@example.com"msg["To"] = to_emailwith smtplib.SMTP("smtp.example.com", 587) as server:server.starttls()server.login("your_email@example.com", "your_password")server.sendmail("your_email@example.com", to_email, msg.as_string())send_email("Backup Completed", "The backup has been successfully completed.", "recipient@example.com")
10. 学习资源与进阶指南
10.1 在线课程
- Coursera - Python for Everybody
- edX - Introduction to Computer Science and Programming Using Python
10.2 书籍
- 《Python 编程:从入门到实践》 - Eric Matthes
- 《流畅的 Python》 - Luciano Ramalho
- 《Python Cookbook》 - David Beazley 和 Brian K. Jones
10.3 社区与论坛
- Stack Overflow
- Reddit - r/learnpython
- Python 官方文档
参考资料
- Python 官方网站
- Python 文档
- Real Python
- Python Tutor
欢迎在评论区互动,彼此交流相互学习! 😊
相关文章:
深入浅出:Python 编程语言的学习之路
文章目录 1. Python 简介2. Python 的安装与环境配置2.1 安装 Python2.2 配置开发环境 3. Python 基础语法3.1 变量与数据类型示例代码:定义变量 3.2 控制结构示例代码:条件语句示例代码:循环语句 3.3 函数与模块示例代码:定义函数…...
R语言机器学习论文(三):特征提取
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据一、数据归一化二、离散型分类变量的编码三、筛选特征四、重要特征五、输出结果六、总结系统信息介绍 在数据分析和机器学习项目中,经常需要对数据进行预…...
【C#设计模式(17)——迭代器模式(Iterator Pattern)】
前言 迭代器模式可以使用统一的接口来遍历不同类型的集合对象,而不需要关心其内部的具体实现。 代码 //迭代器接口 public interface Iterator {bool HashNext();object Next(); } //集合接口 public interface Collection {Iterator CreateIterator(); } //元素迭…...
【云原生系列】云计算中的负载均衡是什么,有什么用
云计算里有一个非常重要的概念叫“负载均衡”,如果你经常听到这个词但还不太明白具体是怎么回事,这篇文章可以给你一些思路。负载均衡简单来说就是“分担压力”,确保访问量被合理地分配到各个服务器上,让系统高效且稳定地运行。 …...
笔记本电脑usb接口没反应怎么办?原因及解决方法
笔记本电脑的USB接口是我们日常使用中非常频繁的一个功能,无论是数据传输、充电还是外接设备,都离不开它。然而,当USB接口突然没有反应时,这无疑会给我们的工作和学习带来不小的困扰。下面,我们就来探讨一下笔记本USB接…...
容器运行应用及Docker命令
文章目录 一、使用容器运行Nginx应用1_使用docker run命令运行Nginx应用1 观察下载容器镜像过程2 观察容器运行情况 2_访问容器中运行的Nginx服务1 确认容器IP地址2 容器网络说明3 使用curl命令访问 二、Docker命令1_Docker命令获取帮助方法2_Docker官网提供的命令说明3_docker…...
PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images
全文摘要 本文介绍了一种名为PETRv2的统一框架,用于从多视图图像中进行三维感知。该框架基于先前提出的PETR框架,并探索了时间建模的有效性,利用前一帧的时间信息来提高三维物体检测效果。作者在PETR的基础上扩展了三维位置嵌入(…...
Python库常用函数-数据分析
Python库常用函数 1.pandas库 (1)数据读取与写入 读取 CSV 文件: data pd.read_csv(file.csv)读取 Excel 文件: data pd.read_excel(file.xlsx, sheet_nameSheet1)写入 CSV 文件: data.to_csv(new_file.csv, ind…...
【机器学习】机器学习的基本分类-监督学习-随机森林(Random Forest)
随机森林是一种基于集成学习(Ensemble Learning)思想的算法,由多个决策树构成。它通过结合多棵决策树的预测结果来提升模型的泛化能力和准确性,同时减少过拟合的风险。 1. 随机森林的核心思想 多样性: 随机森林通过引…...
Java入门:22.集合的特点,List,Set和Map集合的使用
1 什么是集合 本质就是容器的封装,可以存储多个元素 数组一旦创建,长度就不能再改变了。 数组一旦创建,存储内容的类型不能改变。 数组可以存储基本类型,也可以存储引用类型。 数组可以通过length获得容量的大小,但…...
Web3与区块链如何通过智能合约实现自动化生态?
Web3和区块链正在重塑互联网的未来,其核心在于去中心化和用户数据自主权。而作为区块链技术的重要组成部分,智能合约通过自动执行预设规则,大大提升了效率和安全性。本文将探讨Web3与区块链如何通过智能合约实现生态的自动化。 什么是智能合约…...
排序算法入门:分类与基本概念详解
引言 排序是编程世界中最常见的操作之一,也是许多算法的基础。不管是从数据中找出最大值还是将一堆乱序的名字整理得井井有条,排序算法都在幕后默默工作。你可能会觉得排序很简单:从小到大排个序而已嘛。但当数据量大到上百万、上亿…...
【Spring Cloud 微服务的简单概述】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
稳定运行的以Azure Synapse Dedicated SQL Pool数据仓库为数据源和目标的ETL性能变差时提高性能方法和步骤
在Azure Synapse Dedicated SQL Pool(以前称为SQL Data Warehouse)的ETL性能变差时,可以通过以下方法和步骤来提高性能: 1. 分析和监控性能瓶颈 查看执行计划:使用SQL的SET STATISTICS IO ON和SET STATISTICS TIME O…...
可供参考的GitHub国内镜像
在配置了本地hosts文件和魔法后仍存在无法访问的问题 针对如上问题,可以使用国内的镜像地址做替换 例如: https://github.com/bubbliiiing/detr-pytorch改成 https://hub.nuaa.cf/bubbliiiing/detr-pytorch推荐使用的镜像 https://hub.yzuu.cf/ https://hub.nua…...
统计中间件稳定性指标
目前订单业务域涉及中间件:MySQL、Redis、TiDB、MQ、ES。(遗漏项请补充) 一、RDS 资源使用率 实例ID实例名称规格maxCPUavgCPUmaxDISKmaxIOPSavgIOPS活跃会话maxTPSavgTPSmaxQPSavgQPS实例风险 慢查询 慢查询会消耗大量的系统资源&#x…...
Qt Quick开发基础+实战(持续更新中…)
最近更新日期:2024/12/4 一、Qt Quick简介 写在前面: 本篇文章虽然只是作为我的学习笔记,但也作为我日后复习之用,所以会认真并详细记录,但会分重点。 1.3 新建Qt Quick Application工程 这节主要讲2个知识点&#x…...
FPGA Xilinx维特比译码器实现卷积码译码
FPGA Xilinx维特比译码器实现卷积码译码 文章目录 FPGA Xilinx维特比译码器实现卷积码译码1 Xilinx维特比译码器实现2 完整代码3 仿真结果 MATLAB (n,k,m)卷积码原理及仿真代码(你值得拥有)_matlab仿真后代码-CSDN博客 MATLAB 仿真…...
数据结构初阶1 时间复杂度和空间复杂度
本章重点 算法效率时间复杂度空间复杂度常见时间复杂度以及复杂度OJ练习 1.算法效率 1.1 如何衡量一个算法的好坏 如何衡量一个算法的好坏呢?比如对于以下斐波那契数列: long long Fib(int N) { if(N < 3) return 1;return Fib(N-1) Fib(N-2); }斐…...
基于Matlab计算机视觉的车道线识别与前车检测系统研究
随着自动驾驶技术的发展,车道线识别和前车检测成为智能驾驶系统中的核心技术之一。本实训报告围绕基于计算机视觉的车道线识别与前车检测系统展开,旨在通过处理交通视频数据,实时检测车辆所在车道及其与前车的相对位置,从而为车道…...
刷蓝桥杯历年考题(更新至15届~)
第十五届 CA组省赛 AcWing5980.训练士兵 方法一:树状数组:O(nlogn) self-complete /*先枚举组团,后分析每个士兵,有一个特点,组团费用是固定的,那当然是让所有士兵一块训练,训练完的士兵也不会有损失当还…...
Stream API来提取两个字符串字段
如果您有一个包含对象的List,并且想要使用Java 8的Stream API来提取两个字符串字段,然后将这些字段的值连接成一个以逗号隔开的单个字符串或者集合List,您可以按照以下步骤操作: 假设您有一个Person类,其中包含两个字…...
《无畏契约》运行时提示“d3dcompiler_43.dll丢失”是什么原因?“找不到d3dcompiler_43.dll文件”如何解决?
《无畏契约》运行时提示“d3dcompiler_43.dll丢失”是什么原因?“找不到d3dcompiler_43.dll文件”如何解决? 作为一位软件开发从业者,我深知在游戏运行过程中,遇到各种文件丢失、文件损坏和系统报错等问题是多么令人头疼。今天&a…...
社群分享在商业引流与职业转型中的作用:开源 AI 智能名片 2+1 链动模式小程序的应用契机
摘要:本文聚焦于社群分享在商业领域的重要性,阐述其作为干货诱饵在引流方面的关键意义。详细探讨了提供有价值干货的多种方式,包括文字分享、问题解答以及直播分享等,并分析了直播分享所需的条件。同时,以自身经历为例…...
芯食代冻干科技研究院:创新与品质并重,推动家用冻干机高质量发展
11月25日,芯食代首届食品冻干前沿与智能化升级创新大会在江苏常州成功举办。本次大会由芯食代冻干科技研究院(江苏)有限公司与芯食代(上海)科技发展有限公司联合主办,云集学界专家教授、商界企业精英,共议家用冻干机的未来创新发展。作为创新大会,芯食代冻干科技研究院也在本次…...
【C++】栈和队列的模拟实现(适配器模式)
不论是C语言还是C,我们都用其对应的传统写法对栈和队列进行了模拟实现,现在我们要用新的方法模拟实现栈和队列,这个新方法就是适配器模式。 C语言传统写法: C语言模拟实现栈 C传统写法:C模拟实现栈 1.容器适配器 …...
CSS过渡练习-进度条(12)
该进度条先需要一个大盒子和一个小盒子,然后给大盒子与小盒子加style,看进度到多少就是百分之多少;如果要进度条从百分之五十到满格的话就加一个hover的样式(鼠标移到链接上时添加的特殊样式),然后是想要进…...
青动CRM系统PHP+Uniapp
全面解决企业销售团队的全流程客户服务难题,旨在助力企业销售全流程精细化、数字化管理,全面解决企业销售团队的全流程客户服务难题,帮助企业有效盘活客户资源、量化销售行为,合理配置资源、建立科学销售体系,提升销售业绩。 青动…...
word如何快速创建目录?
文章目录 1,先自己写出目录的各级标题。2、选中目标标题,然后给它们编号3、给标题按照个人需求开始分级4、插入域构建目录。4.1、利用快捷键插入域构建目录4.2、手动插入域构建目录 听懂掌声!学会了吗? 前提声明:我在此…...
【机器学习】机器学习的基本分类-监督学习-决策树-CART(Classification and Regression Tree)
CART(Classification and Regression Tree) CART(分类与回归树)是一种用于分类和回归任务的决策树算法,提出者为 Breiman 等人。它的核心思想是通过二分法递归地将数据集划分为子集,从而构建一棵树。CART …...
使用GDI对象绘制UI时需要注意的若干细节问题总结
目录 1、一个bitmap不能同时被选进两个dc中 2、CreateCompatibleDC和CreateCompatibleBitmap要使用同一个dc作为参数 3、不能删除已经被选入DC中的GDI对象 4、使用完的GDI对象,要将之释放掉,否则会导致GDI对象泄漏 5、CreateCompatibleBitmap返回错…...
C++:std::fstream详细介绍
std::fstream 是 C 标准库中的一个类,用于处理文件的输入输出操作。它可以同时进行文件的读和写操作,因此被称为“文件流”(File Stream)。它是 C 输入输出流库 iostream 的一部分,继承了 std::istream 和 std::ostrea…...
ndp协议简介
在IPv6中,ARP(地址解析协议)被替代为邻居发现协议(Neighbor Discovery Protocol,NDP)。NDP是IPv6网络中用于发现邻居节点(相邻设备)的协议,类似于IPv4中的ARP。但与ARP不…...
915DEBUG-obsidianTemplater使用
Templater使用 tp函数不正常显示相应数据 模板使用方式不正确 <% tp.date.now("YYYY-MM-DD") %> 应该被放置在一个被Templater识别为模板的文件中,或者在你使用Templater的插入模板功能时输入。如果只是在一个普通的Markdown文件中直接输入这段代码…...
【Linux篇】权限管理 - 用户与组权限详解
一. 什么是权限? 首先权限是限制人的。人 真实的人 身份角色 权限 角色 事物属性 二. 认识人–用户 Linux下的用户分为超级用户和普通用户 root :超级管理员,几乎不受权限的约束普通用户 :受权限的约束超级用户的命令提示符是#,普通用…...
JWT 在 SaaS 系统中的作用与分布式 SaaS 系统设计的最佳实践
在现代 SaaS(软件即服务) 系统中,随着服务规模的扩大和用户需求的多样化,如何高效、安全地进行用户身份验证、权限控制以及租户隔离,成为了系统架构中的核心问题之一。**JWT(JSON Web Token)**作…...
docker更换容器存储位置
一:原因 今天之前在某个服务器上使用docker搭建的服务突然无法访问了,进入服务器查看发现服务运行正常,但是就是无法使用,然后我这边准备将docker服务重新启动下看看,发现docker服务无法重启,提示内存已满…...
gitlab-cicd部署安装与具体操作
一、安装 本例中是用安装包直接在ubuntu下安装的,也可以用docker镜像。 curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_amd64.rpmrpm -i gitlab-runner_amd64.rpm 安装runner后,需要跟在runner所在服务器安装…...
基于MFC实现的人机对战五子棋游戏
基于MFC实现的人机对战五子棋游戏 1、引言 此报告将详细介绍本次课程设计的动机、设计思路及编写技术的详细过程,展现我所学过的C知识以及我通过本次课程设计所学到例如MFC等知识。在文档最后我也会记录我所编写过程遇到的问题以及解决方案。 1.1 背景 五子棋是…...
mac电脑多个ssh keys共存
一、同一台电脑,不同域名的git仓库为什么要设置不同的ssh keys? 每个git仓库通常要求使用唯一的ssh key,以防止权限冲突和安全问题。 权限控制:每个git仓库的权限是独立的,使用不同的ssh keys可以更好的管理权限&…...
Elasticsearch数据迁移(快照)
1. 数据条件 一台原始es服务器(192.168.xx.xx),数据迁移后的目标服务器(10.2.xx.xx)。 2台服务器所处环境: centos7操作系统, elasticsearch-7.3.0。 2. 为原始es服务器数据创建快照 修改elas…...
【Java-数据结构篇】Java 中栈和队列:构建程序逻辑的关键数据结构基石
我的个人主页 我的专栏:Java-数据结构,希望能帮助到大家!!!点赞❤ 收藏❤ 一、引言 1. 栈与队列在编程中的角色定位 栈和队列作为两种基本的数据结构,在众多编程场景中都有着独特的地位。它们为数据的有序…...
使用ensp搭建内外互通,使用路由跨不同vlan通信。
1.网络拓扑图 2.规则 (1)允许 (自己)ping通内外网,内外网随便一个pc就可以. (2) 允许(电信)ping通内外网,内外网随便一个pc就可以 (时间问题不做…...
URDF 发布者
URDF 发布者 #! /usr/bin/env python3 import rclpy from rclpy.node import Node import rclpy.parameter from sensor_msgs.msg import JointState from rcl_interfaces.msg import SetParametersResultimport threading import timeclass RotateWheelNode(Node):def __init…...
用于目标检测的集中式特征金字塔
摘要 https://arxiv.org/pdf/2210.02093 视觉特征金字塔在多种应用中已展现出其在有效性和效率方面的优越性。然而,现有方法过度关注层间特征交互,却忽略了经验证明有益的层内特征调节。尽管一些方法试图借助注意力机制或视觉变换器来学习紧凑的层内特征表示,但它们忽略了…...
微信小程序购物车全选反选功能以及合计
微信小程序基于Vant Weapp的购物车功能实现 1、单选 使用微信小程序原生表单组件checkbox和checkbox-group 注意:checkbox原生不支持bind:change事件,checkbox-group支持 <checkbox-group bindchange"handleCheck"><checkbox val…...
大数据新视界 -- Hive 数据湖集成与数据治理(下)(26 / 30)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
【基础数学二】整除,最大公约数约数,最小公倍数
整除 在数论中,一个整数 a a a 能够被另一个整数 d d d 整除,记做 d ∣ a d|a d∣a。 整除的性质: 如果 d ∣ a d | a d∣a,则对于任意整数 k k k 有 d ∣ k a d | ka d∣ka。如果 d ∣ a d|a d∣a 并且 d ∣ b d|b d∣…...
【lua语言基础(四)】IO模型以及补充知识
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:lua从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多lua语言的知识 🔝🔝 lua语言基础 1. 简单的IO模型2…...
Python知识分享第十九天-网络编程
网络编程 概述用来实现 网络互联 不同计算机上运行的程序间可以进行数据交互也叫Socket编程 套接字编程 三要素IP地址概述设备在网络中的唯一标识分类IPV4城域网13广域网22局域网31IPV6八字节 十六进制相关dos命令查看ipwindows: ipconfigmac和linux: ifconfig测试网络ping 域…...