1. 为什么 AI 应用开发离不开 Python

Python 是 AI 应用开发中非常常见的语言,原因很简单:

  • 语法简洁,适合快速验证想法。
  • 第三方库丰富,AI、数据处理、Web 开发都有成熟生态。
  • 很多大模型 SDK、机器学习库、数据处理工具都优先支持 Python。
  • 适合从小脚本逐步扩展成完整项目。

在 AI 应用中,Python 常见用途包括:

  • 调用大模型 API。
  • 构造和管理 prompt。
  • 读取本地文档、表格、网页内容。
  • 清洗和切分文本。
  • 保存模型回答。
  • 搭建后端接口。
  • 编写自动化脚本。

2. 变量:保存程序中的数据

变量可以理解为“给数据起一个名字”。在 AI 应用开发中,变量经常用来保存用户输入、prompt、模型名称、分析结果等。

user_question = "Python 为什么适合 AI 应用开发?"
model_name = "demo-model"
max_tokens = 1024
temperature = 0.7

print(user_question)
print(model_name)
print(max_tokens)
print(temperature)

输出示例:

Python 为什么适合 AI 应用开发?
demo-model
1024
0.7

Python 变量不需要提前声明类型,赋值时解释器会自动判断。

name = "AI 助手"
age = 1
is_active = True

print(type(name))
print(type(age))
print(type(is_active))

输出示例:

<class 'str'>
<class 'int'>
<class 'bool'>

常见基础类型:

类型 示例 说明
str "hello" 字符串,常用于文本、prompt、路径
int 100 整数,常用于数量、索引
float 0.8 小数,常用于温度、分数
bool True 布尔值,常用于开关判断
NoneType None 空值,常表示暂无结果

3. 类型转换:让数据类型匹配场景

在实际项目中,用户输入、配置文件、接口返回值经常是字符串,但程序计算时可能需要数字或布尔值,这时就要做类型转换。

常用转换函数:

str(123)
int("123")
float("3.14")
bool(1)

示例:

max_tokens_text = "2048"
max_tokens = int(max_tokens_text)

price = 12.5
price_text = str(price)

print(max_tokens + 100)
print("价格:" + price_text)

输出示例:

2148
价格:12.5

注意:不是所有字符串都能转换成数字。

text = "AI"

try:
    number = int(text)
except ValueError:
    print("这个字符串不能转换成整数")

输出示例:

这个字符串不能转换成整数

这类情况在读取配置、解析用户输入时非常常见。

4. 输入和输出:最基础的人机交互

print() 用于输出信息,input() 用于接收用户输入。

name = input("请输入你的名字:")
print("你好," + name)

需要注意:input() 得到的数据永远是字符串。

age_text = input("请输入你的年龄:")
age = int(age_text)

print(age + 1)

在 AI 应用中,可以先用 input() 模拟用户问题:

question = input("请输入你想问 AI 的问题:")
prompt = "请用简洁的语言回答这个问题:" + question

print(prompt)

示例输入:

什么是 RAG?

输出示例:

请用简洁的语言回答这个问题:什么是 RAG?

5. 字符串:prompt 和文本处理的核心

AI 应用开发离不开字符串。用户问题、系统提示词、模型回答、文档内容,本质上都是字符串。

5.1 字符串的三种写法

text1 = "hello"
text2 = 'hello'
text3 = """这是一个
多行字符串"""

print(text1)
print(text2)
print(text3)

多行字符串很适合写系统提示词:

system_prompt = """
你是一个 Python 学习助手。
回答时请遵守:
1. 先给结论
2. 再给示例
3. 最后提醒常见错误
"""

print(system_prompt)

5.2 字符串拼接

user_name = "小明"
question = "Python 中 list 和 tuple 有什么区别?"

prompt = "用户" + user_name + "的问题是:" + question
print(prompt)

输出示例:

用户小明的问题是:Python 中 list 和 tuple 有什么区别?

不过,当变量比较多时,更推荐使用 f-string。

5.3 f-string 格式化

f-string 是实际项目中非常常用的字符串格式化方式。特别是一些提示词的相关模版等。

role = "Python 教练"
question = "如何学习 AI 应用开发?"

prompt = f"你是一个{role},请回答:{question}"
print(prompt)

输出示例:

你是一个Python 教练,请回答:如何学习 AI 应用开发?

还可以控制小数精度:

score = 0.87654
print(f"相似度得分:{score:.2f}")

输出示例:

相似度得分:0.88

5.4 常用字符串方法

text = "  Python,AI,RAG  "

clean_text = text.strip()
items = clean_text.split(",")
new_text = clean_text.replace("RAG", "检索增强生成")

print(clean_text)
print(items)
print(new_text)

输出示例:

Python,AI,RAG
['Python', 'AI', 'RAG']
Python,AI,检索增强生成

这些方法在处理文档、清洗用户输入时非常常用。

6. 判断语句:让程序根据情况做决定

判断语句用于根据条件执行不同逻辑。

score = 85

if score >= 90:
    print("优秀")
elif score >= 60:
    print("合格")
else:
    print("需要继续学习")

输出示例:

合格

在 AI 应用中,判断语句可以用来控制流程:

question = "请帮我总结这篇文章"

if "总结" in question:
    task_type = "summary"
elif "翻译" in question:
    task_type = "translation"
else:
    task_type = "chat"

print(task_type)

输出示例:

summary

常见比较运算符:

运算符 含义
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

常见逻辑运算符:

运算符 含义
and 并且
or 或者
not 取反

示例:

is_login = True
has_api_key = False

if is_login and has_api_key:
    print("可以调用 AI 服务")
else:
    print("请先完成登录或配置 API Key")

7. 循环语句:批量处理数据

AI 应用经常需要批量处理文本、问题、文件和模型结果,这时就要用循环。

7.1 while 循环

while 会在条件成立时反复执行代码。

count = 1

while count <= 3:
    print(f"第 {count} 次处理")
    count += 1

输出示例:

第 1 次处理
第 2 次处理
第 3 次处理

7.2 for 循环

for 更适合遍历列表、字符串、字典等数据。

questions = [
    "什么是机器学习?",
    "什么是大模型?",
    "什么是 RAG?",
]

for question in questions:
    print(f"准备处理问题:{question}")

输出示例:

准备处理问题:什么是机器学习?
准备处理问题:什么是大模型?
准备处理问题:什么是 RAG?

7.3 range 的用法

for i in range(3):
    print(i)

for i in range(1, 4):
    print(i)

for i in range(1, 10, 2):
    print(i)

range(开始, 结束, 步长) 中,结束值不包含在结果里。

7.4 break 和 continue

texts = ["第一段", "", "第三段", "STOP", "第五段"]

for text in texts:
    if text == "":
        continue
    if text == "STOP":
        break
    print(text)

输出示例:

第一段
第三段

continue 表示跳过本次循环,break 表示结束整个循环。

8. 函数:封装 AI 应用中的重复逻辑

函数用于把一段可重复使用的逻辑封装起来。在langgraph中通常会封装结点,条件边的选择等。

def build_prompt(role, question):
    prompt = f"你是一个{role},请回答:{question}"
    return prompt


result = build_prompt("Python 老师", "函数有什么用?")
print(result)

输出示例:

你是一个Python 老师,请回答:函数有什么用?

8.1 函数参数

def user_info(name, age, city):
    print(f"姓名:{name},年龄:{age},城市:{city}")


user_info("小王", 20, "杭州")
user_info(age=22, city="上海", name="小李")

第二种写法叫关键字传参,不需要严格按照参数顺序。

8.2 默认参数

def build_message(content, role="user"):
    return {"role": role, "content": content}


print(build_message("你好"))
print(build_message("你是一个助手", role="system"))

输出示例:

{'role': 'user', 'content': '你好'}
{'role': 'system', 'content': '你是一个助手'}

默认参数很适合给函数提供常用配置。

8.3 多个返回值

def analyze_text(text):
    length = len(text)
    has_ai = "AI" in text
    return length, has_ai


text_length, contains_ai = analyze_text("我正在学习 AI 应用开发")
print(text_length)
print(contains_ai)

8.4 不定长参数

def merge_prompts(*parts):
    return "\n".join(parts)


prompt = merge_prompts(
    "你是一个学习助手。",
    "请用通俗语言解释。",
    "回答不要超过 100 字。",
)

print(prompt)

*args 会把多个位置参数收集成元组,适合处理数量不固定的输入。

