Python学习路线
以下是一个Python详细学习路线:
一、入门阶段(第1 - 2个月)
-
环境搭建与基础语法
-
安装与配置:
-
从Python官方网站(Download Python | Python.org)下载适合自己操作系统的Python版本并进行安装。
-
配置环境变量,确保在命令行(Windows中的命令提示符或PowerShell,Linux和macOS中的终端)中可以方便地使用
python
和pip
命令。
-
-
基础语法学习:
-
数据类型:掌握基本数据类型,如整数(
int
)、浮点数(float
)、字符串(string
)、布尔值(bool
)。了解它们的表示方法、运算规则和相互转换。例如,a = 10
(整数),b = 3.14
(浮点数),c = "Hello, World!"
(字符串)。 -
变量与赋值:学会声明变量并赋值,理解变量的命名规则(只能包含字母、数字和下划线,且不能以数字开头)。例如,
name = "John"
,并且知道如何修改变量的值。 -
控制流语句:
-
if - else语句:用于条件判断。例如,
if a > 5: print("a大于5") else: print("a小于等于5")
。 -
for循环:用于遍历序列(如列表、字符串等)。例如,
for i in range(5): print(i)
用于打印0到4这5个数字,for char in "Python": print(char)
用于逐个打印字符串中的字符。 -
while循环:在条件为真时重复执行代码块。例如,
count = 0; while count < 3: print(count); count += 1
。
-
-
函数基础:学习函数的定义和调用。函数定义的基本格式为
def function_name(parameters): # 函数体; return value
。例如,def add(a, b): return a + b
,并学会如何调用这个函数。
-
-
-
标准库初步使用
-
输入输出操作(
input
和print
):-
print
函数用于输出信息到控制台,了解其基本用法,如print("Hello")
,以及如何格式化输出,如print("The value of a is %d" % a)
(在Python 3.6以前常用)或print(f"The value of a is {a}")
(Python 3.6及以后的f - string格式化)。 -
input
函数用于从用户获取输入,例如user_input = input("Please enter your name: ")
。
-
-
数学运算(
math
模块):-
导入
math
模块,使用其中的数学函数,如math.sqrt()
用于计算平方根,math.pow()
用于计算幂次方。例如,import math; print(math.sqrt(9))
。
-
-
字符串处理(
string
模块):-
了解
string
模块提供的常量(如string.ascii_letters
、string.digits
)和方法(如string.capitalize()
用于将字符串的首字母大写),虽然在实际应用中,字符串本身的方法(如str.upper()
)更常用。
-
-
二、进阶阶段(第3 - 5个月)
-
数据结构深入学习
-
列表(
list
):-
深入理解列表的特性,包括可变长度、元素可以是不同类型。学会列表的基本操作,如索引访问(
my_list[0]
)、切片(my_list[1:3]
)、添加元素(my_list.append()
、my_list.insert()
)、删除元素(my_list.remove()
、my_list.pop()
)和排序(my_list.sort()
)。 -
列表推导式是Python的一个强大特性,学习如何使用它来简洁地创建和处理列表。例如,
squared_numbers = [i * i for i in range(10)]
用于创建一个包含0到9的平方数的列表。
-
-
元组(
tuple
):-
掌握元组的不可变性,理解在什么情况下适合使用元组。元组的基本操作包括索引访问和切片,与列表类似。例如,
my_tuple = (1, 2, 3); print(my_tuple[1])
。
-
-
字典(
dict
):-
学习字典的键值对存储方式,如何创建、访问(通过键来访问值,如
my_dict["key"]
)、添加和删除键值对。例如,my_dict = {"name": "John", "age": 30}; my_dict["city"] = "New York"
。 -
掌握字典的遍历方法,包括遍历键(
for key in my_dict.keys()
)、遍历值(for value in my_dict.values()
)和遍历键值对(for key, value in my_dict.items()
)。
-
-
集合(
set
):-
理解集合的无序性和元素唯一性。学会创建集合(可以使用花括号
{}
或set()
函数),进行集合的基本运算,如交集(&
)、并集(|
)、差集(-
)。例如,set1 = {1, 2, 3}; set2 = {3, 4, 5}; print(set1 & set2)
。
-
-
-
函数进阶与模块
-
函数参数传递:
-
深入理解函数参数的传递方式,包括值传递(对于不可变对象,如整数、字符串)和引用传递(对于可变对象,如列表、字典)。例如,在函数中修改可变对象会影响到外部的对象。
-
学习默认参数、可变参数(
*args
)和关键字参数(* * kwargs
)的使用。例如,def func(a, b = 1, *args, * * kwargs): # 函数体
。
-
-
函数返回值与嵌套函数:
-
掌握函数返回多个值的方法,返回值实际上是一个元组。例如,
def get_name_and_age(): return "John", 30
。 -
学习嵌套函数的概念和使用,内部函数可以访问外部函数的变量(闭包)。例如,
def outer(): x = 10; def inner(): print(x); inner(); return inner
。
-
-
模块的创建与使用:
-
学习如何创建自己的模块,将相关的函数和变量组织在一个
.py
文件中。例如,创建一个名为my_module.py
的文件,其中包含函数和变量,然后在其他文件中使用import my_module
来导入并使用。 -
理解模块的搜索路径,如何添加自定义的模块搜索路径。了解
__name__
变量在模块中的作用,特别是在判断模块是作为主程序运行还是被导入时的区别。
-
-
-
文件操作与异常处理
-
文件读取与写入:
-
使用
open()
函数打开文件,掌握不同的文件打开模式(如r
只读、w
写入、a
追加、rb
二进制只读等)。例如,file = open("test.txt", "r"); content = file.read(); file.close()
用于读取文件内容,file = open("new_file.txt", "w"); file.write("Hello, World!"); file.close()
用于写入文件。 -
学习使用
with
语句来自动管理文件资源,避免忘记关闭文件导致的资源泄露。例如,with open("test.txt", "r") as file: content = file.read()
。
-
-
异常处理机制:
-
学习
try - except - finally
语句的使用,用于捕获和处理程序执行过程中的异常。例如,try: result = 10 / 0 except ZeroDivisionError: print("除数不能为0") finally: print("这部分代码总会执行")
。 -
理解不同类型的常见异常,如
FileNotFoundError
(文件未找到)、TypeError
(类型错误)、IndexError
(索引超出范围)等,以及如何根据具体情况进行针对性的异常处理。
-
-
三、高级阶段(第6 - 9个月)
-
面向对象编程(OOP)
-
类与对象基础:
-
学习类的定义,包括类的属性(变量)和方法(函数)。例如,
class Person: def __init__(self, name, age): self.name = name; self.age = age; def say_hello(self): print(f"Hello, my name is {self.name} and I'm {self.age} years old.")
。 -
理解对象的创建和实例化过程,通过
person = Person("John", 30)
创建一个Person
类的对象,并调用对象的方法,如person.say_hello()
。
-
-
继承与多态:
-
学习继承的概念,如何创建子类并继承父类的属性和方法。例如,
class Student(Person): def __init__(self, name, age, grade): super().__init__(name, age); self.grade = grade
,Student
类继承了Person
类的属性和方法,并添加了自己的属性grade
。 -
理解多态的概念,通过重写父类的方法实现不同的行为。例如,在
Student
类中重写say_hello
方法,使其包含学生的年级信息。
-
-
类的高级特性:
-
学习类的特殊方法(魔法方法),如
__str__
(用于返回对象的字符串表示)、__len__
(用于返回对象的长度相关信息)等。例如,在Person
类中定义__str__
方法,def __str__(self): return f"{self.name}, {self.age}"
,这样在打印对象时会得到更友好的输出。 -
理解类的静态方法和类方法的区别与使用场景。静态方法不需要实例对象就可以调用,类方法可以访问类的属性但不需要实例对象,它们都通过
@staticmethod
和@classmethod
装饰器来定义。
-
-
-
高级数据处理与算法
-
数据处理与分析(
pandas
模块):-
学习
pandas
库的基本概念,包括Series
(一维数据结构)和DataFrame
(二维数据结构,类似表格)。例如,import pandas as pd; data = {'name': ['John', 'Alice'], 'age': [30, 25]}; df = pd.DataFrame(data)
创建一个简单的DataFrame
。 -
掌握
pandas
的常用操作,如数据筛选(df[df["age"] > 28]
)、数据排序(df.sort_values(by = "age")
)、数据分组与聚合(df.groupby("gender").mean()
)等,用于数据的清洗、转换和分析。
-
-
数据可视化(
matplotlib
和seaborn
模块):-
学习
matplotlib
库的基本用法,包括绘制简单的图表,如折线图、柱状图、散点图等。例如,import matplotlib.pyplot as plt; x = [1, 2, 3]; y = [4, 5, 6]; plt.plot(x, y); plt.show()
绘制一条折线图。 -
了解
seaborn
库,它是基于matplotlib
的高级数据可视化库,能够快速创建更美观、更具信息量的统计图表,如热力图、箱线图等。
-
-
算法与数据结构(基础部分):
-
学习一些基础的算法和数据结构,如排序算法(冒泡排序、快速排序等)和搜索算法(线性搜索、二分搜索)。理解它们的基本原理、时间复杂度和空间复杂度。例如,实现一个简单的冒泡排序算法来对列表进行排序。
-
-
-
并发编程与网络编程(可选)
-
并发编程(
threading
和multiprocessing
模块):-
学习线程(
threading
)和进程(multiprocessing
)的基本概念,理解它们在并发执行任务中的作用。例如,使用threading.Thread
类创建线程,import threading; def task(): print("这是一个线程任务"); thread = threading.Thread(target = task); thread.start()
。 -
掌握线程和进程的同步与互斥机制,如使用锁(
Lock
)来避免多个线程同时访问共享资源导致的数据不一致问题。
-
-
网络编程(
socket
模块):-
学习网络编程的基本概念,包括IP地址、端口号、TCP和UDP协议。通过
socket
模块创建简单的网络应用,如TCP服务器和客户端。例如,创建一个简单的TCP服务器来接收客户端发送的数据。 -
了解更高层次的网络编程库,如
urllib
用于发送HTTP请求,requests
库(第三方库)可以更方便地进行HTTP请求操作,用于网络爬虫等应用场景。
-
-
四、实践与拓展阶段(第10 - 12个月及以后)
-
项目实践与框架学习
-
小型项目实践:
-
选择一些小型项目进行实践,如命令行工具开发、文件处理工具、简单的数据分析项目等。通过实际项目,将所学的知识进行综合运用,加深对Python的理解和掌握。例如,开发一个命令行文件加密/解密工具,涉及文件读取、加密算法(如AES)、命令行参数解析等知识。
-
在实践过程中,注重代码的规范性和可读性,学习代码的设计模式,如单例模式、工厂模式等,提高代码质量。
-
-
Web框架学习(如
Flask
或Django
):-
学习Web框架的基本概念和工作原理。以
Flask
为例,学习如何安装和配置Flask
,创建简单的Web应用,包括定义路由(@app.route
)和视图函数(处理HTTP请求并返回响应)。例如,from flask import Flask; app = Flask(__name__); @app.route("/") def hello(): return "Hello, World!"; app.run()
。 -
深入学习
Flask
或Django
的高级特性,如模板引擎(用于生成动态网页)、数据库集成(如Flask - SQLAlchemy
或Django - ORM
)、用户认证与授权等。通过开发一个完整的Web应用,如简单的博客系统或任务管理系统,掌握Web框架的应用。
-
-
-
数据库操作与机器学习基础(可选)
-
数据库操作(
sqlite3
或MySQL
等):-
学习关系型数据库的基本概念,如表格、字段、记录、主键、外键等。以
sqlite3
为例,学习如何使用Python操作数据库,包括创建数据库连接、创建表、插入数据、查询数据、更新数据和删除数据等操作。例如,import sqlite3; conn = sqlite3.connect("test.db"); cursor = conn.cursor(); cursor.execute("CREATE TABLE users (id INT, name TEXT)"); conn.commit(); conn.close()
。 -
对于更复杂的数据库(如MySQL或PostgreSQL),学习相应的数据库驱动(如
mysql - connector - python
或psycopg2
)的使用,以及数据库的高级特性,如事务处理、索引优化等。
-
-
机器学习基础(
scikit - learn
模块):-
学习机器学习的基本概念,如监督学习、非监督学习、训练集、测试集等。了解一些常见的机器学习算法,如线性回归、决策树、聚类算法等。通过
scikit - learn
库,学习如何加载数据集、训练模型、评估模型性能。例如,使用线性回归模型进行简单的房价预测。 -
理解机器学习在实际应用中的流程,包括数据预处理(如数据归一化、特征选择)、模型选择与调优(如交叉验证、超参数调整)等环节。
-
-
-
持续学习与技术拓展
-
关注行业动态与新技术:
-
持续关注Python社区的发展动态,如新的库、框架和工具的发布。关注相关领域的技术趋势,如人工智能、大数据、云计算等与Python的融合应用。
-
学习新兴技术,如Python在容器化(如与Docker结合)、自动化运维(如Ansible插件开发)、区块链(如智能合约开发)等领域的应用,拓宽技术视野。
-
-
参与开源项目与技术交流:
-
参与开源项目,在GitHub等平台上寻找感兴趣的Python开源项目,阅读代码、提交问题或者贡献代码。通过参与开源项目,可以学习到优秀的代码结构、设计模式和开发流程。
-
参加技术交流活动,如Python用户组(PyUG)、技术论坛、线上线下的技术分享会等。与其他Python开发者交流经验、分享见解,提升自己的技术水平和沟通能力。
-
-
相关文章:
Python学习路线
以下是一个Python详细学习路线: 一、入门阶段(第1 - 2个月) 环境搭建与基础语法 安装与配置: 从Python官方网站(Download Python | Python.org)下载适合自己操作系统的Python版本并进行安装。 配置环境变…...
Web Services 简介
Web Services 简介 1. 引言 Web Services 是一种基于网络的软件服务,它允许不同的应用程序在互联网上相互通信和交互。这种技术是基于开放的互联网标准,如HTTP、XML、SOAP和WSDL,使得不同平台和编程语言的应用程序能够轻松地实现互操作性。Web Services 的出现,极大地推动…...
option api compose api
option api & compose api <script setup> import { ref, computed } from vue; // 原始数据 const data ref([ { position: { x: 1, y: 2 } }, { position: { x: 3, y: 4 } }, { position: { x: 5, y: 6 } } ]); // 数据转换函数 const convertData …...
tcpdump的常见方法
详解tcpdump的使用方法:网络数据包捕获与分析 tcpdump是一个功能强大的命令行工具,用于捕获和分析通过网络接口传输的数据包。它广泛应用于网络故障诊断、网络安全监控和协议分析等领域。本文将详细介绍tcpdump的使用方法,包括安装、基本命令…...
【C语言】可移植性陷阱与缺陷(四):字符是有符号整数还是无符号整数
在 C 语言中,字符类型(char)是一个字节大小的整数类型,但它可以被编译器解释为有符号整数或无符号整数,这是一个容易导致可移植性问题的重要因素。这种解释的不确定性可能会在程序的逻辑、比较运算和数据处理等多个方面引发错误。 一、字符类型的默认行为 根据C语言标准…...
[Linux]进程间通信-管道
目录 1. 进程间通信 2.父子进程之间的通信 3.匿名管道 匿名管道的创建 管道读写的情况 管道的5种特性 4.命名管道 指令级 命名管道原理 代码级 读取端 1. 进程间通信 当我们有两个进程操作数据库的时候,一个进程负责写入操作,一个进…...
设置开机自启动的应用
设置开机自启动的应用 step1:按住ShiftctrlEsc step2:找到启动应用 step3:鼠标到启动那里,右键就可以禁用了...
QQ长截屏
QQ长截屏 第一步:CtrlAltA 第二步:点击剪刀之后,再滑动滚轮就可以了。 展示...
38 Opencv HOG特征检测
文章目录 HOGDescriptor 构造函数setSVMDetector 设置支持向量机(SVM)检测器,用于目标检测。compute 用于计算图像区域的HOG描述符。detectMultiScale 多尺度检测目标。示例 HOGDescriptor 构造函数 HOGDescriptor(); HOGDescriptor(const S…...
Segment Anything论文详细翻译【Part2:引言Introduction】
目录 写在前面 Introduction 第1段 第2段 第3段 第4段 第5段 第6段 第7段 第8段 第9段 第10段 第11段 第12段 Figure2 关键特点 图中具体内容 图例说明 写在前面 为啥要写这篇文章?因为找不到一篇写的特别好的【翻译并仔细解释】文章。网上大多千…...
Mac中配置Node.js前端vscode环境(第二期)
核心组件:vscode、谷歌浏览器、Node.js(重点)、git 一、Node.js安装(nvm安装) 点击macos中的终端,保持bash,而不是zsh 若为zsh,则可在终端中使用下面命令变成bash chsh -s /bin/…...
基于COT(Chain-of-Thought Prompt)的教学应用:如何通过思维链提示提升模型推理能力
引言 随着人工智能技术的快速发展,大型语言模型(LLMs)在自然语言处理领域展现出了强大的能力。然而,面对复杂的推理任务时,模型的表现往往不尽如人意,尤其是在需要多步逻辑推导的场景中。为了应对这一挑战…...
Python Notes 1 - introduction with the OpenAI API Development
Official document:https://platform.openai.com/docs/api-reference/chat/create 1. Use APIfox to call APIs 2.Use PyCharm to call APIs 2.1-1 WIN OS.Configure the Enviorment variable #HK代理环境,不需要科学上网(价格便宜、有安全风险&#…...
MySQL图形化界面工具--DataGrip
之前介绍了在命令行进行操作,但是不够直观,本次介绍图形化界面工具–DataGrip。 安装DataGrip 官网链接:官网下载链接 常规的软件安装流程。 参考链接:DataGrip安装 使用DataGrip 添加数据源: 第一次使用最下面会…...
WPF+Prism View与ViewModel绑定
1、开发环境,Win10VS2022.NET8Prism.DryIoc(9.0.537)或Prism.Unity。 2、通过NuGet安装Prism.DryIoc(9.0.537)或Prism.Unity。 2.1、创建ViewModels文件夹用于存放ViewModel文件、创建Views文件夹存放View文件。 将…...
关于Zotero
1、文献数据库: Zotero的安装 Zotero安装使用_zotero只能安装在c盘吗-CSDN博客 2、如何使用zotero插件 我刚下载的时候就结合使用的是下面的这两个博主的分享,感觉暂时是足够的。 Zotero入🚪基础 - 小红书 Green Frog申请easyscholar密钥…...
Luma AI 简单几步生成视频
简单几步生成视频 登录我们的 AceDataPlatform 网站,按照下图所示即可生成高质量的视频,同时,我们也提供了简单易用的 API 方便集成调用,可以查看 Luma API了解详情 技术介绍 我们使用了 Luma 的技术,实现了上面的图…...
从索尼爱立信手机打印短信的简单方法
昨天,我买了一部新手机来代替我的旧索尼爱立信Xperia,但手机上有很多珍贵的短信,是我男朋友发来的,我不想失去它们。然后我尝试打印它们,但我无法从我的索尼爱立信手机中取出它们。您有什么从索尼爱立信手机打印短信的…...
深入浅出梯度下降算法:快速抵达函数最小值的方法
引言 梯度是机器学习和优化领域中不可或缺的概念,它为我们提供了理解和调整多维空间中函数行为的工具。本文将详细介绍梯度的定义、性质,并通过具体的一元和多元函数案例展示如何使用梯度下降算法找到最佳参数。 一、梯度的基础知识 1.1 定义与计算 梯…...
OPC DA激活报错
报错提示: 解决办法: 查看Missing license keys,根据提示破解...
PyTorch到C++再到 CUDA 的调用链(C++ ATen 层) :以torch._amp_update_scale_调用为例
今天在看pytorch源码,遇到的问题,记录一下 。 source:/lib/python3.10/site-packages/torch/amp/grad_scaler.py torch._amp_update_scale_(_scale,_growth_tracker,found_inf_combined,self._growth_factor,self._backoff_factor,self._growth_interva…...
yolov5核查数据标注漏报和误报
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、误报二、漏报三、源码总结 前言 本文主要用于记录数据标注和模型预测之间的漏报和误报思想及其源码 提示:以下是本篇文章正文内容,…...
C# 设计模式概况
什么是设计模式 大家熟知的GOF23种设计模式,源自《Design Patterns: Elements of Reusable Object-Oriented Software》一书,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著,四人组Gang of Four简称GOF。总结了在面向…...
STM32 NOR FLASH(SPI FLASH)驱动移植(2)
2)FLASH 读取函数 /* * brief 读取 SPI FLASH * note 在指定地址开始读取指定长度的数据 * param pbuf : 数据存储区 * param addr : 开始读取的地址(最大 32bit) * param datalen : 要读取的字节数(最大 65535) * retval 无 */ void norflash_read(uint8_t *pbuf…...
Redis高可用集群部署
根据集群分析和持久化优化方式,这里用docker部署redis分片集群模式并设置为aof-rdb共用方式存储 准备 2核4G及以上服务器;安装好docker环境;配置docker镜像仓库(https://www.ecnfo.com:1443),因为下面镜像是从这个镜像仓库下载的{"builder": {"gc"…...
【玩转23种Java设计模式】行为型模式篇:命令模式
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…...
代码随想录算法【Day10】
今日只做一题,剩下的题后面补 232.用栈实现队列 class MyQueue { public:stack<int> stIn;stack<int> stOut;/** Initialize your data structure here. */MyQueue() {}/** Push element x to the back of queue. */void push(int x) {stIn.push(x);}…...
WKWebView打开pdf文件乱码?各种方案整理。
近期有用户反馈使用我们FinClip SDK运行的小程序,在iOS18.0.1的系统上打开部分pdf文件的时候出现了乱码的现象, 低版本的系统打开没有出现乱码的现象,用电脑打开这个pdf文件也是正常的。经过排查,可能是iOS18的系统对WKWebView进行了调整处理…...
Android中创建ViewModel的几种方法
文章目录 1. 使用 `ViewModelProvider`1.1 在 `Activity` 中创建 `ViewModel`1.2 在 `Fragment` 中创建 `ViewModel`2. 使用 `ViewModelFactory`2.1 创建 `ViewModel` 和 `ViewModelFactory`2.2 在 `Activity` 或 `Fragment` 中使用 `ViewModelFactory`3. 使用 `by viewModels(…...
【C语言】_指针运算
目录 1. 指针-整数 2. 指针-指针 2.1 指针-指针含义 2.2 指针-指针运算应用:实现my_strlen函数 3. 指针的关系运算(大小比较) 1. 指针-整数 联系关于指针变量类型关于指针类型和指针-整数相关知识: 原文链接如下࿱…...
多层设计模式:可否设计各层之间公用的数据定义模块?
在多层程序设计模式中,可以设计一个各层之间公用的数据类型定义模块。这种模块通常被称为“公共模块”或“共享模块”,它包含所有层都需要使用的数据类型定义。这有助于确保数据在不同层之间传递时的一致性和准确性。 以下是一些设计这种公用数据类型定…...
深度学习模型格式转换:pytorch2onnx(包含自定义操作符)
将PyTorch模型转换为ONNX(Open Neural Network Exchange)格式是实现模型跨平台部署和优化推理性能的一种常见方法。PyTorch 提供了多种方式来完成这一转换,以下是几种主要的方法: 一、静态模型转换 使用 torch.onnx.export() t…...
CDPHudi实战-集成spark
[一]使用Spark-shell 1-配置hudi Jar包 [rootcdp73-1 ~]# for i in $(seq 1 6); do scp /opt/software/hudi-1.0.0/packaging/hudi-spark-bundle/target/hudi-spark3.4-bundle_2.12-1.0.0.jar cdp73-$i:/opt/cloudera/parcels/CDH/lib/spark3/jars/; done hudi-spark3.4-bu…...
Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s
前言:纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 官方文档…...
汇编语言与接口技术--跑马灯
一、 实验要求 在单片机开发板的LED灯D1~D8上实现跑马灯。LED与单片机引脚连线电路如下图: 单片机芯片选择AT89C51,晶振频率设为12MHz,操作参考单片机开发板使用说明。跑马灯点亮的时间间隔约为1秒。分别用定时器的模式1和模式2实现。(用P83…...
springcloud篇3-docker需熟练掌握的知识点
docker的原理请参考博文《Docker与Kubernetes》。 一、安装docker的指令 1.1 安装yum工具 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken补充:配置镜像源 注意: yum安装是在线联网下载安装,而很多的资源…...
Unity网络通信相关
Socket 通信一张图搞定 谁提供服务谁绑定端口,建立Listener,写Host...
leetcode 173.二叉搜索树迭代器栈绝妙思路
以上算法题中一个比较好的实现思路就是利用栈来进行实现,以下方法三就是利用栈来进行实现的,思路很好,很简练。进行next的时候,先是一直拿到左边的子树,直到null为止,这一步比较好思考一点,下一…...
模电面试——设计题及综合分析题0x01(含答案)
1、已知某温控系统的部分电路如下图(EDP070252),晶体管VT导通时,继电器J吸合,压缩机M运转制冷,VT截止时,J释放,M停止运转。 (1)电源刚接通时,晶体…...
Linux性能优化-系列文章-汇总
前言 Linux性能优化,涉及了CPU,内存,磁盘,网络等很多方面,一方面涉及的知识面广,同时又要在原理方面掌握一定的深度。所以整理总结了Linux性能优化的一系列文章。当处理Linux性能问题的时候,可…...
仓库叉车高科技安全辅助设备——AI防碰撞系统N2024G-2
在当今这个高效运作、安全第一的物流时代,仓库作为供应链的中心地带,其安全与效率直接关系到企业的命脉。 随着科技的飞速发展,传统叉车作业模式正逐步向智能化、安全化转型,而在这场技术革新中,AI防碰撞系统N2024G-2…...
threejs 安装
参考了threejs官方网站文档安装,上来就是各种报错,最终参考之前大佬发的攻略解决了。过程供大家参考。 官方文档地址如下: three.js docshttps://threejs.org/docs/index.html#manual/en/introduction/Installation 具体参考这篇攻略&#…...
《 C++ 点滴漫谈: 十七 》编译器优化与 C++ volatile:看似简单却不容小觑
摘要 本文深入探讨了 C 中的 volatile 关键字,全面解析其基本概念、典型用途以及在现代编程中的实际意义。通过剖析 volatile 的核心功能,我们了解了它如何避免编译器优化对硬件交互和多线程环境中变量访问的干扰。同时,文章分析了 volatile…...
【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习
文章目录 Section 4:The Vim Help System(Vim 帮助系统)S04L14 Getting Help1 打开帮助系统2 退出帮助系统3 查看具体命令的帮助文档4 查看帮助文档中的主题5 帮助文档间的上翻、下翻6 关于 linewise7 查看光标所在术语名词的帮助文档8 关于退…...
电脑中缺失的nvrtc64_90.dll文件如何修复?
一、文件丢失问题 案例:nvrtc64_90.dll文件缺失 问题分析: nvrtc64_90.dll是NVIDIA CUDA Runtime Compilation库的一部分,通常与NVIDIA的CUDA Toolkit或相关驱动程序一起安装。如果该文件丢失,可能会导致基于CUDA的应用程序&…...
leveldb的DBSequence从哪里来,到哪里去?
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) leveldb数据库的DBSequence从哪里来,到哪里去? 大概的情形是,leveldb的记录初始DBSequence为0,随着记录的增加,记录sequence不断随着增加,并持久化…...
nginx高可用集群搭建
本文介绍nginx高可用集群的搭建。利用keepalived实时检查nginx进程是否存活、keepalived的虚拟ip技术,达到故障转移的目的。终端用户通过访问虚拟ip,感知不到实际发生的故障。架构图如下: 0、环境 Ubuntu:22.04.2 ltsnginx: 1.…...
基于TCP的Qt网络通信
基于TCP的Qt网络通信 项目源码:https://github.com/say-Hai/TcpSocketLearn/tree/QTcpSocket 在标准C没有提供专门用于套接字通信的类,所以只能使用操作系统提供的基于C的API函数,但是Qt就不一样了,它是C的一个框架并且里边提供了…...
MySql---进阶篇(六)---SQL优化
6.1:insert的优化: (1)普通的插入数据 如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。 insert into tb_test values(1,tom); insert into tb_test values(2,cat); insert into tb_test values(3,jerry); 1). 优…...
什么是回归测试?
什么是回归测试? 回归测试被定义为一种软件测试,以确认最近的程序或代码更改没有对现有功能产生不利影响。回归测试只是对已经执行的测试用例的全部或部分选择,重新执行这些用例以确保现有功能正常工作。 进行此测试是为了确保新的代码更改不会对现有…...