ChatGPT教你用Python實現(xiàn)BinarySearchTree詳解
前言
至今,ChatGPT 已經(jīng)火了很多輪,我在第一輪的時候注冊了賬號,遺憾的是,沒有徹頭徹尾好好地體驗過一次。最近這一次火爆,ChatGPT 確實出圈了,各行各業(yè)的人們都在曬,趁著周末,我也小試了一把。
這篇文會介紹我使用 ChatGPT 的過程以及使用時的一些感悟,最后淺談下我對 ChatGPT 的一些理解,不喜勿噴哈~
我的問題是:我是一個 Java 程序員,現(xiàn)在想了解 Python,切入點是如何用 Python 實現(xiàn) BinarySearchTree,我想在這個過程中更多的了解 Python 的語法,不注重算法實現(xiàn)。
下面給大家看下我問 ChatGPT 的過程。(多圖預(yù)警?。。。?/p>
ChatGPT 截圖
我會挑選一些有代表性的內(nèi)容展示給大家,事實上我問了更多的語法細(xì)節(jié)


首先,ChatGPT 直接"意識"到我想知道 python 中的泛型要如何寫,并給出了相應(yīng)的解釋。
然后,代碼上,ChatGPT 不僅給出了 BinarySearchTree 的定義,還附加了 insert 等一些操作方法,注意,這里并沒有算法的實現(xiàn),是 ChatGPT 知道我問題的重點在語法,不是算法實現(xiàn)?(細(xì)思極恐)
最后有個小瑕疵是,Comparable 需要 import,代碼中沒寫。
我們繼續(xù)看


這里對 Optional 的上下文關(guān)聯(lián)沒有做好,如果還是根據(jù) Optional[BinaryNode[AnyTyple]] 做解釋,會更好。但有一說一,還是清楚的解決了我的問題。
至此,我迅速了解了 python 的 Class 如何定義,泛型如何定義,Comparable 怎么用,以及一些附加的語法(大概耗費了 1.5 小時)
然后,我開始嘗試自己實現(xiàn)方法細(xì)節(jié),比如 contains 方法,在這個過程中仍會遇到一些小問題

這里可以看到,我的問題沒有主動幫忙斷句,是一段代碼混著我的問題一起問的(因為我不知道怎么換行,一按 enter\command + enter 就直接提問題 - -)
但是,ChatGPT 回答的情況依然令我滿意,我們工作中遇到這種問題可能會卡一會,因為這個問題太具體了,現(xiàn)在的搜索引擎無法解決這么具體的問題,如果身邊有懂 python 的人可能會瞬間幫你解答,但現(xiàn)在有了 ChatGPT,這種具體的問題也能被瞬間解答了,很優(yōu)秀。
對 ChatGPT 的一些感悟
首先聲明,我對 ChatGPT 的原理只是略知一二,技術(shù)細(xì)節(jié)還沒詳細(xì)調(diào)研。相信詳細(xì)調(diào)研后,感悟上會少一些驚艷,畢竟我們對未知的、不了解的領(lǐng)域會保留敬畏之心。
下面我只談一談我作為一個 chatGPT 用戶,使用上的體驗:
1、ChatGPT 成為下一代搜索引擎,毋庸置疑
通過這次體驗,一個最直接的感受是,我能直截了當(dāng)?shù)貑栁耶?dāng)下遇到問題,省去了將問題抽象成通用的問題的步驟,比如我就想知道 public class BinarySearchTree<AnyType extends Comparable<? super AnyType>> 用 python 要怎么寫
用 Google 搜索,你不可能直接在搜索框輸入 將下面 java 代碼用 python 實現(xiàn) public class BinarySearchTree<AnyType extends Comparable<? super AnyType>>
如果直接輸入,會得到

