admin管理员组

文章数量:1626985

如何使用 ChatGPT 编写 Python 函数

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

在这篇文章中,我将分享如何使用 ChatGPT 来帮助我编程的过程。我们将看到它在哪些方面做得好,在哪些方面做得不好。

TLDR:

  • 为 ChatGPT 提供大量上下文和清晰的说明。

  • 一次只创建一个函数。

  • 请 ChatGPT 编写单元测试,然后修复单元测试。

  • 使用测试来查找功能失败的地方。

  • 请 ChatGPT 修复该功能,如果不能,请让 ChatGPT 尝试以不同的方式解决问题。

  • 如有必要,请 ChatGPT 创建 Docstring 和描述性变量名称。

比方说,我想要一个函数来删除字符串开头和结尾的空格,删除重复的空格,并确保每个句子的第一个单词大写。

这个结果实际上是不正确的(至少在两个方面)。第一个错误是string.capitalize()确保字符串的第一个字母大写,其他字母将变为小写。这不是我想要的。如果一个字母已经是大写的,我希望它保持大写。如果字符串中有多个句子,我希望每个句子的第一个单词都是大写。第二个错误是示例和输出。实际输出将是Hello, world! how are you today?.

我可以将错误告诉 ChatGPT 并要求修复,但我要改变策略。我更喜欢使用 Regex 的函数。我将打开一个新聊天并重新开始。

这看起来好多了。正则表达式可能难以理解,所以我感谢 ChatGPT 对其进行解释。我认为这个函数仍然无法将以“?”开头的句子的第一个单词大写。或“!”。也许它会以某些我无法通过观察判断的方式失败。我会问 ChatGPT。

ChatGPT 回答是的,但它是错误的。这不仅是错误的,而且在运行该函数之后,我现在知道它根本无法将任何东西大写。

这告诉我,我的要求可能过于雄心勃勃。我会再试一次,在新聊天中添加更多上下文。

这段代码也是错误的。它不会将每个句子开头的单词大写。我怀疑这是lambda给我们带来麻烦的功能。在新聊天中,我会要求它避免使用该lambda功能。

这个函数是迄今为止最好的结果,但也是错误的。它不会将字符串中的第一个单词大写。很容易原谅 ChatGPT 这个错误,因为指令可能被认为是模棱两可的,但示例的输出无疑是错误的。让我们暂时离开它。

无论您的编码经验如何,编写单元测试始终是一个好习惯。ChatGPT 擅长于此。

ChatGPT 在这方面没问题。它没有为每个单元测试创建一个函数,并且前两个测试的输入和预期结果不一致。第一个测试期望第一个字母保持小写,第二个测试期望它使第一个字母大写。

它并不完美,但对我们来说是一个良好的开端。让我们看看是否可以提高可读性。

下一步将是修复单元测试,添加我自己的单元测试,并找出此功能失败的地方。当我发现错误时,我会要求 ChatGPT 修复它(或者自己修复)。

这修复了字符串中的第一个元素是字母时的问题,但是当第一个单词的开头有空格时会失败。幸运的是,我们编写了单元测试来捕获这些问题。我可以要求 ChatGPT 解决此问题,但我发现可以通过将行移至s = re.sub(r'\s+', ' ').strip()函数顶部来解决此问题。

最后,我想整理一下功能。评论应该回答“为什么”,而不是“如何”。

文档字符串非常好。我向 ChatGPT 重申我希望删除评论,但它仍然没有删除它们。我必须自己删除评论。

如果我觉得有点异想天开,我可能会要求 ChatGPT 在 Docstring 方面发挥创意。

在这种情况下,它有点太罗嗦了,所以我会继续原来的。

当我开始写这篇文章时,我没想到 ChatGPT 会在这个任务上遇到这么多麻烦。不过,它确实让我很容易展示“ChatGPT 做得不好的地方”。

TLDR

  • 使用清晰的说明制作您的 ChatGPT 提示。您甚至可以包括示例。

  • 创建一个独立的函数(更容易测试)。

  • ChatGPT 可以帮助编写单元测试,但您需要确保您有足够且正确的测试。

  • 使用单元测试来查找功能失败的地方。请ChatGPT 修复该功能,如果不能,请找到错误并让ChatGPT 以不同的方式解决问题。

  • ChatGPT 可以编写 Docstrings 并重命名变量以更具描述性。您甚至可以要求它建议一个更好的函数名称。

你可能想知道我是否使用 ChatGPT 来帮助我编写这篇博文的非代码部分。我确实要求它校对和改进第一段,但我发现重写不必要地冗长,而且不符合我的写作风格。最后,我没有使用它。

推荐书单

《Python从入门到精通(第2版)》

《Python从入门到精通(第2版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分23章,包括初识Python、Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式、函数、面向对象程序设计、模块、异常处理及程序调试、文件及目录操作、操作数据库、GUI界面编程、Pygame游戏编程、网络爬虫开发、使用进程和线程、网络编程、Web编程、Flask框架、e起去旅行网站、AI图像识别工具等内容。所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。除此之外,该书还附配了243集高清教学微视频及PPT电子教案。

《Python从入门到精通(第2版)》【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《Python从入门到精通(第2版)》在线选购,本书作者:明日科技,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!https://item.jd/13284890.html

精彩回顾

《如虎添翼,将ChatGPT和Python结合起来!》

《ChatGPT优化Python代码的小技巧》

《使用ChatGPT提升Python编程效率》 

微信搜索关注《Python学研大本营》

访问【IT今日热榜】,发现每日技术热点

本文标签: 事半功倍函数chatGPTPython