比爾蓋茲都說了...做個懶惰的程式設計師! .
作為一名程式設計師,沒有什麼比立即運行的程式碼更好的了——沒有錯誤,沒有無休止的調試。透過遵循某些提示技術,您不僅可以讓 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 < 0: return "Error: Cannot calculate square root of a negative number" return math.sqrt(n) # Debugged version handles errors properly. # Example usage: print(square_root(16)) # Output: 4.0 print(square_root(-16)) # Output: "Error: Cannot calculate square root of a negative number"
最佳化版本:「編寫一個Python函數產生隨機密碼。密碼必須滿足以下條件:至少12個字符,包含大寫、小寫、數字和特殊字元。另外,編寫驗證功能來檢查密碼是否強。
def is_prime(n): if n <= 1: return False if n == 2: return True if n % 2 == 0: return False # Only check odd numbers up to the square root of n for efficiency for i in range(3, int(n**0.5) + 1, 2): if n % i == 0: return False return True # Review: # - Optimised the loop to check divisibility only up to the square root of n. # - Reduced checks for even numbers to improve performance for large inputs. # Example usage: print(is_prime(5)) # Output: True print(is_prime(4)) # Output: False
您可以要求 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))
以上是快速工程(針對懶惰程式設計師):準確取得您想要的程式碼(甚至更多,從 ChatGPT 取得)的詳細內容。更多資訊請關注PHP中文網其他相關文章!