Skip to content

python+AI

2026.3: python + AI 未来三年学习规划(暂)

python编程和工程基础

python的特点

Python仅包含33个关键字、7种核心数据类型,语法规则简洁直观,接近自然语言。
同样的功能实现,Python代码量仅为Java的1/5,C++的1/10,极大降低了入门门槛。

Python还拥有庞大的标准库和第三方库生态:

  • 数据处理:Numpy、Pandas
  • 可视化:Matplotlib、Seaborn
  • 机器学习:Scikit-learn、TensorFlow
  • Web开发:Django、Flask
  • 自动化:Selenium(不太好用哈哈哈哈)、PyAutoGUI

Python优缺点:

优点:

  • 简洁性:代码可读性极高,专注解决问题而非语言本身。
  • 开源免费:完全开源,可自由修改、分发,社区活跃。
  • 跨平台:可在Windows、Linux、MacOS等主流系统无缝运行。
  • 全能型:覆盖全栈开发、数据分析、人工智能等多个领域。
  • 胶水语言:可轻松与C/C++、Java、Go等语言混合开发。

缺点:

  • 执行效率较低(解释型语言特性),但可通过C拓展、JIT编译(PyPy)优化。
  • 多线程GIL限制,高并发场景需结合多进程或异步编程。

Python解释器

Python是高级编程语言,无法直接被计算机执行,需通过解释器将代码转换为机器语言(01二进制代码),常见解释器类型:

  • CPython:官方默认版本,C语言开发,应用最广泛。
  • IPython:交互式解释器,增强了CPython的交互体验。
  • PyPy:JIT编译型解释器,执行效率远超CPython。
  • Jython/IronPython:分别运行在Java/.NET平台的解释器。

环境推荐

python版本选择

推荐3.12版本,改版本相对稳定,也可兼容新的深度学习库。

Anaconda

Anaconda:“全家桶”,包含Conda+Python+1500+数据科学库+图形化工具(体积约500MB-1GB)


安装步骤(Mac OS系统):

https://www.anaconda.com

进入官网 --> 点击Free DownLoad --> 找到DownLoad Now,点击Skip registration --> 选择Mac,下载Graphical Installer图形化安装器

点开安装包,一路点同意就行了。。。

Pycharm

https://www.jetbrains.com/pycharm/

下载安装包 --> 一路点同意就行

创建项目

使用anaconda的基础环境创建项目。

基础环境(base)的Python路径通常为Anaconda3\python.exe(Windows)或/opt/anaconda3/bin/python(Linux/macOS)。

基础概念

变量

变量名 = 变量值

变量值:

  • 数值(小数或整数)
  • 字符串(用''或""括起来的内容叫做字符串)
  • 布尔值(True,False)类型为bool(布尔类型)
变量名命名

强制规则

  • 仅能包含字母、数字、下划线。
  • 不能以数字开头。
  • 严格区分大小写。
  • 不能使用Python关键字

推荐规范

  • 命名通俗易通。
  • 多个单词命名:
    • 小驼峰:userName(第二个单词首字母大写)
    • 下划线:user_name(Python官方风格)
    • 大驼峰:UserName(类名专用)
变量值类型
类型说明示例
整数(int)无小数的数字age = 20
浮点数(float)带小数的数字price = 19.9
字符串(str)文本内容(单/双引号包裹)name = "Python"
布尔值(bool)逻辑值(True/False)is_ok = True
列表(list)有序可变集合nums = [1, 2, 3]
元组(tuple)有序不可变集合info = ("张三", 20)
字典(dict)键值对集合student = {"name": "李四", "age": 19}
集合(set)| 无序序列,不重复序列 | num_set = {1, 3, 5}
判断变量类型
  • type(变量名),返回变量对应的具体类型。
  • isinstance(变量名,类型),判断变量名是否和类型匹配,如果匹配返回True,否则返回False
输入与输出

(1)格式化输出

方法1:f-string(Python里最推荐、最简洁的字符串格式化方式!)

python
name = "李四"
age = 20
score = 95.5
# 基础用法
print(f"姓名:{name},年龄:{age},成绩:{score}")
# 格式控制(保留2位小数)
print(f"成绩:{score:.2f}")
# 数字补零(6位宽度)
print(f"学号:{1:06d}")  # 输出:000001

方法2:format()方法

python
print("姓名:{},年龄:{}".format(name, age))
# 指定位置
print("年龄:{1},姓名:{0}".format(name, age))
# 格式控制
print("成绩:{:.2f}".format(score))

方法3:%占位符
print("姓名:%s,年龄:%d,成绩:%.2f" % (name, age, score))

(2)转义字符

转义符功能
\n换行
\t制表符(4个空格)
\\反斜杠本身
\"双引号
\'单引号

(3)输入函数input()

python
# 基础用法
name = input("请输入您的姓名:")
age = input("请输入您的年龄:")
print(f"您输入的姓名:{name},年龄:{age}")

