首頁 後端開發 Python教學 快速工程(針對懶惰程式設計師):準確取得您想要的程式碼(甚至更多,從 ChatGPT 取得)

快速工程(針對懶惰程式設計師):準確取得您想要的程式碼(甚至更多,從 ChatGPT 取得)

Oct 31, 2024 pm 12:03 PM

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 < 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))
登入後複製
登入後複製
登入後複製
  • 基本版本檢查回文,但會忽略邊緣狀況。

  • 隱藏的技巧不僅透過忽略空格和標點符號來細化函數,而且還提供了使用 pytest 的全面測試套件。

透過掌握這些技術,您可以從 ChatGPT 中提取高效能、無錯誤且可用於生產的程式碼,同時減少工作量。借助自動優化、記憶體觸發器、錯誤處理和完整的測試套件,您將更聰明地編寫程式碼,而不是更困難。

以上是快速工程(針對懶惰程式設計師):準確取得您想要的程式碼(甚至更多,從 ChatGPT 取得)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1663
14
CakePHP 教程
1420
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
Python vs.C:申請和用例 Python vs.C:申請和用例 Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法 2小時的Python計劃:一種現實的方法 Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:遊戲,Guis等 Python:遊戲,Guis等 Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

您可以在2小時內學到多少python? 您可以在2小時內學到多少python? Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

Python與C:學習曲線和易用性 Python與C:學習曲線和易用性 Apr 19, 2025 am 12:20 AM

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

Python和時間:充分利用您的學習時間 Python和時間:充分利用您的學習時間 Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:探索其主要應用程序 Python:探索其主要應用程序 Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

Python:自動化,腳本和任務管理 Python:自動化,腳本和任務管理 Apr 16, 2025 am 12:14 AM

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

See all articles