搜索
首页后端开发Python教程快速工程(针对懒惰程序员):准确获取您想要的代码(甚至更多,从 ChatGPT 中获取)

Prompt Engineering (For Lazy Programmers): Getting Exactly the Code You Want (and Even More, Out of ChatGPT)

比尔盖茨都说了...做一个懒惰的程序员!.

作为一名程序员,没有什么比立即运行的代码更好的了——没有错误,没有无休止的调试。通过遵循某些提示技术,您不仅可以让 ChatGPT 编写代码,还可以编写优化的、功能齐全且有文档记录的代码,包括边缘案例、测试,甚至性能优化。

但首先...

什么是即时工程?

人工智能,特别是 ChatGPT,已成为内容创建、编码辅助和回答复杂问题的强大工具。然而,许多人并没有充分发挥其潜力。神奇之处在于您如何表达您的请求——我们称之为即时工程。在本文中,我们将探索可以让您的 ChatGPT 体验更加富有成效的技术,重点介绍一些可以让您作为软件程序员的提示从普通变为出色的技巧。

为什么及时工程很重要?

ChatGPT 经过大量数据训练,但它的响应取决于您给出的提示的质量。措辞不当或含糊不清的提示可能会导致不相关或笼统的答案。相反,结构良好的提示可以产生深思熟虑、准确且富有创意的回应。

本指南将帮助懒惰的程序员(比如我自己?)使用提示工程从 ChatGPT 获得高质量、优化的、甚至功能更强大的代码。这些将专门让 ChatGPT 承担繁重的工作——自动生成代码、改进代码,甚至提出优化和测试建议。下面,我还提供了一些示例,比较了正常提示与优化提示以及它们生成的结果。

那么让我们开始吧!.

触发自动优化以获得更好的代码

要求 ChatGPT 通过嵌入触发器来自动优化其响应,以发现效率低下、提出优化建议或添加功能。

基本提示:“编写一个Python函数来反转字符串。”

def reverse_string(s):
    return s[::-1]

# Example usage:
print(reverse_string("hello"))  # Output: "olleh"

优化提示:“编写一个Python函数来反转字符串。如果输入太大或效率低下,建议更好的方法来高效处理大字符串。”

def reverse_string(s):
    return s[::-1]

# Trigger: Refining for large strings
def reverse_large_string(s):
    # Handle large strings in chunks for efficiency
    chunk_size = 100000  # Process in 100k chunks
    return ''.join(s[i:i+chunk_size][::-1] for i in range(0, len(s), chunk_size))

# Example usage:
large_string = "a" * 1000000  # 1 million characters
print(reverse_large_string(large_string))
  • 基本功能很简单,适用于小输入。

  • 经过优化,引入了一种高效的基于块的解决方案,用于反转大字符串而不消耗太多内存。

多步骤项目的情境记忆

当您需要多步骤项目的代码时,ChatGPT 可以记住之前的步骤。这对于您在另一层之上构建一层的更复杂的工作流程来说是理想的选择。

基本提示:“编写一个Python函数来创建用户配置文件。”

def reverse_string(s):
    return s[::-1]

# Example usage:
print(reverse_string("hello"))  # Output: "olleh"

优化提示:“编写一个Python函数来创建用户配置文件。现在,扩展它以存储用户首选项并将其与数据库连接以保存配置文件。”

def reverse_string(s):
    return s[::-1]

# Trigger: Refining for large strings
def reverse_large_string(s):
    # Handle large strings in chunks for efficiency
    chunk_size = 100000  # Process in 100k chunks
    return ''.join(s[i:i+chunk_size][::-1] for i in range(0, len(s), chunk_size))

# Example usage:
large_string = "a" * 1000000  # 1 million characters
print(reverse_large_string(large_string))
  • 基本提示中的第一个功能创建一个简单的用户配置文件。

  • 第二个提示创建一个连接数据库的用户配置文件管理器,具有用于保存数据的扩展功能。

请求调试模式以获得无错误代码

您可以要求 ChatGPT 就像在调试模式下运行一样,在交付最终输出之前检查并纠正代码中的潜在问题。

简单提示示例:“编写一个 Python 函数来计算数字的平方根。”

def create_user_profile(name, age, email):
    return {"name": name, "age": age, "email": email}

# Example usage:
user_profile = create_user_profile("Alice", 30, "alice@example.com")
print(user_profile)

技巧:“编写一个 Python 函数来计算数字的平方根。激活调试模式以检查负输入等错误,并在必要时重写该函数。”

def create_user_profile(name, age, email, preferences):
    return {"name": name, "age": age, "email": email, "preferences": preferences}

# Extend with a database connection
import sqlite3

