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

Python学习——安装配置python环境+入门

        本篇中我们将开始一个新内容的学习:Python

        相比于C++那种强调性能与规范的开发模式,python则是一个强调开发效率的语言。作为解释形语言的一部分,尽管它并没有C++那样极致的性能,但是作为一门胶水语言,python具有很低的学习成本和很高的开发效率,在web、脚本、数据分析、AI领域广泛使用。

        而下图所示的就是最新的2025年8月常用编程语言排行榜。

        接下来就让我们一起来学习这门编程语言吧!。

        相关代码已经上传至作者的个人gitee:楼田莉子/Python 学习喜欢请点个赞谢谢。

python的介绍

        python的来源

        吉多·范罗苏姆(Guido van Rossum) 是一个荷兰程序员(人称龟叔, 名字前三个字母是 Gui)
。龟叔在 1989 年圣诞节的时候(当时 33 岁), 因为在家里待着无聊, 为了打发时间, 开始了 Python 的开发.第一个正式版本发布于 1991 年.

        python的应用

  1. 数据科学与人工智能(AI)

    • 为什么? 拥有无比强大的生态库(NumPy, Pandas, Matplotlib)。在机器学习和深度学习领域,Scikit-learn, TensorFlow, PyTorch 等框架几乎成为了行业标准。

    • 做什么? 数据分析、预测模型、图像识别、自然语言处理(ChatGPT就大量使用Python)、推荐系统等。

  2. Web开发

    • 为什么? 拥有Django(功能全面,好比“开箱即用的航母”)和Flask(轻量灵活,好比“灵活的乐高积木”)等优秀框架。

    • 做什么? 快速构建从个人博客到大型电商平台的各种网站和后端API服务。

  3. 自动化与运维

    • 为什么? 语法简单,编写速度快,被誉为“胶水语言”。

    • 做什么? 写一个简单的脚本,就能自动处理Excel表格、批量重命名文件、自动发送邮件、管理服务器等,将人们从重复性劳动中解放出来。

  4. 网络爬虫

    • 为什么? 库生态丰富,Requests 用于获取网页,BeautifulSoup 和 Scrapy 用于解析数据,非常简单高效。

    • 做什么? 自动化地从网站上收集、分析和存储所需的数据。

  5. 教育与科学计算

    • 为什么? 语法接近自然英语,可读性强,非常适合编程初学者建立逻辑思维。科学家们也常用它来进行模拟和计算。

  6. 其他领域

    • 游戏开发(Pygame)、图形界面(GUI)开发(Tkinter, PyQt)、嵌入式开发(MicroPython)等,也能看到Python的身影。

        python的优缺点

        优点(为什么选择Python?)
  • 👍 语法简单,易学易读: 代码就像在读英语,强制缩进的规则使得代码非常整洁规范,对初学者极其友好。

  • 👍 功能强大,生态丰富: 正如上文所说,它有海量的第三方库(PyPI),你想实现的绝大多数功能,可能都已经有人为你写好了库,“人生苦短,我用Python”正是由此而来。

  • 👍 解释型语言,平台无关: 写好的代码可以在Windows、macOS、Linux等系统上直接运行,无需修改(前提是安装了解释器)。

        缺点(Python的痛点)
  • 👎 运行速度相对较慢: 作为解释型语言,它的执行效率通常低于C++、Java等编译型语言。但这对于大多数现代应用(如网络服务、数据分析)来说并非核心瓶颈,且可以通过使用C库或JIT(即时编译)等技术来优化。

  • 👎 全局解释器锁(GIL): 这限制了Python在多线程环境下的CPU性能,使得多线程并不能充分利用多核CPU。对于CPU密集型的多任务,通常需要通过多进程来解决。

  • 👎 不适合移动端和游戏开发: 在移动应用(iOS/Android)和大型3D游戏开发领域,Python并非主流选择。

