[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。

ai编程最佳实践_ai辅助编程_提出要求_解决问题

回忆上次内容

  • 上次输出了
  • 随机数字 密码

  • 这下知道
  • 平时收到的验证码
  • 怎么来的了

  • 计算机中 没有所谓的 真·随机
  • 一般都是 依靠时间为变量 得到的 随机
  • AI 能如何 辅助我们编程呢?

猫屎咖啡

  • 有这么一个场景
  • 在Java岛上
  • 麝香猫 吃了 咖啡豆

  • 咖啡果肉 麝香猫 能消化
  • 咖啡果核 消化不了
  • 完整排出

购买

  • 刚排出的 水分多
  • 经过清洗(会降低风味)
  • 晾晒 或 烘干
  • 去壳 烘焙
  • 得到  Kopi(咖啡) Luwak(猫)
  • 30,0000 印尼盾 / 公斤

  • 我要 做个程序
  • 把购买的 斤数
  • 换算成 人民币金额
  • 怎么 问ai?

无用信息

  • 红色的 部分
  • 是 无关描述
  • 对 编程这个事 没用
  • 可以 删除

  • 信息 分两种
  • 第一种 对 编程目标 有用
  • 第二种 对 编程目标 没用
  • 我们 首先 需要 明白
  • 哪些 能落实到 代码上
  • 哪些 没有意义

简化之后

  • 精简了 提示词

  • 输入的部分
  • 没有进行异常处理
  • 这需要 我们大脑中 先有概念
  • 之前学的 try-except-else-finally 结构
  • 制作相关 容错处理
  • 增强 代码健壮性

结果

  • 直接提要求

  • try 的 第一句
  • 对应 ValueError 就得了
  • 目前是 一try到底
  • 这需要 我们了解 try语句的作用
  • 能够 理解 和 安排
  • 代码的 先后次序

尝试失败

  • 嘴上对我进行夸奖

  • try的作用域 没有改变
  • 还是 一try到底
  • 把程序 分成两步
  1. 录入购买斤数
  2. 根据斤数得到人民币金额

斤数

  • 先完成 第1步
  • 录入 斤数

  • 目前代码 可行
  • 需要 我们来做判定
  • 确认保留 当前的代码
  • 先跟ai 肯定 目前的状态
  • 刚做的这个 很好
  • ValueError 能 重新输入 了

继续增加功能

  • 在此基础上 追加一句
  • 负数和零 要 重新输入

  • 第一部分 录入功能 完成
  • 准备 第2步 转化工作
  • 从 猫屎斤数
  • 到 公斤数
  • 再到 印尼盾
  • 最后到 人民币

继续提要求

  • 还是 先巩固战果
  • 目前 已经成型的 部分
  • 在此基础之上
  • 添加新的代码

# 定义印尼盾对人民币的汇率,这里只是示例,需按实际调整
exchange_rate = 0.00045
while True:
    try:
        weight = float(input("请输入猫屎咖啡的购买斤数: "))
        if weight <= 0:
            print("输入的斤数不能为负数或 0,请重新输入。")
        else:
            print(f"你输入的购买斤数是: {weight} 斤")
            break
    except ValueError:
        print("输入的不是有效的数字,请重新输入。")
# 将斤数转换为公斤数,1公斤 = 2斤
weight_kg = weight / 2
# 计算对应的印尼盾价格,每公斤30万印尼盾
price_idr = weight_kg * 300000
# 计算对应的人民币价格
price_cny = price_idr * exchange_rate
print(f"购买{weight}斤猫屎咖啡,共{weight_kg}公斤,需要{price_idr}印尼盾,折合人民币约为{price_cny}元。")

运行结果

  • 常规情况 问题不大

  • 需要在最终部分
  • 保留两位小数

继续提要求

  • 还是要 先巩固已有成果

# 定义印尼盾对人民币的汇率,这里只是示例,需按实际调整
exchange_rate = 0.00045
while True:
    try:
        weight = float(input("请输入猫屎咖啡的购买斤数: "))
        if weight <= 0:
            print("输入的斤数不能为负数或 0,请重新输入。")
        else:
            print(f"你输入的购买斤数是: {weight} 斤")
            break
    except ValueError:
        print("输入的不是有效的数字,请重新输入。")
# 将斤数转换为公斤数,1公斤 = 2斤
weight_kg = weight / 2
# 计算对应的印尼盾价格,每公斤30万印尼盾
price_idr = weight_kg * 300000
# 计算对应的人民币价格
price_cny = price_idr * exchange_rate
# 使用字符串格式化保留两位小数
print(f"购买{weight}斤猫屎咖啡,共{weight_kg}公斤,需要{price_idr:.2f}印尼盾,折合人民币约为{price_cny:.2f}元。")
  • 不是 四舍五入
  • 而是 向上取整 保留两位小数

最终代码

  • 最终代码 已经完全
  • 符合 目标要求

稳步推进

  • 这次使用ai 有3个结论
  1. 和程序逻辑无关的 没必要说
  2. 复杂的流程
  • 不期待一次成功
  • 一次说不清
  • 可以 拆解成 若干步骤
  • 单一步骤 用简单 话语描述清楚
  • 对自己、对ai都好
  1. 对于已经完成的代码
  • 能够确认 他可行👍
  • 并且 巩固战果
  • 再 向下 继续编码
  • 小步快跑 快速迭代

  • ai时代的编程
  • 需要先整理好 自己的需求
  • 再将需求 合理拆分成 可以看到战果的 小目标
  • 然后 逐步巩固战果
  • 并 向前推进
  • 在此过程中
  • 人和ai 是 如何分工的呢?

总结

  • 人 需要
  • 明确 目标
  • 拆分 步骤
  • 确认 结果
  • 向前 推进
  • ai 负责
  • 落实 代码
  • 解释 含义
  • 提供 建议

  • ai时代
  • 编程 不会 被终结
  • 一切 都会变成 编程
相关文章
|
5天前
|
人工智能 自然语言处理 前端开发
Trae插件Builder模式深度测评:从编程助手到AI工程师的进化
Trae插件最新推出的Builder模式标志着AI辅助编程工具从简单的代码补全向“AI工程师”角色的转变。该模式允许开发者通过自然语言描述项目需求,自动生成完整的项目结构、代码文件和开发流程,支持VSCode、JetBrains IDE及在线Web版本。Builder模式的核心功能包括自然语言项目初始化、智能项目架构设计和多文件协调代码生成,显著提升了开发效率,降低了技术门槛。然而,它在处理复杂业务逻辑和高度定制化需求方面仍有局限。未来,Builder模式将集成云部署、测试套件生成和DevOps流水线等功能
196 1
|
13天前
|
人工智能 自然语言处理 安全
学不会编程也能写测试?AI让测试更平权
在传统的软件开发体系中,测试常被划分为“技术型测试”(如自动化、性能、安全)和“业务型测试”(如功能验证、用户体验)。前者掌握技术话语权,后者则更多依赖经验和流程规范。然而,随着大语言模型(LLM)等AI技术的迅猛发展,这一固有格局正被悄然打破:
73 10
|
29天前
|
机器学习/深度学习 数据采集 API
Python自动化解决滑块验证码的最佳实践
Python自动化解决滑块验证码的最佳实践
|
1月前
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
131 62
|
2天前
|
人工智能 关系型数据库 分布式数据库
PolarDB for AI:客户案例与最佳实践分享
本文介绍了阿里云PolarDB for AI在游戏、制造和广告行业的应用案例。PolarDB for AI具备一站式AI服务、强隐私保护及简单开发的优势,打破数据库与业务间的壁垒,为企业数字化转型提供高效支持。
|
11天前
|
存储 索引 Python
[oeasy]python093_find方法_指数为负数_index_实际效果
本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
273 8
|
13天前
|
数据采集 安全 BI
用Python编程基础提升工作效率
一、文件处理整明白了,少加两小时班 (敲暖气管子)领导让整理100个Excel表?手都干抽筋儿了?Python就跟铲雪车似的,哗哗给你整利索!
50 11
|
1月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
55 20
|
1月前
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
86 14
|
1月前
|
人工智能 Java 开发者
通义灵码:当AI成为你的编程搭档,效率革命已经到来
本文介绍了通义灵码作为AI编程伙伴的革命性意义及其技术特点。基于阿里云通义代码大模型CodeQwen1.5,它具备多模态代码理解、意图推理和跨语言知识融合能力,可重构开发者工作流,从智能编码到Debug预警再到文档自动化全面提升效率。数据显示,其能将常规开发时间缩短60%,错误率下降43%,新技术上手速度提升2倍。未来,通义灵码将推动需求-代码双向翻译、架构自演进等全新编程形态,助力开发者聚焦更高价值领域,开启人机共生的编程新时代。
101 10