章节导语

“很多初学者不是倒在了复杂的数学公式面前,而是倒在了配置环境的第一步。”

相信我,你并不孤单。对着漆黑的命令行窗口(Terminal)发呆,因为一行红色的报错代码而抓狂,这是每一位AI工程师的“成人礼”。

本章不打算让你背诵厚厚的Python语法字典,那样太枯燥且效率低下。我们将采用“倒叙式学习”——先配置好一个专业的、工业级的开发环境,然后只学习AI开发中最常用的那20%的核心语法,最后通过一个自动整理文件的实战脚本,让你立刻体验到代码“跑起来”的快感。

准备好了吗?让我们开始构建你的AI军火库。


1.1 学习目标

在学完本章后,你将能够:

  1. 避开环境配置的坑:理解为什么不直接安装Python,而是选择Anaconda。

  2. 像工程师一样思考:掌握虚拟环境(Virtual Environment)的概念,学会隔离项目依赖。

  3. 掌握核心兵器:熟悉VS Code编辑器的配置与使用。

  4. 极速上手:掌握变量、列表、字典、循环与函数这五大AI核心语法。

  5. 完成首杀:编写并运行一个自动化文件整理脚本,理解程序处理数据的基本逻辑。


1.2 工欲善其事:Anaconda与VS Code

1.2.1 为什么我们需要Anaconda?

很多Python入门书会让你直接去官网下载Python安装包。在AI领域,请不要这样做

AI开发需要用到成百上千个第三方库(比如Pandas、PyTorch、TensorFlow)。如果直接使用原生Python,你很快就会陷入“依赖地狱”——比如A库需要Python 3.8,而B库只能在Python 3.10上运行,你的电脑会因此变得一团糟。

Anaconda 就是为了解决这个问题而生的。它像是一个“精装修的房子”,不仅内置了Python解释器,还帮你预装了150多个科学计算包,最重要的是,它提供了一个强大的包管理器——conda

1.2.2 安装避坑指南

请前往 Anaconda 官网或清华大学开源软件镜像站(推荐国内用户使用,速度快)下载对应你操作系统的安装包。

【小白避坑】最重要的安装步骤 在Windows安装过程中,会出现一个复选框:"Add Anaconda3 to my PATH environment variable"。 尽管安装程序会提示红色警告“不推荐”,但对于初学者,请务必勾选它

原因:勾选后,你就可以直接在CMD命令行里使用condapython命令,省去了后续手动配置环境变量的巨大麻烦。

1.2.3 你的代码手术台:VS Code

代码编辑器我们首选 Visual Studio Code (VS Code)。它轻量、免费、插件丰富,是目前全球最流行的代码编辑器。

安装后的关键配置

  1. 打开VS Code,点击左侧边栏的方块图标(Extensions)。

  2. 搜索并安装 Python 插件(Microsoft官方出品)。

  3. 搜索并安装 Chinese (Simplified) 插件,将界面汉化。


1.3 工程化思维:虚拟环境的魔法

在写第一行代码前,我要灌输给你一个工程化思维隔离

想象一下,你在做两个项目:

  • 项目A:复现一篇2018年的老论文,需要旧版的软件包。

  • 项目B:使用2024年最新的大模型技术,需要最新的软件包。

如果在同一个环境下安装,新旧版本会冲突。解决办法就是创建虚拟环境。每一个虚拟环境都是一个独立的“平行宇宙”,互不干扰。

实战操作

打开你的终端(Windows下是CMD或PowerShell,Mac下是Terminal),输入以下命令:

# 1. 创建一个名为 "ai_start" 的虚拟环境,指定Python版本为3.10
conda create -n ai_start python=3.10
​
# 2. 中途会提示 Proceed ([y]/n)? 输入 y 并回车
​
# 3. 激活(进入)这个环境
conda activate ai_start

当你看到命令行前面出现 (ai_start) 字样时,恭喜你,你已经进入了专属的开发宇宙。我们将在这个环境里完成本书所有的项目。


1.4 Python极速入门:只学AI用得着的

Python的语法很多,但AI开发中高频使用的并不多。我们只看核心。

请在VS Code中新建一个文件 hello_ai.py,跟着我敲下代码。

1.4.1 变量:数据的容器

AI的本质就是处理数据。变量就是贴了标签的盒子。

# 整数与浮点数
batch_size = 32          # 每次训练读取32条数据
learning_rate = 0.001    # 学习率(小数)
​
# 字符串
model_name = "ChatGPT"   # 文本数据
​
# 布尔值
is_training = True       # 开关状态

1.4.2 列表(List)与字典(Dict):核心数据结构

这是AI中最常用的两种“仓库”。

  • 列表:有序的仓库,适合存一堆图片路径或一串数字。

  • 字典:带标签的仓库,适合存模型的配置参数。

# --- 列表 List ---
# 假设这是一个简单的房价数据集
house_prices = [100, 200, 150, 300]
​
print(house_prices[0])   # 取出第1个数据(注意:计算机从0开始计数!)
print(house_prices[-1])  # 取出倒数第1个数据,这在不知道列表长度时很有用
​
# --- 字典 Dictionary ---
# 这是一个用户的画像数据
user_profile = {
    "name": "Alice",
    "age": 25,
    "interests": ["AI", "Music"]
}
​
print(user_profile["age"])  # 像查字典一样通过 key 找到 value

1.4.3 循环与判断:程序的逻辑

AI模型训练通常需要跑几千轮(Epoch),这就需要循环。