搭建python环境

        要想能够进行 Python 开发, 就需要搭建好 Python 的环境.需要安装的环境主要是两个部分:

        运行环境: Python

        开发环境: PyCharm

        安装python

        官网链接:欢迎来到 Python.org

        其中我们会发现有稳定版本和预先版本。推荐稳定版本

        注意: Python 的版本在持续迭代更新中. 同学们看到的版本不一定和我这里完全一致, 但是基本不影响学习使用.

        关于 Python 版本的补充

        现在主流使用的 Python 版本是 Python 3 系列. 但是同学们以后在公司中, 接触到一些比较老的项目, 可能还在使用 Python 2 .

        3 系列 和 2 系列 之间的语法还是存在不小差别的. 我们学习的内容主要是依据 Python 3 系列为主

        下载好后双击安装即可。

        python安装好后可以点击.exe就可以在控制台进行书写

        直接输入

print("hello world");

        可以看到如下效果

        不过这样是不适合做项目的,因此我们需要python的编辑器:pycharm

        安装pycharm

        虽然通过交互式解释器可以执行 Python 代码了, 但是代码写起来并不方便. 就需要更专业的开发工具来编写 Python 代码.

        目前业界常用的 Python 开发工具, 主要有下列选项:

        其中最主流的开发工具就是 PyCharm 和 VS Code 了. 

        两者之间的区别在此

特性PyCharm (专业版)VSCode
定位专业的Python IDE轻量级代码编辑器(通过插件强化)
开箱即用⭐⭐⭐⭐⭐(极致)⭐⭐(需要配置)
资源占用高(重型)低(轻量)
智能补全/导航极强(深度理解Python)很强(依赖Pylance等插件)
多语言支持良好(但核心是Python)极好(一站式解决所有语言)
定制化程度极高(一切皆可配置)
价格社区版免费,专业版付费完全免费

        本期我们来介绍pycharm的安装

        pycharm官网:PyCharm: The only Python IDE you need

        下载安装后双击安装即可

        运行hello world 

        基本配置

        (1)字体大小设置

        PyCharm 默认的字体比较小, 看起来很费眼睛.

        可以设置大一点.选择 File -> Settings

                

        找到 Editor -> Font, 把字体 Size 和 Line height 都适当调整.

        Size 表示字体大小. 数字越大文字越大.

        Line height 表示行高, 数字越大则两行文字之间的间隔就越大.

python的基础语法

        常量和表达式

print(1+2-3)
print(1+2*3)
print(1+2/3)

        结果为:

        形如 1 + 2 - 3 这样是算式, 在编程语言中称为 表达式, 算式的运算结果, 称为 表达式的返回值

其中 1 , 2 , 3 这种称为 字面值常量, + - * / 这种称为 运算符 或者 操作符.

        在之前学习C++的时候我们直到int类型进行触发的时候默认是把小数位取出,比如C/C++中2/3结果为0,但是在python中为0.6666665.这点要注意

        变量

        有的时候, 我们需要进行的计算可能更复杂一些, 需要把一些计算的中间结果保存起来. 这个时候就需要用到 变量.
        变量可以视为是一块能够容纳数据的空间. 这个空间往往对应到 "内存" 这样的硬件设备上.

        

        1、定义变量

int a=10

        创建变量的语句非常简单, 其中

        a 为变量名. 当我们创建很多个变量的时候, 就可以用名字来进行区分.

        = 为赋值运算符, 表示把 = 右侧的数据放到 = 左侧的空间中.

        注意: 变量的名字要遵守一定规则.

        硬性规则(务必遵守)

        变量名由数字字母下划线构成.数字不能开头.

        变量名不能和 "关键字" 重复.

        变量名大小写敏感. num 和 Num 是两个不同的变量名.

        软性规则(建议遵守)

        变量名使用有描述性的单词来表示, 尽量表达出变量的作用
        一个变量名可以由多个单词构成, 长一点没关系, 但是含义要清晰

        变量名含多个单词的时候建议使用驼峰命名法。

#读取变量的值
a = 10
print(a)
#修改变量的值
a = 20
print(a)

        注意: 在 Python 中, 修改变量也是使用 = 运算, 看起来和定义变量没有明显区别.

        2、变量的类型

        变量里面存储的不仅仅是数字, 还可以存储其它种类的数据. 为了区分不同种类的数据, 我们引入了 "类型"这样的概念
        注意: 和 C++ / Java 等语言不同, Python 变量的类型不需要显式指定, 而是在赋值的时候确定的.

        
        整数
