如何有效利用ChatGPT寫代碼?
能發光發熱的地方很多,各種場景化功能也不斷地被挖出來,比如寫文案、寫論文、寫代碼、、數據分析、情感咨詢、科研分析等等,讓AI真正地有“智慧”了,而不是傳統語音助手式得“人工”智能。
我最近常用來輔助寫代碼,以及自動化實現一些辦公場景,發現它真的非常好用。
下面以和SQL編程為例,你只需要提,讓來實現代碼功能。
代碼
代碼一直是很費時間的事,即使編譯器給出了錯誤提示,你有時候也很難快速找到的方法, 所以會去百度、谷歌,查等各種網站找解決方案。
但是能快速定位代碼的bug,并給出解決方案,或者它可以改寫低效率的代碼,給出更優的方案。
以代碼為例,讓識別里面的語法錯誤(這個很簡單,不能除以0)
def f(a,b):
print(a/b)
f(4,0)
:
:
對于非語法錯誤,會給出合適的實現方法,我們使用遞推法寫個斐波那契數列,但發現并沒有輸出正確的斐波那契數列,讓給出解法。
def fib_next(n):
a = 0
b = 1
for _ in range(n):
a, b = a+b, b
return a
if __name__ == '__main__':
for i in range(1,9):
print(fib_next(i),end=',')
這段代碼輸出了1,2,3,4,5,6,7,8,顯然不是斐波那契數列
:
:
能力很強,對于常見的語法錯誤,基本都能識別出來,能節省開發者大量的檢索時間。
代碼翻譯為R語言
有時我們需要將一種編程語言代碼轉換為另一種編程語言來實現,比如在項目遷移時或者開發者切換時,這會費很大的功夫。
因為能在各種編程語言間自由穿梭,所以代碼翻譯是它的強項,下面舉個例子,將一段建模的代碼翻譯為R語言。
該代碼是一個分類模型,對產品不合格品進行檢測。
# 導入必要的庫
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 創建虛擬數據集
data = {
'硬度': [60, 70, 65, 55, 75, 80, 85, 90, 95, 100],
'重量': [100, 120, 110, 90, 130, 150, 160, 170, 180, 190],
'尺寸': [5, 6, 5.5, 4.5, 6.5, 7, 7.5, 8, 8.5, 9],
'合格': [1, 1, 1, 0, 1, 1, 1, 0, 0, 0] # 合格:1,不合格:0
}
df = pd.DataFrame(data)
# 分割特征和目標
X = df[['硬度', '重量', '尺寸']]
y = df['合格']
# 分割數據集為訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 創建決策樹分類器
classifier = DecisionTreeClassifier()
# 擬合模型
classifier.fit(X_train, y_train)
# 進行預測
y_pred = classifier.predict(X_test)
# 計算模型準確性
accuracy = accuracy_score(y_test, y_pred)
print(f'模型準確性:{accuracy * 100:.2f}%')
:
:
可以看到完美地將分類模型代碼翻譯為R語言代碼,保持了原有數據和功能,非常的清晰。
你可以嘗試將翻譯為任何其他編程語言,會節省你很多開發時間。
編寫代碼文檔
在正規的項目開發中,都需要為代碼編寫代碼文檔,方便查看和維護。
可以為你編寫代碼文檔,你只需要在這個基礎上做補充和完善,非常的方便。
以上面分類模型代碼為例,我們讓編寫代碼文檔,看看效果如何。
:
:
還是不錯完成了代碼文檔的編寫,將該代碼的功能和實現步驟都體現了出來,而且格式也比較規范。
編寫SQL查詢語句
寫SQL是數據從業者幾乎每天要做的事情,有的查詢比較復雜,會占用大量的時間,有了后只需要提出數據查詢需求,它便可以輸出查詢代碼,你只需要在這個基礎上稍作個性化修改,便可以直接用起來。
寫SQL代碼的好處是,它能高效的做代碼優化,給出較優的邏輯和用法,特別對于SQL新手來說很是方便。
這里準備了一個查詢場景:
查詢的數據是用戶網站瀏覽數據,包含用戶ID、登錄天數、UV、PV等字段,需要查詢登錄天數、UV、PV均大于中位數的用戶
:
:
具體代碼:
SELECT UserID
FROM UserWebsiteData
WHERE LoginDays > (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY LoginDays) FROM UserWebsiteData)
AND UV > (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY UV) FROM UserWebsiteData)
AND PV > (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY PV) FROM UserWebsiteData);
確實沒有什么毛病,雖然是邏輯較為簡單的查詢,但是代碼數量卻不少,對于這種耗費體力的SQL查詢使用能很好的解決。
優化SQL查詢語句
很多SQL新手寫代碼不考慮查詢性能,導致查詢速度非常慢,如果是自己使用還好,要是放到調度里則會浪費資源。
可能幫你優化SQL查詢代碼,以下是示例代碼,使用了子查詢,看看如何優化
SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name = 'chackca');
:
:
給出兩條建議,一是使用INNE,二是為相關列添加索引,可以加速查詢。
懂SQL的人基本都會使用這兩個方法去優化查詢,給出的建議還是非常中肯的。
結論
上面只講到輔助編程的冰山一角,可以幫助你高效編程,大大節省代碼時間和提升代碼質量,我覺得是可以好好去利用的。
用好比你去上什么編程課程要有用百倍,它比市面上很多編程老師要厲害的多。
后面我會繼續分享輔助編程實現一些自動化的場景,比如:
你如果有什么心得也可以在評論區秀一下
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。