def save_user_profile(profile):
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS users
                      (name TEXT, age INTEGER, email TEXT, preferences TEXT)''')
    cursor.execute('''INSERT INTO users (name, age, email, preferences)
                      VALUES (?, ?, ?, ?)''', 
                   (profile['name'], profile['age'], profile['email'], str(profile['preferences'])))
    conn.commit()
    conn.close()

# Example usage:
user_profile = create_user_profile("Alice", 30, "alice@example.com", {"theme": "dark"})
save_user_profile(user_profile)

  • 基本函数对于有效输入工作正常,但对于负数会崩溃。

  • 优化的提示可确保对负输入进行错误处理,返回自定义消息而不是破坏代码。

角色扮演:充当代码审查员

您可以要求 ChatGPT 扮演高级代码审阅者的角色,为您的代码提供反馈并建议最佳实践。

示例提示:“充当高级开发人员并检查我的 Python 函数,该函数检查数字是否为素数。提出性能和可读性改进建议。”

import math

def square_root(n):
    return math.sqrt(n)

# Example usage:
print(square_root(16))  # Output: 4.0

提示提供了更优化的版本,仅检查奇数到平方根,这极大地提高了性能。

使用分层提示实现多功能输出

您可以在一个提示中堆叠多层功能,要求 ChatGPT 一次性处理多个相关任务。

基本提示:“编写一个Python函数来生成随机密码。”

import math

def square_root(n):
    if n 



<p><strong>优化版本:</strong>“编写一个Python函数生成随机密码。密码必须满足以下条件:至少12个字符,包含大写、小写、数字和特殊字符。另外,编写验证功能来检查密码是否强。”<br>
</p>

<pre class="brush:php;toolbar:false">def is_prime(n):
    if n 



  • 基本提示会生成一个随机密码。

  • 优化后提供了一个复杂的密码生成器,并包含检查密码强度的验证功能。

测试驱动开发:生成完整的测试套件

您可以要求 ChatGPT 一次性编写代码以及完整的测试套件,确保您的代码以最小的努力做好生产准备。 (如果你必须寻求帮助,一定要提出很多要求吗?)。

基本提示:“编写一个 Python 函数来检查字符串是否为回文。”

def reverse_string(s):
    return s[::-1]

# Example usage:
print(reverse_string("hello"))  # Output: "olleh"

获取更多:“编写一个 Python 函数来检查字符串是否为回文。此外,使用 pytest 编写一个完整的测试套件,并使用 pytest 以及空字符串和空格等边缘情况。”

def reverse_string(s):
    return s[::-1]

# Trigger: Refining for large strings
def reverse_large_string(s):
    # Handle large strings in chunks for efficiency
    chunk_size = 100000  # Process in 100k chunks
    return ''.join(s[i:i+chunk_size][::-1] for i in range(0, len(s), chunk_size))

# Example usage:
large_string = "a" * 1000000  # 1 million characters
print(reverse_large_string(large_string))
  • 基本版本检查回文,但会忽略边缘情况。

  • 隐藏的技巧不仅通过忽略空格和标点符号来细化函数,而且还提供了使用 pytest 的全面测试套件。

通过掌握这些技术,您可以从 ChatGPT 中提取高性能、无错误且可用于生产的代码,同时减少工作量。借助自动优化、内存触发器、错误处理和完整的测试套件,您将更智能地编写代码,而不是更困难。

以上是快速工程(针对懒惰程序员):准确获取您想要的代码(甚至更多,从 ChatGPT 中获取)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何使用Python查找文本文件的ZIPF分布如何使用Python查找文本文件的ZIPF分布Mar 05, 2025 am 09:58 AM

本教程演示如何使用Python处理Zipf定律这一统计概念,并展示Python在处理该定律时读取和排序大型文本文件的效率。 您可能想知道Zipf分布这个术语是什么意思。要理解这个术语,我们首先需要定义Zipf定律。别担心,我会尽量简化说明。 Zipf定律 Zipf定律简单来说就是:在一个大型自然语言语料库中,最频繁出现的词的出现频率大约是第二频繁词的两倍,是第三频繁词的三倍,是第四频繁词的四倍,以此类推。 让我们来看一个例子。如果您查看美国英语的Brown语料库,您会注意到最频繁出现的词是“th

python中的图像过滤python中的图像过滤Mar 03, 2025 am 09:44 AM

处理嘈杂的图像是一个常见的问题,尤其是手机或低分辨率摄像头照片。 本教程使用OpenCV探索Python中的图像过滤技术来解决此问题。 图像过滤:功能强大的工具 图像过滤器

我如何使用美丽的汤来解析HTML?我如何使用美丽的汤来解析HTML?Mar 10, 2025 pm 06:54 PM

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

如何使用TensorFlow或Pytorch进行深度学习?如何使用TensorFlow或Pytorch进行深度学习?Mar 10, 2025 pm 06:52 PM

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

Python中的平行和并发编程简介Python中的平行和并发编程简介Mar 03, 2025 am 10:32 AM

Python是数据科学和处理的最爱,为高性能计算提供了丰富的生态系统。但是,Python中的并行编程提出了独特的挑战。本教程探讨了这些挑战,重点是全球解释

如何在Python中实现自己的数据结构如何在Python中实现自己的数据结构Mar 03, 2025 am 09:28 AM

本教程演示了在Python 3中创建自定义管道数据结构,利用类和操作员超载以增强功能。 管道的灵活性在于它能够将一系列函数应用于数据集的能力,GE

python对象的序列化和避难所化:第1部分python对象的序列化和避难所化:第1部分Mar 08, 2025 am 09:39 AM

Python 对象的序列化和反序列化是任何非平凡程序的关键方面。如果您将某些内容保存到 Python 文件中,如果您读取配置文件,或者如果您响应 HTTP 请求,您都会进行对象序列化和反序列化。 从某种意义上说,序列化和反序列化是世界上最无聊的事情。谁会在乎所有这些格式和协议?您想持久化或流式传输一些 Python 对象,并在以后完整地取回它们。 这是一种在概念层面上看待世界的好方法。但是,在实际层面上,您选择的序列化方案、格式或协议可能会决定程序运行的速度、安全性、维护状态的自由度以及与其他系

Python中的数学模块:统计Python中的数学模块:统计Mar 09, 2025 am 11:40 AM

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),