因為 Google 無法理解你真正的訴求是什么,只會根據(jù)問題中的關(guān)鍵字檢索出你需要的信息,所以更多的結(jié)果是 Java 實現(xiàn)的 BinarySearchTree
假如我就是要用 Google 解決這個問題,我可能需要問的是:
- Python 中如何使用泛型
- Python 中的 Comparable 具體如何使用?
- 根據(jù)檢索的知識碎片自己加以理解并組合起來
- 嘗試寫出 Python 代碼
- 解決各種 IDE 中提示的編譯問題,遺憾的是,每遇到一個問題,我又要重復(fù)上面的過程
但對 ChatGPT 來說,他似乎更懂你想要問什么,省去了你在用 Google 搜索的 12345 步,大大提升了解決問題的效率。
2、上下文關(guān)聯(lián)能力強
順著 ChatGPT 更懂你 的話題說,我們遇到的問題通常不是一次性就能找到答案的,更多是一個問題鏈,需要一環(huán)扣一環(huán)的解決。ChatGPT 做到了在一個 Chat 中,讓你的所有問題關(guān)聯(lián)起來,好像他幫你抽象出了話題的主題是什么,讓你不需要在問每個問題的時候都把背景交代的非常清楚,這也是一種提效。
3、未來的可能性
首先,ChatGPT 的回答并不是 100% 正確的,仍需要人去甄別是否是自己想要的答案。但我相信隨著用戶越來越多,ChatGPT 會被進(jìn)一步訓(xùn)練,繼續(xù)進(jìn)化,正確率會持續(xù)上升。
下一代搜索引擎就不多說了,微軟已經(jīng)開始推出 new bing 了。
另外想說的是,ChatGPT 能賦能語音交互,進(jìn)一步提效,由于 ChatGPT 還不涉及圖片視頻領(lǐng)域,并且目前文字轉(zhuǎn)語音以及語音轉(zhuǎn)文字的技術(shù)已經(jīng)成熟,如果將 ChatGPT 做成語音機(jī)器人,我覺得成為初代鋼鐵俠中的賈維斯不是問題。
再有就是,openAI 的部分模型是開放的,垂直業(yè)務(wù)完全可以利用模型的能力,解決當(dāng)下的重復(fù)勞動問題,例如客服。
整體來說,ChatGPT 的出現(xiàn)讓我們獲取知識的效率進(jìn)一步提升,后面對很多行業(yè)都會有沖擊,反正我是被這東西搞的瑟瑟發(fā)抖了。那么,大家覺得什么樣的程序員不會被 chatGPT 取代?
以上就是ChatGPT教你用Python實現(xiàn)BinarySearchTree詳解的詳細(xì)內(nèi)容,更多關(guān)于Python實現(xiàn)BinarySearchTree的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于Python的網(wǎng)頁自動化工具DrissionPage的使用詳解
DrissionPage 是一個基于 python 的網(wǎng)頁自動化工具,它既能控制瀏覽器,也能收發(fā)數(shù)據(jù)包,還能把兩者合而為一,下面就跟隨小編一起來學(xué)習(xí)一下它的具體使用吧2024-01-01
這篇文章主要介紹了在 Python 中借助日志記錄庫使用 Log4j,本文解釋了什么是 log4j,它是如何工作的,以及我們?yōu)槭裁匆褂盟?,需要的朋友可以參考?/div> 2023-07-07
Python實現(xiàn)將SQLite中的數(shù)據(jù)直接輸出為CVS的方法示例
這篇文章主要介紹了Python實現(xiàn)將SQLite中的數(shù)據(jù)直接輸出為CVS的方法,涉及Python連接、讀取SQLite數(shù)據(jù)庫及轉(zhuǎn)換CVS格式數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
Python基于wxPython和FFmpeg開發(fā)一個視頻標(biāo)簽工具
在當(dāng)今數(shù)字媒體時代,視頻內(nèi)容的管理和標(biāo)記變得越來越重要,無論是研究人員需要對實驗視頻進(jìn)行時間點標(biāo)記,還是個人用戶希望對家庭視頻進(jìn)行分類整理,一個高效的視頻標(biāo)簽工具都是不可或缺的,本文將詳細(xì)分析一個基于Python、wxPython和FFmpeg開發(fā)的視頻標(biāo)簽工具2025-04-04最新評論