# 带提示的输入
phone = input("请输入您的手机号:")
print(f"手机号:{phone},类型:{type(phone)}")
数据转换

当需要对输入的字符串进行数值运算时,需进行类型转换:

函数功能示例
int(x)转换为整数int("100") → 100
float(x)转换为浮点数float("9.9") → 9.9
str(x)转换为字符串str(18) → "18"
eval(x)执行字符串表达式eval("1+2") → 3

eval()还可以这样用eval("[1,2,3]") -> [1,2,3]

运算符

(1)算术运算符

运算符描述示例计算结果
+加法10 + 2030
-减法20 - 1010
*****乘法10 * 20200
/除法(返回浮点数)20 / 102.0
//整除(向下取整)21 // 102
%取模(返回余数)21 % 101
******幂运算2 ** 38

(2)赋值运算符

运算符描述示例 (假设原始 x=10)
=基础赋值x = 10
+=加后赋值x += 5x = x + 5
-=减后赋值x -= 5x = x - 5
*=乘后赋值x *= 5x = x * 5
/=除后赋值x /= 5x = x / 5
//=整除赋值x //= 5x = x // 5
%=取模赋值x %= 5x = x % 5
**=幂赋值x **= 5x = x ** 5

(3)比较运算符(返回布尔值)

运算符描述示例
==等于10 == 10 → True
!=不等于10 != 20 → True
>大于20 > 10 → True
<小于10 < 20 → True
>=大于等于20 >= 10 → True
<=小于等于10 <= 20 → True

(4)逻辑运算符

运算符描述示例
and逻辑与(都真才真)(10>5) and (20>10) → True
or逻辑或(有真就真)(10>5) or (20<10) → True
not逻辑非(取反)not (10>5) → False

条件判断

(1)核心作用
根据条件表达式的布尔结果(True/False),执行不同的代码块,实现程序的分支逻辑,是程序实现 “判断” 能力的核心语法。

(2)基本语法规则

  1. Python 中用 缩进(4 个空格 / 制表符) 划分代码块,而非大括号,缩进必须统一
  2. 条件表达式后必须加冒号 :
  3. 条件表达式可结合比较运算符、逻辑运算符组合使用

示例:

python
# 示例:判断是否为工作日的工作时间
hour = int(input("请输入当前小时数(0-23):"))
weekday = input("请输入是否为工作日(是/否):")
if weekday == "是" and 9 <= hour <= 18:
    print("当前是工作时间,请专注工作")
else:
    print("当前是非工作时间,可休息")
python
# 示例:判断成年与否
age = 20
result = "成年" if age >= 18 else "未成年"
print(f"你是:{result}")

# 等价于原双分支代码
if age >= 18:
    result = "成年"
else:
    result = "未成年"

循环

程序是为了解决实际问题的,实际问题中存在着重复动作,那么程序中也应该有相应的描述,这就是循环。

在Python中,循环一共分为两大类:while循环与for循环

①:对于循环次数固定的(已知)情况下,建议使用for循环, 例如: 打印1~10的数字。
②:对于循环次数未知(不确定)的情况下,建议使用while循环, 例如: 猜数字游戏

while循环

如果你想要循环n次,并计数,示例如下:

python
i = 0
n = 50
while i < n:
    # 执行循环的主体代码
    # balabala

    i += 1

print(f'i = {i}') # i = n

与C++一样有breakcontinue

for循环

for循环结构主要用于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作,无需手动定义和更新计数器,使用起来更简洁。

遍历字符串

python
# 需求: 遍历一个字符串 :  python 
for char in "python":
    print(char)

for循环功能非常强大,可以自动判断序列的长度,长度为多少,则for循环就循环多少次。每次循环时,系统会自动将序列中的每个元素赋值给临时变量,赋值完成后,for循环内部会自动更新计数器,向后移动一位,继续循环,直至元素全部循环结束。

range函数
range(stop)range(start, stop, step)

python
# 需求: 生成4以内的序列, 并且将每一个值打印出来
for num in range(0,4):
    print(num)

AI数学与数据科学基础

深度学习基础

NLP自然语言处理

大模型AIGC与企业级NLP

AI工程化与上线

项目应用

认知概念

学过的一大堆知识,如何用口语表达,呃呃呃呃呃呃呃呃。。

python多线程问题图解

Python 多线程受 GIL(Global Interpreter Lock,全局解释器锁)限制,核心原因是 CPython 解释器为保证内存安全(尤其是引用计数),强制同一时刻只能有一个线程执行 Python 字节码,导致多核 CPU 无法被充分利用。

即:GIL使得同一时刻,只有一个线程能执行 Python 字节码

多线程问题图解:

C++,Java等一些编程语言多线程编译:

而Python实际是伪多线程,多线程启动后,每个线程都要竞争 GIL;
拿到锁才能跑 Python 代码,没拿到就阻塞。

解决方案1:分布式进程/多进程

每个进程有独立的 Python 解释器 + 独立的 GIL

解决方案2:协程

Last updated: