乐于分享
好东西不私藏

Day39--晚课 AI编程工具实战

Day39--晚课 AI编程工具实战

👆 点击上方蓝字关注我,获取更多干货

⛈️

沈阳 · 雷阵雨 · 18°C ~ 26°C

⛈ 风雨无阻,学习不止

📋 文章概览

Day39——晚课 AI编程工具实战

1 这是「AI专家养成计划」系列教程的第78篇,共140篇
2 本系列从零基础出发,每天两篇(早课理论+晚课实践),用70天时间带你全面掌握AI的核心概念与实战技能
3 晚课以实操为主,手把手教你完成具体任务
4 ,掌握了三个核心要点:
5 :内置强大的AI对话功能,可以直接用自然语言描述需求生成代码
📝 8360 字 ⏱ 约 20 分钟阅读 📑 深度长文

CHAPTER
01
系列教程说明CHAPTER · 章节内容

📌 本节要点
✦ 这是「AI专家养成计划」系列教程的第78篇,共14…✦ 晚课以实操为主,手把手教你完成具体任务

这是「AI专家养成计划」系列教程的第78篇,共140篇。本系列从零基础出发,每天两篇(早课理论+晚课实践),用70天时间带你全面掌握AI的核心概念与实战技能。晚课以实操为主,手把手教你完成具体任务。

CHAPTER
02
上篇回顾REVIEW · 知识回顾

📌 本节要点
✦ 今天早课我们了解了AI编程工具的全景,掌握了三个核…✦ 今晚,我们不聊概念,直接上手——用Cursor和C…

今天早课我们了解了AI编程工具的全景,掌握了三个核心要点:
- Cursor是AI原生编辑器:内置强大的AI对话功能,可以直接用自然语言描述需求生成代码
- GitHub Copilot是编辑器插件:无缝集成到VS Code等编辑器,通过实时代码建议提升编程效率
- 两者定位不同:Cursor适合编程新手和需要AI对话的场景,Copilot适合有经验的程序员日常使用

今晚,我们不聊概念,直接上手——用Cursor和Copilot完成3个真实项目

CHAPTER
03
实战项目一:用Cursor搭建个人记账本CHAPTER · 章节内容

📌 本节要点
✦ 1. 可以添加收入和支出记录,每条记录包含:日期、…✦ 2. 可以查看所有记录✦ 3. 可以按月份统计收支情况

项目目标

用Cursor的AI对话功能,从零开始创建一个命令行记账程序。你不需要会编程,只需要会打字。

第一步:打开Cursor,创建项目

  1. 打开Cursor编辑器
  2. 点击 File → New File
  3. Ctrl+S(Windows)或 Cmd+S(Mac)保存文件,命名为 accounting.py

第二步:用自然语言描述需求

Ctrl+K(Windows)或 Cmd+K(Mac)打开AI对话框,输入以下内容:

Code
帮我写一个Python命令行记账程序,要求:
1. 可以添加收入和支出记录,每条记录包含:日期、金额、类别、备注
2. 可以查看所有记录
3. 可以按月份统计收支情况
4. 数据保存在本地JSON文件中
5. 有简单的菜单界面,用数字选择功能

第三步:查看生成的代码

Cursor会生成完整的代码。你会看到类似这样的结构:

Code
import json
from datetime import datetime

DATA_FILE = "accounting_data.json"

def load_data():
    """加载记账数据"""
    try:
        with open(DATA_FILE, 'r', encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        return []

def save_data(records):
    """保存记账数据"""
    with open(DATA_FILE, 'w', encoding='utf-8') as f:
        json.dump(records, f, ensure_ascii=False, indent=2)

def add_record():
    """添加收支记录"""
    # ... Cursor会生成完整的添加逻辑

def view_records():
    """查看所有记录"""
    # ... Cursor会生成查看逻辑

def monthly_summary():
    """月度统计"""
    # ... Cursor会生成统计逻辑

# 主程序菜单
while True:
    print("\n=== 个人记账本 ===")
    print("1. 添加记录")
    print("2. 查看记录")
    print("3. 月度统计")
    print("4. 退出")
    choice = input("请选择功能:")
    # ... Cursor会生成菜单逻辑

第四步:运行和调试

  1. Ctrl+Shift+`` 打开终端
  2. 输入 python accounting.py 运行程序
  3. 如果报错,选中错误信息,按 Ctrl+K 让Cursor帮你修复

常见问题:如果提示找不到Python,需要先安装Python。在终端输入 python --version 检查是否已安装。

第五步:迭代改进

程序能运行后,继续用AI对话优化它:

Code
给记账程序增加以下功能:
1. 支持删除某条记录
2. 添加数据导出为CSV的功能
3. 用不同颜色显示收入(绿色)和支出(红色)

关键技巧:每次只提一个改进需求,让Cursor逐步完善。一次提太多需求,生成的代码可能不稳定。

CHAPTER
04
实战项目二:用Copilot写一个网页爬虫CHAPTER · 章节内容

📌 本节要点
✦ 2. 确保文件右下角显示的语言是 Python✦ headers = {'User-Agent': …✦ for i, link in enumerater…

项目目标

用GitHub Copilot的代码建议功能,写一个自动抓取网页标题和链接的Python脚本。

前置准备

  • 已安装VS Code和GitHub Copilot插件
  • 已安装Python

第一步:创建项目文件

  1. 在VS Code中新建文件,保存为 web_scraper.py
  2. 确保文件右下角显示的语言是 Python

第二步:用注释驱动编程

这是Copilot最神奇的功能——你写注释,它写代码

在文件中输入以下注释:

Terminal
# 导入requests和BeautifulSoup库
# 用于发送HTTP请求和解析HTML

# 写一个函数,接收URL参数
# 获取网页内容
# 提取所有链接和标题
# 返回一个字典列表,每个字典包含title和url

# 主程序:抓取一个示例网站
# 打印所有抓取到的链接

当你输入完每行注释后,停顿一下,Copilot会自动显示灰色的代码建议。按 Tab 接受建议。

第三步:完善代码

Copilot可能会生成这样的代码:

Code
import requests
from bs4 import BeautifulSoup

def extract_links(url):
    """抓取网页中的所有链接和标题"""
    try:
        headers = {'User-Agent': 'Mozilla/5.0'}
        response = requests.get(url, headers=headers, timeout=10)
        response.raise_for_status()

        soup = BeautifulSoup(response.text, 'html.parser')
        links = []

        for a_tag in soup.find_all('a', href=True):
            title = a_tag.get_text(strip=True)
            href = a_tag['href']
            if title and href:
                links.append({'title': title, 'url': href})

        return links
    except Exception as e:
        print(f"抓取失败:{e}")
        return []

# 主程序
if __name__ == "__main__":
    target_url = "https://example.com"
    results = extract_links(target_url)

    print(f"\n从 {target_url} 抓取到 {len(results)} 个链接:\n")
    for i, link in enumerate(results[:10], 1):
        print(f"{i}. {link['title']}")
        print(f"   {link['url']}")

第四步:安装依赖并运行

在终端中执行:

Terminal
# 安装必要的库
pip install requests beautifulsoup4

# 运行脚本
python web_scraper.py

第五步:让Copilot帮你扩展功能

在代码末尾添加新的注释,让Copilot继续帮你写:

Terminal
# 添加功能:将抓取结果保存为CSV文件
# 添加功能:支持抓取多个页面
# 添加功能:过滤掉无效链接(如javascript:开头的)

Copilot的使用技巧
- 注释要具体:写"抓取链接"比写"处理数据"效果好
- 给足上下文:Copilot会参考文件中已有的代码风格
- 接受部分建议:如果建议不完全符合需求,可以修改后再让Copilot继续

CHAPTER
05
实战项目三:Cursor + Copilot联手——做一个天气查询工具CHAPTER · 章节内容

📌 本节要点
✦ 2. 数据源:使用免费的wttr.in API不需…✦ 3. 要求:有错误处理、支持中文城市名、显示天气图…✦ 1. 功能:输入城市名,显示未来3天的天气预报

项目目标

综合使用两个工具的优势,创建一个命令行天气查询程序

分工策略

  • 用Cursor设计整体架构:通过AI对话确定程序结构和功能模块
  • 用Copilot编写具体代码:在VS Code中用Copilot快速实现各个函数

第一步:用Cursor规划架构

在Cursor的AI对话中输入:

Code
我想做一个命令行天气查询工具,帮我设计程序架构:
1. 功能:输入城市名,显示未来3天的天气预报
2. 数据源:使用免费的wttr.in API(不需要注册)
3. 要求:有错误处理、支持中文城市名、显示天气图标
请给出程序的模块划分和主要函数设计。

Cursor会给出一个清晰的架构方案。

第二步:用Copilot实现代码

在VS Code中,根据Cursor的架构方案,用注释驱动Copilot生成代码:

Terminal
# 导入requests库

# 写一个函数,获取指定城市的天气数据
# 使用wttr.in的JSON API
# 处理网络错误和无效城市名
# 返回天气数据字典

# 写一个函数,将天气数据格式化输出
# 显示城市名、温度、天气状况
# 使用emoji表示天气(☀️晴、🌧️雨、❄️雪)

# 主程序:循环接收用户输入的城市名
# 输入q退出

第三步:完整代码参考

Code
import requests
import json

def get_weather(city):
    """获取城市天气数据"""
    try:
        url = f"https://wttr.in/{city}?format=j1"
        response = requests.get(url, timeout=10)
        response.raise_for_status()
        return response.json()
    except requests.RequestException as e:
        return None

def get_weather_icon(code):
    """根据天气代码返回emoji图标"""
    code = int(code)
    if code == 113:
        return "☀️"
    elif code in [116, 119, 122]:
        return "⛅"
    elif code in [176, 263, 266, 293, 296, 299, 302, 305, 308]:
        return "🌧️"
    elif code in [179, 227, 230, 317, 320, 323, 326, 329, 332, 335, 338]:
        return "❄️"
    elif code in [200, 386, 389, 392, 395]:
        return "⛈️"
    elif code in [143, 248, 260]:
        return "🌫️"
    else:
        return "🌤️"

def display_weather(data, city):
    """显示天气预报"""
    if not data:
        print("❌ 获取天气数据失败,请检查城市名是否正确")
        return

    print(f"\n📍 {city} 未来3天天气预报")
    print("=" * 40)

    for day in data.get('weather', []):
        date = day['date']
        max_temp = day['maxtempC']
        min_temp = day['mintempC']
        hourly = day['hourly']
        # 取中午的天气状况
        noon_weather = hourly[4] if len(hourly) > 4 else hourly[0]
        desc = noon_weather.get('lang_zh', [{}])[0].get('value', '未知')
        icon = get_weather_icon(noon_weather['weatherCode'])

        print(f"\n{icon} {date}")
        print(f"   温度:{min_temp}°C ~ {max_temp}°C")
        print(f"   天气:{desc}")

def main():
    """主程序"""
    print("🌤️ 天气查询工具")
    print("输入城市名查询天气,输入 q 退出\n")

    while True:
        city = input("请输入城市名:").strip()
        if city.lower() == 'q':
            print("👋 再见!")
            break
        if not city:
            print("请输入有效的城市名")
            continue

        print(f"正在查询 {city} 的天气...")
        data = get_weather(city)
        display_weather(data, city)

if __name__ == "__main__":
    main()

第四步:运行和测试

Bash
pip install requests
python weather_tool.py

测试用例:
- 输入 Beijing北京 查看北京天气
- 输入 Tokyo东京 查看东京天气
- 输入 q 退出程序

CHAPTER
06
进阶技巧:让AI编程更高效CHAPTER · 章节内容

📌 本节要点
✦ 技巧一:给AI提供上下文✦ 在Cursor中,按 @ 键可以引用文件、函数或文…✦ @web_scraper.py 帮我给这个爬虫添加…

技巧一:给AI提供上下文

在Cursor中,按 @ 键可以引用文件、函数或文档。比如:

Code
@web_scraper.py 帮我给这个爬虫添加代理支持

这样AI会参考你现有的代码,生成更贴合项目风格的代码。

技巧二:用AI学习代码

遇到看不懂的代码?在Cursor中选中代码,按 Ctrl+L 打开聊天,输入:

Code
用通俗易懂的中文解释这段代码,像给初学者讲课一样

技巧三:批量生成测试代码

写完一个函数后,在Copilot中输入:

Terminal
# 为上面的函数写单元测试
# 测试正常情况、边界情况、异常情况

Copilot会自动生成完整的测试用例。

技巧四:代码重构

在Cursor中选中一段代码,按 Ctrl+K 输入:

Code
重构这段代码:提取重复逻辑为函数,添加类型注解,改善变量命名

技巧五:生成文档

在Copilot中输入:

Terminal
# 为这个模块生成详细的docstring,包含功能说明、参数说明、返回值说明和使用示例

CHAPTER
07
今日总结SUMMARY · 核心总结

📌 本节要点
✦ 今晚我们完成了3个实战项目:✦ ③ 两个工具联手做天气工具——学会了根据工具特点分…

今晚我们完成了3个实战项目:

① 用Cursor搭建记账本——体验了自然语言编程的威力,从需求描述到可运行的程序,全程不需要手写代码

② 用Copilot写爬虫——掌握了注释驱动编程的技巧,让AI根据你的意图自动生成代码

③ 两个工具联手做天气工具——学会了根据工具特点分工协作,发挥各自优势

CHAPTER
08
今日行动项ACTION · 动手实践

📌 本节要点
✦ ① 完成至少一个项目:从今晚的3个项目中选一个,亲…✦ ② 尝试改进项目:在完成的基础上,用AI对话添加新…✦ 动手才能真正学会

① 完成至少一个项目:从今晚的3个项目中选一个,亲手做一遍。动手才能真正学会

② 尝试改进项目:在完成的基础上,用AI对话添加新功能。比如给记账本加图表展示,给爬虫加并发抓取

③ 记录学习心得:把使用AI编程工具的感受写下来,哪些地方好用,哪些地方需要改进

CHAPTER
09
🚇 地铁深读:AI编程的正确姿势DEEP READ · 延伸阅读

这个板块专为地铁通勤设计,每篇5-10分钟。不想深读可以跳过,不影响主线学习。

提示词工程在编程中的应用

用AI编程工具和用ChatGPT聊天有一个共同点:提示词的质量决定了输出的质量

低效的提示词

"帮我写一个程序"

高效的提示词

"用Python写一个命令行程序,功能是:读取data.csv文件(包含姓名、年龄、城市三列),筛选出年龄大于30岁的记录,按城市分组统计人数,结果输出为result.json文件。使用pandas库,添加异常处理。"

高效提示词的要素:
1. 明确语言和工具:Python、pandas
2. 描述具体功能:读取→筛选→分组→统计→输出
3. 指定输入输出格式:CSV输入、JSON输出
4. 说明特殊要求:异常处理

AI生成代码的质量控制

AI生成的代码不一定完美,你需要检查以下几点:

① 边界情况
- 空列表、空文件怎么办?
- 用户输入非法字符怎么处理?
- 网络超时、文件不存在如何应对?

② 安全性
- 是否有SQL注入风险?
- 用户输入是否做了验证?
- 敏感信息是否暴露在代码中?

③ 性能
- 大数据量时会不会很慢?
- 是否有不必要的重复计算?
- 内存使用是否合理?

推荐学习路径

如果你想系统提升AI辅助编程能力:

第一周:熟悉工具
- 安装Cursor或Copilot
- 完成5个简单练习(计算器、猜数字、文件整理等)
- 记录每个工具的使用感受

第二周:掌握技巧
- 学习提示词工程基础
- 练习注释驱动编程
- 尝试代码解释和调试功能

第三周:实战项目
- 选择一个真实需求(比如自动化报表、数据清洗)
- 用AI工具从零完成项目
- 记录开发过程中的问题和解决方案

第四周:进阶提升
- 学习代码审查技巧
- 尝试多文件项目管理
- 探索AI工具的高级功能

一个真实的案例

一位做市场分析的朋友,之前每周要花3小时手动整理销售数据。他用Cursor写了一个Python脚本:

Code
输入:每周的销售Excel文件
处理:自动清洗数据、计算关键指标、生成图表
输出:一份格式化的分析报告PDF

整个开发过程用了2小时,之后每周节省3小时。投入2小时,终身受益

这就是AI编程工具的魅力——它让"不会编程"不再是借口,让"自动化"触手可及。

CHAPTER
10
下篇预告PREVIEW · 明日预告

明天早上8点:Day40——AI搜索:新一代信息获取

明天下午5点:Day40——晚课 AI搜索实战

明天我们将探索AI如何改变我们获取信息的方式——传统的搜索引擎正在被AI搜索工具颠覆,你将学会如何用AI更高效地找到需要的信息。

📌 流程总结

既然看到这里了,如果觉得有用,
随手点个赞、推荐、转发三连吧

👍

点赞

❤️

推荐

🔄

转发

THANKS FOR READING