比尔盖茨已经说了这一切......做一个懒惰的程序员!.
作为一名程序员,没有什么比立即运行的代码更好的了——没有错误,没有无休止的调试。通过遵循某些提示技术,您不仅可以让 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 create_user_profile(name, age, email): return {"name": name, "age": age, "email": email} # Example usage: user_profile = create_user_profile("Alice", 30, "[email protected]") 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, "[email protected]", {"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
技巧:“编写一个 Python 函数来计算数字的平方根。激活调试模式以检查负输入等错误,并在必要时重写该函数。”
import math def square_root(n): if n
基本函数对于有效输入工作正常,但对于负数会崩溃。
优化的提示可确保对负输入进行错误处理,返回自定义消息而不是破坏代码。
您可以要求 ChatGPT 扮演高级代码审查员的角色,为您的代码提供反馈并建议最佳实践。
示例提示:“充当高级开发人员并检查我的 Python 函数,该函数检查数字是否为素数。提出改进性能和可读性的建议。”
def is_prime(n): if n提示提供了更优化的版本,仅检查奇数到平方根,这极大地提高了性能。
使用分层提示实现多功能输出
您可以在单个提示中堆叠多层功能,要求 ChatGPT 一次性处理多个相关任务。
基本提示:“编写Python函数生成随机密码。”
import random import string def generate_password(length): return ''.join(random.choices(string.ascii_letters string.digits, k=length)) # Example usage: print(generate_password(10)) # Output: Random 10-character password优化版本:》编写一个Python函数,生成随机密码。密码必须满足以下条件:至少12个字符,包含大写、小写、数字和特殊字符。另外,编写用于检查密码是否强的验证函数。"
import random import string import re def generate_password(length): characters = string.ascii_letters string.digits string.punctuation password = ''.join(random.choices(characters, k=length)) return password def validate_password(password): # Check length if len(password)
基本提示生成随机密码。
优化后提供了一个复杂的密码生成器,并包括检查密码强度的验证功能。
您可以要求 ChatGPT 一次性编写代码以及完整的测试套件,确保您的代码以最小的努力做好生产准备。 (如果你必须寻求帮助,一定要提出很多要求吗?)。
基本提示:“编写一个Python函数来检查字符串是否为回文。”
def is_palindrome(s): return s == s[::-1] # Example usage: print(is_palindrome("madam")) # Output: True print(is_palindrome("hello")) # Output: False
获取更多信息:“编写一个 Python 函数来检查字符串是否为回文。另外,使用 pytest 编写一个完整的测试套件,并使用 pytest 以及空字符串和空格等边缘情况。”
def is_palindrome(s): s = ''.join(c.lower() for c in s if c.isalnum()) # Remove non-alphanumeric characters return s == s[::-1] # Test suite def test_is_palindrome(): assert is_palindrome("madam") == True assert is_palindrome("hello") == False assert is_palindrome("A man, a plan, a canal, Panama") == True assert is_palindrome("") == True # Edge case: empty string assert is_palindrome(" ") == True # Edge case: only spaces # Example usage: print(is_palindrome("A man, a plan, a canal, Panama")) # Output: True
基本版本检查回文,但会忽略边缘情况。
隐藏的技巧不仅通过忽略空格和标点符号来细化函数,而且还使用 pytest 提供了全面的测试套件。
通过掌握这些技术,您可以从 ChatGPT 中提取高性能、无错误且可用于生产的代码,同时减少工作量。通过自动优化、内存触发器、错误处理和完整的测试套件,您将更智能地编写代码,而不是更困难。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3