搜尋
首頁後端開發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

我如何使用美麗的湯來解析HTML?我如何使用美麗的湯來解析HTML?Mar 10, 2025 pm 06:54 PM

本文解釋瞭如何使用美麗的湯庫來解析html。 它詳細介紹了常見方法,例如find(),find_all(),select()和get_text(),以用於數據提取,處理不同的HTML結構和錯誤以及替代方案(SEL)

python中的圖像過濾python中的圖像過濾Mar 03, 2025 am 09:44 AM

處理嘈雜的圖像是一個常見的問題,尤其是手機或低分辨率攝像頭照片。 本教程使用OpenCV探索Python中的圖像過濾技術來解決此問題。 圖像過濾:功能強大的工具圖像過濾器

如何使用Python使用PDF文檔如何使用Python使用PDF文檔Mar 02, 2025 am 09:54 AM

PDF 文件因其跨平台兼容性而廣受歡迎,內容和佈局在不同操作系統、閱讀設備和軟件上保持一致。然而,與 Python 處理純文本文件不同,PDF 文件是二進製文件,結構更複雜,包含字體、顏色和圖像等元素。 幸運的是,借助 Python 的外部模塊,處理 PDF 文件並非難事。本文將使用 PyPDF2 模塊演示如何打開 PDF 文件、打印頁面和提取文本。關於 PDF 文件的創建和編輯,請參考我的另一篇教程。 準備工作 核心在於使用外部模塊 PyPDF2。首先,使用 pip 安裝它: pip 是 P

如何在django應用程序中使用redis緩存如何在django應用程序中使用redis緩存Mar 02, 2025 am 10:10 AM

本教程演示瞭如何利用Redis緩存以提高Python應用程序的性能,特別是在Django框架內。 我們將介紹REDIS安裝,Django配置和性能比較,以突出顯示BENE

如何使用TensorFlow或Pytorch進行深度學習?如何使用TensorFlow或Pytorch進行深度學習?Mar 10, 2025 pm 06:52 PM

本文比較了Tensorflow和Pytorch的深度學習。 它詳細介紹了所涉及的步驟:數據準備,模型構建,培訓,評估和部署。 框架之間的關鍵差異,特別是關於計算刻度的

如何在Python中實現自己的數據結構如何在Python中實現自己的數據結構Mar 03, 2025 am 09:28 AM

本教程演示了在Python 3中創建自定義管道數據結構,利用類和操作員超載以增強功能。 管道的靈活性在於它能夠將一系列函數應用於數據集的能力,GE

Python中的平行和並發編程簡介Python中的平行和並發編程簡介Mar 03, 2025 am 10:32 AM

Python是數據科學和處理的最愛,為高性能計算提供了豐富的生態系統。但是,Python中的並行編程提出了獨特的挑戰。本教程探討了這些挑戰,重點是全球解釋

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尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器