InsCode AI Chat?能夠讓你通過聊天的方式幫你優化代碼。
一:前言
InsCode 是csdn推出的一個代碼分享網站
二、使用 AI 輔助完成代碼
下面我們就從實踐出發,基于 InsCode 的 AI輔助編程,寫Python實現的計算器。
1.基于模板創建項目
這里我們全程使用平臺進行編程,從創建項目開始,基于現有模板創建項目的方式,可以幫我們快速構建基礎環境。
在填寫表單一些基礎信息之后,我們點擊創建項目。
我們等項目創建完成之后,就會自動進入項目的主界面。在什么代碼都不動的情況下,直接點擊運行按鈕,這時頁面右側會直接運行項目,如果你的項目是 web 應用,則會打開網頁預覽窗口。
2. 使用 AI 輔助開拓思路
我們可以在編輯器中按下快捷鍵?Ctrl?+?L?,呼出InsCode AI Chat,你可以在這里和 Ai 進行文本交互。
比如,在本案例中,我們需要列舉幾個排序算法,那么,我不想自己思考,我想交給Ai,就可以這樣問。
~~~bash 我要用python實現一個交互式的能運行加減乘除的計算器,你有實現思路嗎?~~~
如下圖所示,我們就可以從 Ai 中得到答案。
Ai 給出了一個實現思路,可能是因為主題比較簡單,它甚至在最后直接輸出了完整的項目代碼。
這個實現的思路和我預期不太一樣,那我會給他一些提示,比如,我希望用戶依次輸入數字、運算符、數字,之后自動輸出結果,那么就會是下圖所示。
提示:在實際項目中,我們可以使用 Ai 不斷優化解決問題的方案,通過豐富需求細節得到自己想要的答案。
3. 使用 AI 輔助生成代碼
在InsCode中,我們可以通過寫注釋的方式讓 Ai 幫助生產部分代碼。
具體操作為,首先在代碼編輯器寫出注釋,然后選中注釋后右鍵菜單選擇完成代碼。
~~~bash 實現一個交互式的能運行加減乘除的計算器,用戶依次輸入數字、運算符、數字,之后自動輸出結果 ~~~
這個操作實現了將注釋和“繼續完成以上代碼”發給InsCode AI Chat,之后 AI 會根據當前的項目環境,輸出代碼和詳細解釋。
這就相當于是一位有問必答的編程老師,你的問題越是準確,那么你得到的答案越準確。
我們得到的完整代碼如下。
~~~python
實現一個交互式的能運行加減乘除的計算器,用戶依次輸入數字、運算符、數字,之后自動輸出結果
while True: num1 = float(input("請輸入第一個數字:")) operator = input("請輸入運算符:(+,-,*,/或exit退出)") num2 = float(input("請輸入第二個數字:"))
if operator == "+": result = num1 + num2 print("計算結果:", result)elif operator == "-": result = num1 - num2 print("計算結果:", result)elif operator == "*": result = num1 * num2 print("計算結果:", result)elif operator == "/": if num2 == 0: print("除數不能為0,請重新輸入") else: result = num1 / num2 print("計算結果:", result)elif operator == "exit": breakelse: print("無效的運算符,請重新輸入")
~~~
4. 使用 AI 輔助優化代碼
從目前發展的趨勢來看,我們實際的項目代碼必然不會是完全由 Ai 生成。
你還可以把 InsCode AI Chat 當成一位結對編程的同事,幫助你優化代碼。
還是以上面的代碼為例,我們人為去掉除數不能為零的判斷。再選中這部分代碼,右鍵選擇優化代碼。
我們可以看到,AI 通過另一種方式解決的除數為零的問題。
在此代碼中,我們定義了一個名為 calculator 的函數,其中包含了一個 while 循環來實現程序的持續運行,同時利用 try-except 來處理可能出現的錯誤,例如輸入無效數字或除數為零。
在函數體內,我們首先輸入兩個數字和運算符,然后使用 if-elif-else 語句判斷運算符的類型,進行相應的計算并輸出結果。當輸入無效的運算符時,我們會提示用戶重新輸入。除此之外,當輸入無效數字或除數為零時會有對應的錯誤提示。
最后,在 main.py 文件中調用 calculator 函數來執行計算器程序。
提示:目前 AI 生成代碼的風格并不統一,如果你要在實際項目中與運用,則需要注意代碼風格問題。
這次生成的完整代碼如下。
def calculator(): while True: try: num1 = float(input("請輸入第一個數字:")) operator = input("請輸入運算符:(+,-,*,/或exit退出)") if operator == "exit": break num2 = float(input("請輸入第二個數字:")) if operator == "+": result = num1 + num2 elif operator == "-": result = num1 - num2 elif operator == "*": result = num1 * num2 elif operator == "/": result = num1 / num2 else: print("無效的運算符,請重新輸入") continue print("計算結果:", result) except ValueError: print("無效的數字,請重新輸入") except ZeroDivisionError: print("除數不能為0,請重新輸入")if __name__ == '__main__': calculator()
三、InsCode AI Chat 的使用建議
根據我的體驗,建議你這樣使用 InsCode AI Chat 。
-
盡量拆分問題,精確清晰的問題能提升輸出的代碼質量;
-
反復使用代碼優化功能,AI 給出的代碼不能保證第一次是最優的,建議不斷帶著問題優化代碼,以提升代碼質量;
-
使用右鍵的輔助功能,這樣可以讓 AI 基于現在所處的項目使用的編程語言分析代碼和需求
-
不要完全相信 AI 的代碼,盡量做參考
四、總結
InsCode AI Chat 功能的加入,使得在校學生可以更容易地學習編程。
只要你的問題足夠清晰,就會得到相對滿意的結果,當然問題描述需要的是我們的深入思考。
當怎么做變得唾手可得,那么為什么做就變得越來越珍貴。