ChatGPT最近風(fēng)頭是真的猛财松,不過它的功能也確實很強大堪伍。從表面的聊天到更深入的回答科學(xué)問題靡砌,再到代碼檢查驼仪,ChatGPT都彰顯出了它很強的應(yīng)答功能掸犬,其中代碼檢查和詢問功能就是我們這種小白的福音啊。
雖然之前用的很爽绪爸,但是就在今天的代碼提問時我發(fā)現(xiàn)了一個挺大的問題湾碎。
最近有點想將處理基因組大數(shù)據(jù)的技能先入門了,這樣以后做實驗有收集到了數(shù)據(jù)就可以進(jìn)行各種數(shù)據(jù)挖掘奠货,而數(shù)據(jù)挖掘的入門就是python
今天在使用到python的RegEx(可以進(jìn)行字符串檢索的模塊)時介褥,我問了ChatGPT有關(guān)RegEx模塊中findall函數(shù)的問題
ChatGPT在關(guān)于re.findall函數(shù)解釋的前半段部分并沒有錯,re.findall()函數(shù)可用于查找字符串中出現(xiàn)的所有模式递惋,并將其作為列表返回柔滔,但在它舉的例子的結(jié)果是錯的。
輸入
import re
txt = "The quick brown fox jumps over the lazy dog."
matches = re.findall("o.", txt)
print(matches)
返回的結(jié)果應(yīng)該是
即
['ow', 'ox', 'ov', 'og']
但是ChatGPT返回的結(jié)果是
['ox', 'ov']
ChatGPT還貼心地解釋了re.findall函數(shù)'o.'和txt的兩個參數(shù)大意是這里的'o.'后面可以跟任何字符串作為pattern進(jìn)行匹配
但是txt = "The quick brown fox jumps over the lazy dog."這里面的brown和dog不是應(yīng)該也有匹配項ow和og嗎
對此ChatGPT的解釋是:
There .findall() function returns a list of all non-overlapping matches of the pattern in the string.
即返回字符串中模式的所有非重疊匹配項的列表
對此我直接懵了
對此問題我展開追問
而ChatGPT的回答說的好像有道理丹墨,但是就是看不懂廊遍,以至于一度讓我懷疑自己的智商不太行
ChatGPT的回答大意是:
然而嬉愧,當(dāng)模式應(yīng)用于字符串“brown”時贩挣,前兩個字符“br”不匹配模式,但接下來的兩個字符“ow”匹配模式“o.”没酣,這意味著“ow”是根據(jù)模式匹配王财。但是由于之前的匹配“ox”已經(jīng)包含了“ow”中的“o”字符,“ow”與之前的匹配重疊并且不被認(rèn)為是非重疊匹配裕便。因此绒净,“ow”不包含在 re.findall() 的輸出中。
還貼心的給出了我想輸出'ow'應(yīng)該怎么做
然后我就不信了偿衰,自己去pycharm里面輸入了一下挂疆,結(jié)果返回的是
于是就糾正了一下ChatGPT
于是乎就是ChatGPT的瘋狂道歉和輸出糾正后的正確答案
綜上所述改览,ChatGPT不是萬能的,就算是在它表現(xiàn)還不錯的代碼領(lǐng)域缤言,辯證對待任何結(jié)果宝当。