生信杂谈:运用ChatGPT检查代码不一定总是对的,辩证对待任何结果

ChatGPT最近风头是真的猛,不过它的功能也确实很强大。从表面的聊天到更深入的回答科学问题,再到代码检查,ChatGPT都彰显出了它很强的应答功能,其中代码检查和询问功能就是我们这种小白的福音啊。

image

虽然之前用的很爽,但是就在今天的代码提问时我发现了一个挺大的问题。

image

最近有点想将处理基因组大数据的技能先入门了,这样以后做实验有收集到了数据就可以进行各种数据挖掘,而数据挖掘的入门就是python

image

今天在使用到python的RegEx(可以进行字符串检索的模块)时,我问了ChatGPT有关RegEx模块中findall函数的问题

image
image

ChatGPT在关于re.findall函数解释的前半段部分并没有错,re.findall()函数可用于查找字符串中出现的所有模式,并将其作为列表返回,但在它举的例子的结果是错的。

输入

import re

txt = "The quick brown fox jumps over the lazy dog."
matches = re.findall("o.", txt)

print(matches)

返回的结果应该是

image

['ow', 'ox', 'ov', 'og']

但是ChatGPT返回的结果是

image
['ox', 'ov']

ChatGPT还贴心地解释了re.findall函数'o.'和txt的两个参数
image

大意是这里的'o.'后面可以跟任何字符串作为pattern进行匹配

但是txt = "The quick brown fox jumps over the lazy dog."这里面的brown和dog不是应该也有匹配项ow和og吗

对此ChatGPT的解释是:

There .findall() function returns a list of all non-overlapping matches of the pattern in the string.

即返回字符串中模式的所有非重叠匹配项的列表

对此我直接懵了

image

对此问题我展开追问

image

而ChatGPT的回答说的好像有道理,但是就是看不懂,以至于一度让我怀疑自己的智商不太行

ChatGPT的回答大意是:

然而,当模式应用于字符串“brown”时,前两个字符“br”不匹配模式,但接下来的两个字符“ow”匹配模式“o.”,这意味着“ow”是根据模式匹配。但是由于之前的匹配“ox”已经包含了“ow”中的“o”字符,“ow”与之前的匹配重叠并且不被认为是非重叠匹配。因此,“ow”不包含在 re.findall() 的输出中。

还贴心的给出了我想输出'ow'应该怎么做

image

然后我就不信了,自己去pycharm里面输入了一下,结果返回的是

image
image

于是就纠正了一下ChatGPT

image
image

于是乎就是ChatGPT的疯狂道歉和输出纠正后的正确答案

综上所述,ChatGPT不是万能的,就算是在它表现还不错的代码领域,辩证对待任何结果。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容