# 遍历列表
for price in house_prices:
    if price > 180:
        print(f"价格 {price} 属于高价房")  # f-string是Python最方便的格式化字符串写法
    else:
        print(f"价格 {price} 属于普通房")

【专业提示】缩进的艺术 Python没有大括号 {} 来包含代码块,而是严格依靠缩进(通常是4个空格或1个Tab)。缩进不对,程序必报错。这是Python强制你写出整洁代码的手段。

1.4.4 函数:模块化思维

不要把所有代码写成一坨。将功能封装成函数,是工程化的第一步。

def calculate_loss(prediction, target):
    """
    这是一个计算误差的简单函数
    prediction: 模型的预测值
    target: 真实值
    """
    error = prediction - target
    return abs(error)  # 返回绝对值
​
# 调用函数
loss = calculate_loss(100, 105)
print(f"当前模型的误差是: {loss}")

1.5 实战案例:自动化文件整理脚本

既然学会了基础,我们就来做一个真实可用的项目。

场景描述: 你的“下载”文件夹里乱七八糟,堆满了图片(.jpg, .png)、文档(.pdf, .docx)和压缩包。我们写一个Python脚本,自动把它们分类放入对应的文件夹。

这与AI有什么关系? 这个案例涵盖了文件读取、路径操作和逻辑判断——这正是未来我们在做数据清洗加载数据集时最常做的事情。

第一步:代码实现

在VS Code中新建 organizer.py,输入以下代码:

import os
import shutil  # 用于移动文件的标准库
​
# --- 配置区域 ---
# 替换为你想要整理的文件夹路径 (注意:Windows路径建议在字符串前加 r,防止转义)
target_dir = r"C:\Users\YourName\Downloads\TestFolder"
​
# 定义分类规则:后缀名 -> 文件夹名
extensions_map = {
    '.jpg': 'Images',
    '.png': 'Images',
    '.pdf': 'Documents',
    '.docx': 'Documents',
    '.zip': 'Archives',
    '.rar': 'Archives'
}
​
def organize_files(directory):
    # 1. 检查目录是否存在
    if not os.path.exists(directory):
        print(f"错误:找不到路径 {directory}")
        return
​
    # 2. 遍历目录下的所有文件
    for filename in os.listdir(directory):
        # 获取文件的完整路径
        file_path = os.path.join(directory, filename)
​
        # 如果是文件夹,跳过,只处理文件
        if os.path.isdir(file_path):
            continue
​
        # 3. 获取文件后缀名 (转为小写,防止 .JPG 和 .jpg 识别不一致)
        file_ext = os.path.splitext(filename)[1].lower()
​
        # 4. 判断并移动
        if file_ext in extensions_map:
            # 获取目标文件夹名称
            folder_name = extensions_map[file_ext]
            # 拼凑目标文件夹路径
            target_folder_path = os.path.join(directory, folder_name)
​
            # 如果目标文件夹不存在,自动创建
            if not os.path.exists(target_folder_path):
                os.makedirs(target_folder_path)
                print(f"创建新文件夹: {folder_name}")
​
            # 移动文件
            # 构造新的文件路径
            new_file_path = os.path.join(target_folder_path, filename)
            try:
                shutil.move(file_path, new_file_path)
                print(f"已移动: {filename} -> {folder_name}")
            except Exception as e:
                print(f"移动 {filename} 失败: {e}")
        else:
            print(f"跳过未知类型文件: {filename}")
​
# --- 运行主程序 ---
if __name__ == "__main__":
    print("开始整理...")
    organize_files(target_dir)
    print("整理完成!")

第二步:运行与验证

  1. 在电脑上创建一个测试文件夹 TestFolder,并在里面随便放几个不同后缀的空文件。

  2. 修改代码中的 target_dir 为你的测试文件夹路径。

  3. 在VS Code终端中运行:python organize_files.py

你将看到终端刷刷地打印出移动日志,打开文件夹,文件已经被整齐地归类了。

【工程视角】为什么要用 os.path.join 你可能想直接用字符串拼接路径,比如 directory + "\\" + filename千万别这么做! Windows用反斜杠 \,Mac和Linux用斜杠 /。使用 os.path.join 可以让Python自动根据操作系统选择正确的分隔符,保证你的代码在谁的电脑上都能跑。这就是代码的可移植性


1.6 章节总结

恭喜你,你已经迈出了AI工程师的第一步!

本章我们没有沉溺于语法的海洋,而是直接配置了工业级的 Anaconda + VS Code 环境,理解了 虚拟环境 这一至关重要的工程概念,并通过一个自动化脚本熟悉了Python处理数据的基本逻辑。

不要小看这个整理文件的脚本。在后续的章节中,当我们处理几万张用于训练图像识别模型的图片时,你会发现,今天的代码逻辑将是构建数据加载器(Data Loader) 的基石。

1.7 思考与扩展练习

  1. 修改练习:目前的脚本如果遇到同名文件会报错或覆盖。请尝试修改代码,如果目标文件夹里已经有了同名文件,就在新文件名后面加上时间戳(例如 image_20231020.jpg)。

    • 提示:可以使用 import time 获取当前时间。

  2. 思考题:为什么我们在处理文件后缀时,要统一使用 .lower() 转换为小写?如果不转换会发生什么?

  3. 预习:在下一章,我们将不再一行行处理数据,而是使用强大的 Pandas 库,像Excel一样批量处理成千上万条数据。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