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


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


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

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

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