a = 10
print(type(a))

      结果:

  

        type()是一个内置函数,可以使用 type 来查看一个变量的类型.
        注意: 和 C++ / Java 等语言不同, Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够大,理论上就可以表示无限大小的数据.

        浮点数
a = 0.5
print(type(a))

        结果为:


        注意: 和 C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型. 但是实际上Python 的 float 就相当于 C++ / Java 的 double, 表示双精度浮点数.

        字符串
a = 'hello'
print(type(a))

        使用 ' ' 或者 " " 引起来的, 称为 字符串. 可以用来表示文本.
        结果为:

        

        注意: 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. 'hello' 和 "hello" 是完全等价的.

        可以使用 len 函数来获取字符串的长度.

#求字符串长度
a = 'hello'
print(len(a))

        结果为:

        

        可以发现,python中字符串是没有'\0'的

        可以使用 + 针对两个字符串进行拼接

#字符串拼接
a = 'hello'
b = 'world'
print(a + b)

        此处是两个字符串相加. 不能拿字符串和整数/浮点数相加.

        字符串作为开发中最常用到的数据类型, 支持的操作方式也是非常丰富的

        布尔类型

        布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假).

        PS: 布尔类型也是数学上的一个概念. 我们初中就学过一个概念叫做 "命题" , 进一步的就可以判定命题的真假.

a = True
print(type(a))
b = False
print(type(b))

        结果为:

        

        3、容器类型

        python中也存在类似于C++的容器类型

C++ STL 容器Python 等效类型核心功能与特点
std::vectorlist动态数组 。支持索引访问、追加(append)、插入(insert)、弹出(pop)。与vector不同,Python列表可存放不同类型对象
std::listcollections.deque双端队列。适合在队列两端进行高效的插入和删除(时间复杂度O(1)),但在中间位置的操作效率相对较低。
std::dequecollections.deque双端队列。同样适用于在队列两端进行高效的插入和删除。
std::stacklist (利用方法模拟)。通常使用列表的append()(压栈)和pop()(弹栈)来模拟后进先出(LIFO)的栈行为。
std::queuecollections.deque队列。使用dequeappend()(入队)和popleft()(出队)来模拟先进先出(FIFO)的队列行为。
std::priority_queueheapq (模块)优先队列)。heapq是一个基于列表的二叉堆模块,提供最小堆实现。使用heapq.heappush()heapq.heappop()等方法操作。
std::setset无序集合 。存储唯一不可变的元素,支持交集(&)、并集(|)、差集(-)等数学运算 。
std::multisetcollections.Counter多重集合(或计数器)。Counterdict的子类,用于计数可哈希对象。它自动处理元素的计数,非常适合需要统计元素频率的场景。
std::mapdict字典关联数组)。存储键值对(key-value pairs),键必须是可哈希的类型(通常为不可变类型)。
std::unordered_mapdict字典。在Python中,普通的dict自Python 3.7起就保持插入顺序 ,但其本质是通过哈希表实现,因此查找、插入、删除操作的平均时间复杂度为O(1)。
std::unordered_setset无序集合。如前所述,Python的set是基于哈希表实现的无序集合,用于存储唯一元素 。

        为什么要有这么多类型?

        (1) 类型决定了数据在内存中占据多大空间.

        例如 float 类型在内存中占据 8 个字节.

        PS: 计算机里面使用二进制来表示数据. 也就是每个位只能表示 0 或者 1.

        1 个二进制位, 就称为是一个 "比特", 8 个二进制位, 就称为一个 "字节" (Byte)

        一个 float 变量在内存中占据 8 个字节空间, 也就是 64 个二进制位.

        我的电脑有 16GB 的内存空间, 也就是一共有 1024 * 1024 * 1024 * 8 这么多的二进制位.

        (2) 类型其实约定了能对这个变量做什么样的操作.

        例如 int / float 类型的变量, 可以进行 + - * / 等操作

        而 str 类型的变量, 只能进行 + (并且行为是字符串拼接), 不能进行 - * / , 但是还能使用 len 等其他操作。

        总结: 类型系统其实是在对变量进行 "归类". 相同类型的变量(数据) 往往具有类似的特性和使用规则.

        动态类型特性

        在 Python 中, 一个变量是什么类型, 是可以在 "程序运行" 过程中发生变化的. 这个特性称为 "动态类型"