def show_config(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")


show_config(model="demo-model", temperature=0.7, max_tokens=1024)

**kwargs 会把多个关键字参数收集成字典,适合处理配置项。

8.5 lambda 函数

lambda 适合写简单的一行函数。

scores = [0.9, 0.75, 0.88]
sorted_scores = sorted(scores, key=lambda score: score, reverse=True)

print(sorted_scores)

输出示例:

[0.9, 0.88, 0.75]

9. 常用数据容器:组织消息、配置和结果

AI 应用中的很多数据都不是单个值,而是一组数据。Python 常用容器包括列表、元组、字符串、集合和字典。

9.1 列表 list

列表用于保存一组有顺序、可修改的数据。在langgraph中有工具列表,消息列表等中有使用。

questions = ["什么是 AI?", "什么是大模型?", "什么是 RAG?"]

print(questions[0])
print(questions[-1])

questions.append("什么是 Agent?")
print(questions)

输出示例:

什么是 AI?
什么是 RAG?
['什么是 AI?', '什么是大模型?', '什么是 RAG?', '什么是 Agent?']

常用列表方法:

items = ["Python", "AI"]

items.append("RAG")
items.extend(["Agent", "FastAPI"])
items.insert(1, "大模型")
items.remove("AI")

print(items)
print(len(items))

遍历列表:

messages = ["你好", "请总结这段文本", "谢谢"]

for message in messages:
    print(message)

9.2 元组 tuple

元组和列表类似,但创建后不能修改。

point = (120.1, 30.2)

print(point[0])
print(point[1])

元组适合保存不希望被修改的数据,例如固定配置、坐标、状态组合。

9.3 字符串 str

字符串本身也是一种序列,可以通过下标和切片访问。

text = "Python AI"

print(text[0])
print(text[0:6])
print(text[::-1])

输出示例:

P
Python
IA nohtyP

9.4 集合 set

集合最大的特点是去重。

tags = ["Python", "AI", "Python", "RAG"]
unique_tags = set(tags)

print(unique_tags)

集合也常用于求交集、并集、差集。

user_skills = {"Python", "SQL", "Linux"}
ai_skills = {"Python", "向量数据库", "RAG"}

print(user_skills & ai_skills)
print(user_skills | ai_skills)
print(ai_skills - user_skills)

9.5 字典 dict

字典用键值对保存数据,非常适合表示配置、JSON 风格数据、消息对象。

config = {
    "model": "demo-model",
    "temperature": 0.7,
    "max_tokens": 1024,
}

print(config["model"])
print(config.get("temperature"))

更新和删除:

config["temperature"] = 0.5
config["timeout"] = 30
config.pop("timeout")

print(config)

遍历字典:

for key, value in config.items():
    print(f"{key}: {value}")

AI 对话消息常用列表加字典来表示:

messages = [
    {"role": "system", "content": "你是一个 Python 学习助手。"},
    {"role": "user", "content": "请解释什么是列表。"},
]

for message in messages:
    print(f"{message['role']}: {message['content']}")

9.6 容器选择建议

容器 特点 AI 应用中的常见用途
list 有序、可修改 多条消息、多个问题、批量文本
tuple 有序、不可修改 固定配置、固定状态
str 文本序列 prompt、用户输入、模型回答
set 去重、无序 标签去重、技能集合
dict 键值对 配置、JSON、消息对象

10. 文件读写:读取资料和保存结果

AI 应用经常要读取本地资料,也要保存模型处理结果。

10.1 读取文件

with open("article.txt", "r", encoding="utf-8") as file:
    content = file.read()

print(content)

with open(...) 的好处是代码块执行结束后会自动关闭文件。

逐行读取:

with open("questions.txt", "r", encoding="utf-8") as file:
    for line in file:
        question = line.strip()
        if question:
            print(f"准备处理:{question}")

10.2 写入文件

result = "这是 AI 分析后的结果。"

with open("result.txt", "w", encoding="utf-8") as file:
    file.write(result)

w 表示写入模式,会覆盖原文件内容。

10.3 追加文件

log = "本次任务处理完成\n"

with open("app.log", "a", encoding="utf-8") as file:
    file.write(log)

a 表示追加模式,不会清空原内容。

10.4 文件模式总结

模式 含义
r 只读
w 写入,覆盖原内容
a 追加,在文件末尾写入

11. 异常处理:让程序更稳定

程序运行时可能出现各种错误,例如文件不存在、类型转换失败、接口请求失败。异常处理可以避免程序直接崩溃。

try:
    with open("data.txt", "r", encoding="utf-8") as file:
        content = file.read()
except FileNotFoundError:
    print("文件不存在,请检查路径")

捕获多个异常:

try:
    number = int("abc")
except ValueError as error:
    print(f"转换失败:{error}")
except Exception as error:
    print(f"未知错误:{error}")

elsefinally

try:
    number = int("123")
except ValueError:
    print("转换失败")
else:
    print(f"转换成功:{number}")
finally:
    print("处理结束")

在 AI 应用中,异常处理通常用于:

  • 文件不存在时给出友好提示。
  • 用户输入格式错误时重新提示。
  • API 调用失败时记录日志。
  • 某条数据处理失败时跳过,不影响后续任务。

12. 模块、包和第三方库

当代码越来越多时,不应该把所有内容都写在一个文件里。Python 可以通过模块和包组织代码。

12.1 模块

一个 .py 文件就是一个模块。

例如有一个 prompt_utils.py

def build_prompt(role, question):
    return f"你是一个{role},请回答:{question}"

在另一个文件中导入:

from prompt_utils import build_prompt

prompt = build_prompt("Python 老师", "什么是模块?")
print(prompt)

12.2 避免导入时自动执行测试代码

def add(a, b):
    return a + b


if __name__ == "__main__":
    print(add(1, 2))

if __name__ == "__main__": 下面的代码只会在直接运行当前文件时执行,被其他文件导入时不会执行。

12.3 包

包可以理解为包含多个模块的文件夹,通常会有一个 __init__.py 文件。

示例结构:

ai_app/
  __init__.py
  prompt_utils.py
  file_utils.py
  main.py

这样可以把 prompt 处理、文件处理、主程序逻辑分开维护。

12.4 pip 安装第三方库

Python 的很多能力来自第三方库。安装第三方库通常使用 pip

pip install requests

如果下载慢,可以使用镜像源:

pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

学习 AI 应用开发后,你可能会接触:

  • requests:发送 HTTP 请求。
  • fastapi:开发后端接口。
  • pydantic:做数据校验。
  • pandas:处理表格数据。
  • numpy:处理数值计算。

langchain,langgraph也有很多库,导入后才能让开发智能应用更便捷。

# langchain 本体
pip install langchain
# langgraph 图编排核心
pip install langgraph
# langchain 通用接口、提示词、输出解析
pip install langchain-core
# 各类模型统一封装(openai/通义千问/文心一言等)
pip install langchain-openai

13. 综合案例:批量文本分析助手

下面用一个小案例,把变量、字符串、列表、字典、函数、循环、文件读写、异常处理串起来。

这个案例不调用真实大模型,只是模拟“批量分析文本”的流程,重点理解 Python 代码结构。

13.1 准备分析函数

def analyze_text(text):
    """模拟 AI 文本分析。"""
    clean_text = text.strip()

    if not clean_text:
        return {
            "summary": "空文本",
            "length": 0,
            "has_ai": False,
        }

    return {
        "summary": clean_text[:20],
        "length": len(clean_text),
        "has_ai": "AI" in clean_text or "人工智能" in clean_text,
    }

13.2 批量处理文本

texts = [
    "AI 应用开发需要掌握 Python 基础。",
    "RAG 可以让模型结合外部知识回答问题。",
    "",
    "FastAPI 常用于开发后端接口。",
]

results = []

for text in texts:
    result = analyze_text(text)
    results.append(result)

for index, result in enumerate(results, start=1):
    print(f"第 {index} 条:{result}")

输出示例:

第 1 条:{'summary': 'AI 应用开发需要掌握 Python', 'length': 22, 'has_ai': True}
第 2 条:{'summary': 'RAG 可以让模型结合外部知识回答', 'length': 22, 'has_ai': False}
第 3 条:{'summary': '空文本', 'length': 0, 'has_ai': False}
第 4 条:{'summary': 'FastAPI 常用于开发后端接口。', 'length': 19, 'has_ai': False}

13.3 保存分析结果

def save_results(results, output_file):
    with open(output_file, "w", encoding="utf-8") as file:
        for index, result in enumerate(results, start=1):
            file.write(f"第 {index} 条\n")
            file.write(f"摘要:{result['summary']}\n")
            file.write(f"长度:{result['length']}\n")
            file.write(f"是否包含 AI 关键词:{result['has_ai']}\n")
            file.write("\n")


save_results(results, "analysis_result.txt")

13.4 加上异常处理

def read_texts(input_file):
    try:
        with open(input_file, "r", encoding="utf-8") as file:
            return [line.strip() for line in file if line.strip()]
    except FileNotFoundError:
        print("输入文件不存在,返回空列表")
        return []


texts = read_texts("texts.txt")

这个案例虽然简单,但已经包含了 AI 应用脚本常见的基础结构:

  • 读取输入数据。
  • 封装处理函数。
  • 批量处理内容。
  • 用字典保存结构化结果。
  • 把结果写入文件。
  • 用异常处理兜底。

真实项目中,只需要把 analyze_text() 里的模拟逻辑换成真实模型调用,就可以扩展成一个小型 AI 文本分析工具。

14. 总结

AI 智能应用开发,不需要一开始就把 Python 学到非常深,但本文这些基础语法一定要熟练:

  • 变量和类型转换:保存和处理基础数据。
  • 字符串:构造 prompt、处理模型输入输出。
  • 判断和循环:控制流程、批量处理任务。
  • 函数:封装可复用逻辑。
  • 列表和字典:组织消息、配置和结构化结果。
  • 文件读写:读取资料、保存分析结果。
  • 异常处理:让程序在出错时更稳定。
  • 模块和包:把脚本整理成项目。

更多推荐