a = 10
print(type(a))
a = 'hello'
print(type(a))

        结果为:

        我们观察到,在程序执行过程中, a 的类型刚开始是 int, 后面变成了 str.

        C++/Java 这样的语言则不允许这样的操作. 一个变量定义后类型就是固定的了. 这种特性则称为 "静态类型".

        动态类型特性是一把双刃剑.

        对于中小型程序, 可以大大的解约代码量(比如写一段代码就可以同时支持多种类型).

        对于大型程序, 则提高了模块之间的交互成本. (程序猿 A 提供的代码难以被 B 理解).

        注释

        注释是一种特殊的代码, 它不会影响到程序的执行, 但是能够起到解释说明的作用, 能够帮助程序猿理解程序代码的执行逻辑.

        PS: 写代码是一件比较烧脑的事情, 读代码同样也非常烧脑. 相比于一板一眼的代码, 一些口语化的描述能更好的帮助程序猿理解程序

        注释的语法

        (1) 注释行

使用 # 开头的行都是注释

# 这是一行注释.

        (2) 文档字符串

        使用三引号引起来的称为 "文档字符串", 也可以视为是一种注释.

        可以包含多行内容,

        一般放在 文件/函数/类 的开头. """ 或者 ''' 均可 (等价).

"""
这是文档字符串
这是文档字符串
"""

        输入输出

        程序需要和用户进行交互.

        用户把信息传递给程序的过程, 称为 "输入".程序把结果展示给用户的过程, 称为 "输出".

        输入输出的最基本的方法就是控制台. 用户通过控制台输入一些字符串, 程序再通过控制台打印出一些字符串.

        输入输出的最常见方法是图形化界面. 如我们平时用到的 QQ, 浏览器, steam 等, 都不需要用户输入命令,而只是通过鼠标点击窗口点击按钮的方式来操作.

        控制台输出        

        python中我们用print进行输出

print('hello')

        实际运用中我们通常需要多种类型输出

num = 10
print(f'num = {num}')

        注意:

        使用 f 作为前缀的字符串, 称为 f-string

        里面可以使用 { } 来内嵌一个其他的变量/表达式.

        控制台输入

        python中可以使用input进行控制台输入

num = 0
num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')

        

        注意:

        input 的参数相当于一个 "提示信息", 也可以没有.

        input 的返回值就是用户输入的内容. 是字符串类型.

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
print(f'a + b = {a + b}')

        

        此处为字符串拼接,如果要计算要先转换类型

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')

        

        运算符

        算术运算符

运算符名称功能描述示例结果
+加法对两个操作数进行相加5 + 38
-减法从左操作数减去右操作数10 - 46
*乘法将两个操作数相乘7 * 642
/除法左操作数除以右操作数,返回浮点数15 / 43.75
//整除左操作数除以右操作数,返回整数部分15 // 43
%取模左操作数除以右操作数,返回余数15 % 43
**幂运算左操作数的右操作数次幂2 ** 38
+ (一元)正号保持操作数的符号不变+55
- (一元)负号改变操作数的符号-5-5

        注意1: / 中不能用 0 作为除数. 否则会 抛出异常

        异常 是编程语言中的一种常见机制, 表示程序运行过程中, 出现了一些 "意外情况", 导致程序不能继续往下执行了.

        注意2: ** 是求乘方. 不光能算整数次方, 还能算小数次方

print(4 ** 2)    #16
print(4 ** 0.5)    #2


        注意3: // 是取整除法(也叫地板除). 整数除以整数, 结果还是整数(舍弃小数部分, 并向下取整. 不是四舍五入

print(7 // 2) #3
print(-7 // 2)#-4

        关系运算符

运算符名称功能描述示例结果
==等于检查两个操作数的值是否相等5 == 5True
!=不等于检查两个操作数的值是否不相等5 != 3True
>大于检查左操作数是否大于右操作数5 > 3True
<小于检查左操作数是否小于右操作数5 < 3False
>=大于等于检查左操作数是否大于或等于右操作数5 >= 5True
<=小于等于检查左操作数是否小于或等于右操作数5 <= 3False
is对象标识相等检查两个操作数是否引用同一个对象a is b取决于对象标识
is not对象标识不等检查两个操作数是否引用不同对象a is not b取决于对象标识

        (1) 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False
        (2) 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较.

a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

        结果为:

        

        (3) 对于浮点数来说, 不要使用 == 判定相等.

print(0.1 + 0.2 == 0.3)

        结果为:

        
        注意: 浮点数在计算机中的表示并不是精确的! 在计算过程中, 就容易出现非常小的误差

print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)

        

       正确的比较方式: 不再严格比较相等了, 而是判定差值小于允许的误差范围

a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)

        实际工程实践中, 误差在所难免, 只要保证误差在合理范围内即可

        逻辑运算符

运算符名称功能描述示例结果计算规则
and逻辑与如果两个操作数都为真,则结果为真True and FalseFalse返回第一个假值或最后一个真值
or逻辑或如果任一操作数为真,则结果为真True or FalseTrue返回第一个真值或最后一个假值
not逻辑非反转操作数的逻辑状态not TrueFalse返回操作数的相反布尔值

        特殊写法

        a < b and b < c 这个操作等价于 a < b < c . 这个设定和大部分编程语言都不相同

        关于短路求值

        和其他编程语言类似, Python 也存在短路求值的规则.

        对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行.对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行.

print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)

        结果为:

        赋值运算符

运算符名称功能描述示例等价于
=简单赋值将右操作数的值赋给左操作数x = 5x = 5
+=加法赋值将右操作数加到左操作数x += 3x = x + 3
-=减法赋值从左操作数减去右操作数x -= 3x = x - 3
*=乘法赋值将左操作数乘以右操作数x *= 3x = x * 3
/=除法赋值将左操作数除以右操作数x /= 3x = x / 3
//=整除赋值将左操作数整除右操作数x //= 3x = x // 3
%=取模赋值将左操作数对右操作数取模x %= 3x = x % 3
**=幂赋值将左操作数的右操作数次幂x **= 3x = x ** 3
&=按位与赋值将左操作数与右操作数按位与x &= 3x = x & 3
|=按位或赋值将左操作数与右操作数按位或x |= 3x = x | 3
^=按位异或赋值将左操作数与右操作数按位异或x ^= 3x = x ^ 3
<<=左移位赋值将左操作数左移右操作数指定的位数x <<= 2x = x << 2
>>=右移位赋值将左操作数右移右操作数指定的位数x >>= 2x = x >> 2

        注意: 像 C++ / Java 中, 存在 ++ -- 这样的自增/自减运算符. Python 中则不支持这种运算. 如果需要使用, 则直接使用 += 1 或者 -= 1

        ++ -- 最大的问题就是容易分不清前置和后置的区别. 这一点 Python 语法在设计的时候就进行

了规避, 避免出现这种不直观, 并且容易混淆的语法.

科普:字符串比较大小是按照“字典序”比的

        什么是“字典序”?

字典序(Lexicographical Order),又称词典序字母序,是一种基于字符在特定字符集(如ASCII、Unicode)中出现的先后顺序来比较字符串大小的方法。

它的核心规则可以概括为:从左到右,逐个字符比较,直到分出大小,或直到一个字符串结束。   

        字典序的详细比较规则

我们可以将比较过程分解为以下几步,这个表格清晰地展示了整个决策流程:

比较步骤规则描述示例:比较 "apple" 和 "banana"
1. 逐字符比较从两个字符串的第一个字符开始,逐个比较对应位置上的字符。比较第1位:'a' vs 'b'
2. 决定大小如果在某个位置,两个字符不同,则根据这两个字符的编码值(如ASCII码)大小决定整个字符串的大小。此位置之后的所有字符不再重要。'a' (97) < 'b' (98),所以 "apple" < "banana"
3. 处理前缀如果比较完所有对应字符都相同,但一个字符串比另一个更短,则较短的字符串被视为更小。比较 "cat" 和 "catalog":前3字符相同,但 "cat" 更短,所以 "cat" < "catalog"
4. 完全相等只有当两个字符串长度相同,且每个对应位置的字符都完全一样时,两个字符串才相等。"hello" == "hello"

核心要点与常见误区

  1. 基于编码,而非语言
    比较的依据是字符在计算机中的编码值(如ASCII码、Unicode码点),而不是我们口语中的字母表顺序。

    • 数字 < 大写字母 < 小写字母

      • 例如:'9' (57) < 'A' (65) < 'Z' (90) < 'a' (97) < 'z' (122)

      • 所以:"999" < "ABC" < "abc"

  2. 大小写敏感
    由于大写字母和小写字母的编码值不同,所以字典序是区分大小写的。

    • "A" (65) < "a" (97),所以 "Apple" < "apple"

  3. 长度不是第一优先级
    很多人误以为更长的字符串就更大,这是不对的。只有在前面所有字符都相同的情况下,长度才起作用。

    • "z" (122) > "aa" (97, 97) // 因为第一个字符 'z' > 'a',直接得出结果,不再看长度。

        本期python的内容到这里就结束啦,感谢各位的观看,喜欢请点个赞谢谢

封面图自取:


文章转载自:

http://XSBlLM2q.knzhy.cn
http://ZWuAwIsp.knzhy.cn
http://Dhbom0fY.knzhy.cn
http://qJqf2UBO.knzhy.cn
http://8UQeNCwj.knzhy.cn
http://WRUuN6ps.knzhy.cn
http://tR6Jl9oo.knzhy.cn
http://JV8vgCiC.knzhy.cn
http://AEgy1CFW.knzhy.cn
http://ESGcLjBq.knzhy.cn
http://W8gnPU5H.knzhy.cn
http://hN6qYSea.knzhy.cn
http://BguUnWft.knzhy.cn
http://K8fxr9cD.knzhy.cn
http://QJyIrZ2L.knzhy.cn
http://xxwihhRB.knzhy.cn
http://YASRW3jv.knzhy.cn
http://FsmcMBps.knzhy.cn
http://u4BElsf4.knzhy.cn
http://sRbDcAMW.knzhy.cn
http://4duwB47X.knzhy.cn
http://bBSR3VKt.knzhy.cn
http://zsS8CiBx.knzhy.cn
http://TSIyQ31i.knzhy.cn
http://ojW0JSE2.knzhy.cn
http://zysBxPX5.knzhy.cn
http://BiGMo8uA.knzhy.cn
http://EYhXMBeY.knzhy.cn
http://2jx6TuB1.knzhy.cn
http://qx6FHOMA.knzhy.cn
http://www.dtcms.com/a/371891.html

相关文章:

  • IP校验和算法:从网络协议到SIMD深度优化
  • CentOS7 Hive2.3.8 安装图文教程
  • 如何利用 ChatGPT 辅助写作
  • 《从iptables到ipvs:云原生网络转发的性能拐点突破》
  • centos系统apache支持php配置
  • PyQt数字转大写金额GUI工具开发及财务规范实现
  • 家长沉迷游戏刷剧对儿童学习体验的影响:儿童教育心理学视角分析
  • 环状肽药物发现新路径:DNA 编码文库技术(DELT)的突破与挑战
  • 基于蚁群算法的量子电路调度研究(Matlab平台)
  • Photoshop图层间的关系
  • Axure RP 9 最新版安装包+安装步骤Win系统适用(附安装包)
  • 【PS2025全网最新版】稳定版PS2025保姆级下载安装详细图文教程(附安装包)(Adobe Photoshop)
  • FLINK:水位线的介绍
  • MySQL高级功能:窗口函数
  • 换手率及使用Python获取换手率数据
  • 炉米Lumi:字节跳动推出的AI图像模型分享社区
  • 计算机网络学习(六、应用层)
  • JavaSE 数组从入门到面试全解析
  • 游戏中的设计模式——第二篇 单例模式
  • 【论文阅读】自我进化的AI智能体综述
  • 系统分析师考试备考全面解析
  • 现代C++:C++和现代C++
  • 开始 ComfyUI 的 AI 绘图之旅-图生图之局部重绘(三)
  • 函数合集(1)
  • MySQL高可用方案解析:从复制到云原生
  • Python自学12 — 函数和模块
  • 腾讯云TDSQL-C 与传统MySQL对比
  • docker build命令及参数介绍
  • 老题新解|同行列对角线的格
  • RabbitMQ之死信队列